diff options
3 files changed, 38 insertions, 41 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java index 669eb71e4d02..7138c2d19fe6 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java @@ -491,7 +491,8 @@ public class DirectoryFragment extends Fragment // triggered on "silent" selection updates (i.e. we might be reacting to unfinalized // selection changes here) final int docFlags = getCursorInt(cursor, Document.COLUMN_FLAGS); - if ((docFlags & Document.FLAG_SUPPORTS_DELETE) == 0) { + if ((docFlags & Document.FLAG_SUPPORTS_DELETE) == 0 + && (docFlags & Document.FLAG_SUPPORTS_DELETE) == 0) { mNoDeleteCount += selected ? 1 : -1; } if ((docFlags & Document.FLAG_SUPPORTS_RENAME) != 0) { @@ -1501,7 +1502,8 @@ public class DirectoryFragment extends Fragment contentsUri = DocumentsContract.setManageMode(contentsUri); } return new DirectoryLoader( - context, mType, mRoot, mDocument, contentsUri, state.userSortOrder, mSearchMode); + context, mType, mRoot, mDocument, contentsUri, state.userSortOrder, + mSearchMode); case TYPE_RECENT_OPEN: final RootsCache roots = DocumentsApplication.getRootsCache(context); return new RecentsLoader(context, roots, state); diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java index 914f71e15709..59efed66535e 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java @@ -26,7 +26,6 @@ import static com.android.documentsui.State.ACTION_OPEN_TREE; import static com.android.internal.util.Preconditions.checkArgument; import android.content.Context; -import android.os.SystemProperties; import android.provider.DocumentsContract.Document; import android.util.Log; import android.view.Menu; @@ -66,8 +65,8 @@ public abstract class FragmentTuner { } - public abstract void updateActionMenu(Menu menu, int dirType, boolean canDelete, - boolean canRename); + public abstract void updateActionMenu( + Menu menu, @ResultType int dirType, boolean canDelete, boolean canRename); // Subtly different from isDocumentEnabled. The reason may be illuminated as follows. // A folder is enabled such that it may be double clicked, even in settings @@ -140,28 +139,17 @@ public abstract class FragmentTuner { } @Override - public void updateActionMenu(Menu menu, int dirType, boolean canDelete, - boolean canRename) { + public void updateActionMenu( + Menu menu, @ResultType int dirType, boolean canDelete, boolean canRename) { - boolean copyEnabled = dirType != DirectoryFragment.TYPE_RECENT_OPEN; - boolean moveEnabled = - SystemProperties.getBoolean("debug.documentsui.enable_move", false); - menu.findItem(R.id.menu_copy_to_clipboard).setEnabled(copyEnabled); - - final MenuItem open = menu.findItem(R.id.menu_open); - final MenuItem share = menu.findItem(R.id.menu_share); - final MenuItem delete = menu.findItem(R.id.menu_delete); - final MenuItem copyTo = menu.findItem(R.id.menu_copy_to); - final MenuItem moveTo = menu.findItem(R.id.menu_move_to); - final MenuItem rename = menu.findItem(R.id.menu_rename); + MenuItem open = menu.findItem(R.id.menu_open); + MenuItem share = menu.findItem(R.id.menu_share); + MenuItem delete = menu.findItem(R.id.menu_delete); + MenuItem rename = menu.findItem(R.id.menu_rename); open.setVisible(true); share.setVisible(false); delete.setVisible(false); - copyTo.setVisible(copyEnabled); - copyTo.setEnabled(copyEnabled); - moveTo.setVisible(moveEnabled); - moveTo.setEnabled(moveEnabled); rename.setVisible(false); } @@ -186,27 +174,24 @@ public abstract class FragmentTuner { } @Override - public void updateActionMenu(Menu menu, int dirType, boolean canDelete, - boolean canRename) { - checkArgument(dirType != DirectoryFragment.TYPE_RECENT_OPEN); - - boolean moveEnabled = - SystemProperties.getBoolean("debug.documentsui.enable_move", false); - menu.findItem(R.id.menu_copy_to_clipboard).setEnabled(true); - - final MenuItem open = menu.findItem(R.id.menu_open); - final MenuItem share = menu.findItem(R.id.menu_share); - final MenuItem delete = menu.findItem(R.id.menu_delete); - final MenuItem copyTo = menu.findItem(R.id.menu_copy_to); - final MenuItem moveTo = menu.findItem(R.id.menu_move_to); - final MenuItem rename = menu.findItem(R.id.menu_rename); + public void updateActionMenu( + Menu menu, @ResultType int resultType, boolean canDelete, boolean canRename) { + checkArgument(resultType != DirectoryFragment.TYPE_RECENT_OPEN); + + MenuItem open = menu.findItem(R.id.menu_open); + MenuItem delete = menu.findItem(R.id.menu_delete); + MenuItem copyTo = menu.findItem(R.id.menu_copy_to); + MenuItem moveTo = menu.findItem(R.id.menu_move_to); + MenuItem rename = menu.findItem(R.id.menu_rename); + MenuItem copy = menu.findItem(R.id.menu_copy_to_clipboard); open.setVisible(false); delete.setVisible(canDelete); + copy.setEnabled(true); // to clipboard copyTo.setVisible(true); copyTo.setEnabled(true); - moveTo.setVisible(moveEnabled); - moveTo.setEnabled(moveEnabled); + moveTo.setVisible(true); + moveTo.setEnabled(true); rename.setVisible(false); } @@ -226,8 +211,8 @@ public abstract class FragmentTuner { } @Override - public void updateActionMenu(Menu menu, int dirType, boolean canDelete, - boolean canRename) { + public void updateActionMenu( + Menu menu, @ResultType int dirType, boolean canDelete, boolean canRename) { MenuItem copy = menu.findItem(R.id.menu_copy_to_clipboard); MenuItem paste = menu.findItem(R.id.menu_paste_from_clipboard); @@ -239,10 +224,10 @@ public abstract class FragmentTuner { menu.findItem(R.id.menu_share).setVisible(true); menu.findItem(R.id.menu_delete).setVisible(canDelete); - menu.findItem(R.id.menu_open).setVisible(false); menu.findItem(R.id.menu_copy_to).setVisible(true); menu.findItem(R.id.menu_move_to).setVisible(true); + menu.findItem(R.id.menu_move_to).setEnabled(canDelete); Menus.disableHiddenItems(menu, copy, paste); } diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/DocumentInfo.java b/packages/DocumentsUI/src/com/android/documentsui/model/DocumentInfo.java index e9fdab090c18..d74121e536bd 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/model/DocumentInfo.java +++ b/packages/DocumentsUI/src/com/android/documentsui/model/DocumentInfo.java @@ -207,7 +207,13 @@ public class DocumentInfo implements Durable, Parcelable { return "Document{" + "docId=" + documentId + ", name=" + displayName + + ", isContainer=" + isContainer() + ", isDirectory=" + isDirectory() + + ", isArchive=" + isArchive() + + ", isVirtualDocument=" + isVirtualDocument() + + ", isDeleteSupported=" + isDeleteSupported() + + ", isCreateSupported=" + isCreateSupported() + + ", isRenameSupported=" + isRenameSupported() + "}"; } @@ -231,6 +237,10 @@ public class DocumentInfo implements Durable, Parcelable { return (flags & Document.FLAG_SUPPORTS_DELETE) != 0; } + public boolean isRemoveSupported() { + return (flags & Document.FLAG_SUPPORTS_REMOVE) != 0; + } + public boolean isRenameSupported() { return (flags & Document.FLAG_SUPPORTS_RENAME) != 0; } |