diff options
author | Ben Lin <linben@google.com> | 2016-06-03 13:46:52 -0700 |
---|---|---|
committer | Ben Lin <linben@google.com> | 2016-06-16 18:37:48 +0000 |
commit | 9a621cbacada0c66548a491e0cd561b466bb90dc (patch) | |
tree | b6f72d32f4185ab5ffb5b35f8d10cf6d7ffb2a01 /packages/DocumentsUI/src/com/android/documentsui/FilesMenuManager.java | |
parent | 9c5a79a3897b6a4cc0ff17906ea4f487a819ea9a (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.java | 100 |
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 |