summaryrefslogtreecommitdiff
path: root/packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java
diff options
context:
space:
mode:
authorBen Lin <linben@google.com>2016-06-03 13:46:52 -0700
committerBen Lin <linben@google.com>2016-06-16 18:37:48 +0000
commit9a621cbacada0c66548a491e0cd561b466bb90dc (patch)
treeb6f72d32f4185ab5ffb5b35f8d10cf6d7ffb2a01 /packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java
parent9c5a79a3897b6a4cc0ff17906ea4f487a819ea9a (diff)
Implementation of Right-click context menus for docs/files.
Bug: 24416336 Change-Id: I675baf4abf6308bc1f6c3b4171f7251b0f3fd6e4 (cherry picked from commit be70710de3e1507292381cd14a9e1c1343ff2524)
Diffstat (limited to 'packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java')
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java100
1 files changed, 58 insertions, 42 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java b/packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java
index f7256ff4857d..4b27a7e492a7 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java
@@ -19,9 +19,7 @@ package com.android.documentsui;
import android.view.Menu;
import android.view.MenuItem;
-import com.android.documentsui.R;
-
-final class FilesMenuManager implements MenuManager {
+final class FilesMenuManager extends MenuManager {
private final SearchViewManager mSearchManager;
@@ -30,58 +28,76 @@ final class FilesMenuManager implements MenuManager {
}
@Override
- public void updateActionMenu(Menu menu, SelectionDetails selection) {
-
- menu.findItem(R.id.menu_open).setVisible(false); // "open" is never used in Files.
-
- // Commands accessible only via keyboard...
- MenuItem copy = menu.findItem(R.id.menu_copy_to_clipboard);
- MenuItem paste = menu.findItem(R.id.menu_paste_from_clipboard);
+ public void updateOptionMenu(Menu menu, DirectoryDetails details) {
+ super.updateOptionMenu(menu, details);
- // Commands visible in the UI...
- MenuItem rename = menu.findItem(R.id.menu_rename);
- MenuItem moveTo = menu.findItem(R.id.menu_move_to);
- MenuItem copyTo = menu.findItem(R.id.menu_copy_to);
- MenuItem share = menu.findItem(R.id.menu_share);
- MenuItem delete = menu.findItem(R.id.menu_delete);
+ // It hides icon if searching in progress
+ mSearchManager.updateMenu();
+ }
- // Commands usually on action-bar, so we always manage visibility.
- share.setVisible(!selection.containsDirectories() && !selection.containsPartialFiles());
- delete.setVisible(selection.canDelete());
+ @Override
+ void updateModePicker(MenuItem grid, MenuItem list, DirectoryDetails directoryDetails) {
+ assert(!grid.isVisible());
+ assert(list.isVisible());
+ }
- // Commands always in overflow, so we don't bother showing/hiding...
- copyTo.setVisible(true);
- moveTo.setVisible(true);
- rename.setVisible(true);
+ @Override
+ void updateFileSize(MenuItem fileSize, DirectoryDetails directoryDetails) {
+ assert(fileSize.isVisible());
+ }
- // copy is not visible, keyboard only
- copy.setEnabled(!selection.containsPartialFiles());
+ @Override
+ void updateSettings(MenuItem settings, DirectoryDetails directoryDetails) {
+ settings.setVisible(directoryDetails.hasRootSettings());
+ }
- copyTo.setEnabled(!selection.containsPartialFiles());
- moveTo.setEnabled(!selection.containsPartialFiles() && selection.canDelete());
- rename.setEnabled(!selection.containsPartialFiles() && selection.canRename());
+ @Override
+ void updateNewWindow(MenuItem newWindow, DirectoryDetails directoryDetails) {
+ newWindow.setVisible(directoryDetails.shouldShowFancyFeatures());
+ }
- Menus.disableHiddenItems(menu, copy, paste);
+ @Override
+ void updateMoveTo(MenuItem moveTo, SelectionDetails selectionDetails) {
+ moveTo.setVisible(true);
+ moveTo.setEnabled(!selectionDetails.containsPartialFiles() && selectionDetails.canDelete());
}
@Override
- public void updateOptionMenu(Menu menu, DirectoryDetails details) {
+ void updateCopyTo(MenuItem copyTo, SelectionDetails selectionDetails) {
+ copyTo.setVisible(true);
+ copyTo.setEnabled(!selectionDetails.containsPartialFiles());
+ }
- final MenuItem createDir = menu.findItem(R.id.menu_create_dir);
- final MenuItem pasteFromCb = menu.findItem(R.id.menu_paste_from_clipboard);
- final MenuItem settings = menu.findItem(R.id.menu_settings);
- final MenuItem newWindow = menu.findItem(R.id.menu_new_window);
+ @Override
+ void updateSelectAll(MenuItem selectAll, SelectionDetails selectionDetails) {
+ assert(selectAll.isVisible());
+ }
+ @Override
+ void updateCreateDir(MenuItem createDir, DirectoryDetails directoryDetails) {
createDir.setVisible(true);
- createDir.setEnabled(details.canCreateDirectory());
- pasteFromCb.setEnabled(details.hasItemsToPaste());
- settings.setVisible(details.hasRootSettings());
- newWindow.setVisible(details.shouldShowFancyFeatures());
+ createDir.setEnabled(directoryDetails.canCreateDirectory());
+ }
- Menus.disableHiddenItems(menu, pasteFromCb);
+ @Override
+ void updateOpen(MenuItem open, SelectionDetails selectionDetails) {
+ open.setVisible(false);
+ }
- // It hides icon if searching in progress
- mSearchManager.updateMenu();
+ @Override
+ void updateShare(MenuItem share, SelectionDetails selectionDetails) {
+ share.setVisible(!selectionDetails.containsDirectories()
+ && !selectionDetails.containsPartialFiles());
}
-}
+ @Override
+ void updateDelete(MenuItem delete, SelectionDetails selectionDetails) {
+ delete.setVisible(selectionDetails.canDelete());
+ }
+
+ @Override
+ void updateRename(MenuItem rename, SelectionDetails selectionDetails) {
+ rename.setVisible(true);
+ rename.setEnabled(!selectionDetails.containsPartialFiles() && selectionDetails.canRename());
+ }
+} \ No newline at end of file