Merge "Hide 'select all' menu option when ALLOW_MULTIPLE intent is not passed in DocumentsActivity. Make 'select all' select only enabled files." into nyc-dev

This commit is contained in:
Aga Wronska
2016-04-05 04:34:08 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 1 deletions

View File

@@ -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<String> enabled = new ArrayList<String>();
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();
}

View File

@@ -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