diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java index 341b2a440b485..c2bb4ebd09b79 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java @@ -106,6 +106,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Collections; +import java.util.Iterator; import java.util.List; import java.util.Objects; @@ -1063,8 +1064,19 @@ public class DirectoryFragment extends Fragment } public void selectAllFiles() { + // Exclude disabled files + List enabled = new ArrayList(); + for (String id : mAdapter.getModelIds()) { + Cursor cursor = getModel().getItem(id); + String docMimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE); + int docFlags = getCursorInt(cursor, Document.COLUMN_FLAGS); + if (isDocumentEnabled(docMimeType, docFlags)) { + enabled.add(id); + } + } + // Only select things currently visible in the adapter. - boolean changed = mSelectionManager.setItemsSelected(mAdapter.getModelIds(), true); + boolean changed = mSelectionManager.setItemsSelected(enabled, true); if (changed) { updateDisplayState(); } diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java index faa8e3892f61b..016cc9e889dfb 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java @@ -148,11 +148,15 @@ public abstract class FragmentTuner { MenuItem share = menu.findItem(R.id.menu_share); MenuItem delete = menu.findItem(R.id.menu_delete); MenuItem rename = menu.findItem(R.id.menu_rename); + MenuItem selectAll = menu.findItem(R.id.menu_select_all); open.setVisible(true); share.setVisible(false); delete.setVisible(false); rename.setVisible(false); + selectAll.setVisible(mState.allowMultiple); + + Menus.disableHiddenItems(menu); } @Override