Clear separation of RootList Context Menu items and DirList items.

Change-Id: I7f83b21a499de67f628b1fe0cf1582fe70f86c4d
diff --git a/src/com/android/documentsui/AbstractActionHandler.java b/src/com/android/documentsui/AbstractActionHandler.java
index cb03fa6..12ed5d1 100644
--- a/src/com/android/documentsui/AbstractActionHandler.java
+++ b/src/com/android/documentsui/AbstractActionHandler.java
@@ -263,6 +263,13 @@
     }
 
     @Override
+    public void showCreateDirectoryDialog() {
+        Metrics.logUserAction(mActivity, Metrics.USER_ACTION_CREATE_DIR);
+
+        CreateDirectoryFragment.show(mActivity.getFragmentManager());
+    }
+
+    @Override
     @Nullable
     public DocumentInfo renameDocument(String name, DocumentInfo document) {
         throw new UnsupportedOperationException("Can't rename documents.");
diff --git a/src/com/android/documentsui/ActionHandler.java b/src/com/android/documentsui/ActionHandler.java
index 03e977e..cb66602 100644
--- a/src/com/android/documentsui/ActionHandler.java
+++ b/src/com/android/documentsui/ActionHandler.java
@@ -89,6 +89,8 @@
 
     void selectAllFiles();
 
+    void showCreateDirectoryDialog();
+
     @Nullable DocumentInfo renameDocument(String name, DocumentInfo document);
 
     /**
diff --git a/src/com/android/documentsui/ActionModeController.java b/src/com/android/documentsui/ActionModeController.java
index 67ad928..87b5f81 100644
--- a/src/com/android/documentsui/ActionModeController.java
+++ b/src/com/android/documentsui/ActionModeController.java
@@ -151,7 +151,7 @@
     @Override
     public boolean onCreateActionMode(ActionMode mode, Menu menu) {
         int size = mSelectionMgr.getSelection().size();
-        mode.getMenuInflater().inflate(R.menu.mode_directory, menu);
+        mode.getMenuInflater().inflate(R.menu.action_mode_menu, menu);
         mode.setTitle(TextUtils.formatSelectedCount(size));
 
         if (size > 0) {
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java
index ded4621..9ba3445 100644
--- a/src/com/android/documentsui/BaseActivity.java
+++ b/src/com/android/documentsui/BaseActivity.java
@@ -323,31 +323,31 @@
                 onBackPressed();
                 return true;
 
-            case R.id.menu_create_dir:
-                showCreateDirectoryDialog();
+            case R.id.option_menu_create_dir:
+                getInjector().actions.showCreateDirectoryDialog();
                 return true;
 
-            case R.id.menu_search:
+            case R.id.option_menu_search:
                 // SearchViewManager listens for this directly.
                 return false;
 
-            case R.id.menu_grid:
+            case R.id.option_menu_grid:
                 setViewMode(State.MODE_GRID);
                 return true;
 
-            case R.id.menu_list:
+            case R.id.option_menu_list:
                 setViewMode(State.MODE_LIST);
                 return true;
 
-            case R.id.menu_advanced:
+            case R.id.option_menu_advanced:
                 onDisplayAdvancedDevices();
                 return true;
 
-            case R.id.menu_select_all:
+            case R.id.option_menu_select_all:
                 getInjector().actions.selectAllFiles();
                 return true;
 
-            case R.id.menu_debug:
+            case R.id.option_menu_debug:
                 getInjector().actions.showDebugMessage();
                 return true;
 
@@ -360,12 +360,6 @@
         return DirectoryFragment.get(getFragmentManager());
     }
 
-    protected void showCreateDirectoryDialog() {
-        Metrics.logUserAction(this, Metrics.USER_ACTION_CREATE_DIR);
-
-        CreateDirectoryFragment.show(getFragmentManager());
-    }
-
     /**
      * Returns true if a directory can be created in the current location.
      * @return
diff --git a/src/com/android/documentsui/MenuManager.java b/src/com/android/documentsui/MenuManager.java
index c965c32..aa50ece 100644
--- a/src/com/android/documentsui/MenuManager.java
+++ b/src/com/android/documentsui/MenuManager.java
@@ -53,30 +53,31 @@
 
     /** @see ActionModeController */
     public void updateActionMenu(Menu menu, SelectionDetails selection) {
-        updateOpenInActionMode(menu.findItem(R.id.menu_open), selection);
-        updateOpenWith(menu.findItem(R.id.menu_open_with), selection);
-        updateDelete(menu.findItem(R.id.menu_delete), selection);
-        updateShare(menu.findItem(R.id.menu_share), selection);
-        updateRename(menu.findItem(R.id.menu_rename), selection);
-        updateSelectAll(menu.findItem(R.id.menu_select_all));
-        updateMoveTo(menu.findItem(R.id.menu_move_to), selection);
-        updateCopyTo(menu.findItem(R.id.menu_copy_to), selection);
-        updateCompress(menu.findItem(R.id.menu_compress), selection);
-        updateExtractTo(menu.findItem(R.id.menu_extract_to), selection);
-        updateViewInOwner(menu.findItem(R.id.menu_view_in_owner), selection);
+        updateOpenInActionMode(menu.findItem(R.id.action_menu_open), selection);
+        updateOpenWith(menu.findItem(R.id.action_menu_open_with), selection);
+        updateDelete(menu.findItem(R.id.action_menu_delete), selection);
+        updateShare(menu.findItem(R.id.action_menu_share), selection);
+        updateRename(menu.findItem(R.id.action_menu_rename), selection);
+        updateSelectAll(menu.findItem(R.id.action_menu_select_all));
+        updateMoveTo(menu.findItem(R.id.action_menu_move_to), selection);
+        updateCopyTo(menu.findItem(R.id.action_menu_copy_to), selection);
+        updateCompress(menu.findItem(R.id.action_menu_compress), selection);
+        updateExtractTo(menu.findItem(R.id.action_menu_extract_to), selection);
+        updateViewInOwner(menu.findItem(R.id.action_menu_view_in_owner), selection);
 
         Menus.disableHiddenItems(menu);
     }
 
     /** @see BaseActivity#onPrepareOptionsMenu */
     public void updateOptionMenu(Menu menu) {
-        updateCreateDir(menu.findItem(R.id.menu_create_dir));
-        updateSettings(menu.findItem(R.id.menu_settings));
-        updateSelectAll(menu.findItem(R.id.menu_select_all));
-        updateNewWindow(menu.findItem(R.id.menu_new_window));
-        updateModePicker(menu.findItem(R.id.menu_grid), menu.findItem(R.id.menu_list));
-        updateAdvanced(menu.findItem(R.id.menu_advanced));
-        updateDebug(menu.findItem(R.id.menu_debug));
+        updateCreateDir(menu.findItem(R.id.option_menu_create_dir));
+        updateSettings(menu.findItem(R.id.option_menu_settings));
+        updateSelectAll(menu.findItem(R.id.option_menu_select_all));
+        updateNewWindow(menu.findItem(R.id.option_menu_new_window));
+        updateModePicker(menu.findItem(R.id.option_menu_grid),
+                menu.findItem(R.id.option_menu_list));
+        updateAdvanced(menu.findItem(R.id.option_menu_advanced));
+        updateDebug(menu.findItem(R.id.option_menu_debug));
 
         Menus.disableHiddenItems(menu);
     }
@@ -116,11 +117,11 @@
     public void updateContextMenuForFiles(Menu menu, SelectionDetails selectionDetails) {
         assert(selectionDetails != null);
 
-        MenuItem share = menu.findItem(R.id.menu_share);
-        MenuItem open = menu.findItem(R.id.menu_open);
-        MenuItem openWith = menu.findItem(R.id.menu_open_with);
-        MenuItem rename = menu.findItem(R.id.menu_rename);
-        MenuItem viewInOwner = menu.findItem(R.id.menu_view_in_owner);
+        MenuItem share = menu.findItem(R.id.dir_menu_share);
+        MenuItem open = menu.findItem(R.id.dir_menu_open);
+        MenuItem openWith = menu.findItem(R.id.dir_menu_open_with);
+        MenuItem rename = menu.findItem(R.id.dir_menu_rename);
+        MenuItem viewInOwner = menu.findItem(R.id.dir_menu_view_in_owner);
 
         updateShare(share, selectionDetails);
         updateOpenInContextMenu(open, selectionDetails);
@@ -145,9 +146,9 @@
     public void updateContextMenuForDirs(Menu menu, SelectionDetails selectionDetails) {
         assert(selectionDetails != null);
 
-        MenuItem openInNewWindow = menu.findItem(R.id.menu_open_in_new_window);
-        MenuItem rename = menu.findItem(R.id.menu_rename);
-        MenuItem pasteInto = menu.findItem(R.id.menu_paste_into_folder);
+        MenuItem openInNewWindow = menu.findItem(R.id.dir_menu_open_in_new_window);
+        MenuItem rename = menu.findItem(R.id.dir_menu_rename);
+        MenuItem pasteInto = menu.findItem(R.id.dir_menu_paste_into_folder);
 
         updateOpenInNewWindow(openInNewWindow, selectionDetails);
         updateRename(rename, selectionDetails);
@@ -165,9 +166,9 @@
     public void updateContextMenu(Menu menu, SelectionDetails selectionDetails) {
         assert(selectionDetails != null);
 
-        MenuItem cut = menu.findItem(R.id.menu_cut_to_clipboard);
-        MenuItem copy = menu.findItem(R.id.menu_copy_to_clipboard);
-        MenuItem delete = menu.findItem(R.id.menu_delete);
+        MenuItem cut = menu.findItem(R.id.dir_menu_cut_to_clipboard);
+        MenuItem copy = menu.findItem(R.id.dir_menu_copy_to_clipboard);
+        MenuItem delete = menu.findItem(R.id.dir_menu_delete);
 
         final boolean canCopy =
                 selectionDetails.size() > 0 && !selectionDetails.containsPartialFiles();
@@ -184,9 +185,9 @@
      */
     @VisibleForTesting
     public void updateContextMenuForContainer(Menu menu) {
-        MenuItem paste = menu.findItem(R.id.menu_paste_from_clipboard);
-        MenuItem selectAll = menu.findItem(R.id.menu_select_all);
-        MenuItem createDir = menu.findItem(R.id.menu_create_dir);
+        MenuItem paste = menu.findItem(R.id.dir_menu_paste_from_clipboard);
+        MenuItem selectAll = menu.findItem(R.id.dir_menu_select_all);
+        MenuItem createDir = menu.findItem(R.id.dir_menu_create_dir);
 
         paste.setEnabled(mDirDetails.hasItemsToPaste() && mDirDetails.canCreateDoc());
         updateSelectAll(selectAll);
@@ -197,10 +198,10 @@
      * @see RootsFragment#onCreateContextMenu
      */
     public void updateRootContextMenu(Menu menu, RootInfo root, DocumentInfo docInfo) {
-        MenuItem eject = menu.findItem(R.id.menu_eject_root);
-        MenuItem pasteInto = menu.findItem(R.id.menu_paste_into_folder);
-        MenuItem openInNewWindow = menu.findItem(R.id.menu_open_in_new_window);
-        MenuItem settings = menu.findItem(R.id.menu_settings);
+        MenuItem eject = menu.findItem(R.id.root_menu_eject_root);
+        MenuItem pasteInto = menu.findItem(R.id.root_menu_paste_into_folder);
+        MenuItem openInNewWindow = menu.findItem(R.id.root_menu_open_in_new_window);
+        MenuItem settings = menu.findItem(R.id.root_menu_settings);
 
         updateEject(eject, root);
         updatePasteInto(pasteInto, root, docInfo);
diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java
index aef9aca..496cf29 100644
--- a/src/com/android/documentsui/dirlist/DirectoryFragment.java
+++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java
@@ -611,37 +611,41 @@
         Selection selection = mSelectionMgr.getSelection(new Selection());
 
         switch (item.getItemId()) {
-            case R.id.menu_open:
+            case R.id.action_menu_open:
+            case R.id.dir_menu_open:
                 openDocuments(selection);
                 mActionModeController.finishActionMode();
                 return true;
 
-            case R.id.menu_open_with:
+            case R.id.action_menu_open_with:
+            case R.id.dir_menu_open_with:
                 showChooserForDoc(selection);
                 return true;
 
-            case R.id.menu_open_in_new_window:
+            case R.id.dir_menu_open_in_new_window:
                 mActions.openSelectedInNewWindow();
                 return true;
 
-            case R.id.menu_share:
+            case R.id.action_menu_share:
+            case R.id.dir_menu_share:
                 mActions.shareSelectedDocuments();
                 return true;
 
-            case R.id.menu_delete:
+            case R.id.action_menu_delete:
+            case R.id.dir_menu_delete:
                 // deleteDocuments will end action mode if the documents are deleted.
                 // It won't end action mode if user cancels the delete.
                 mActions.deleteSelectedDocuments();
                 return true;
 
-            case R.id.menu_copy_to:
+            case R.id.action_menu_copy_to:
                 transferDocuments(selection, null, FileOperationService.OPERATION_COPY);
                 // TODO: Only finish selection mode if copy-to is not canceled.
                 // Need to plum down into handling the way we do with deleteDocuments.
                 mActionModeController.finishActionMode();
                 return true;
 
-            case R.id.menu_compress:
+            case R.id.action_menu_compress:
                 transferDocuments(selection, mState.stack,
                         FileOperationService.OPERATION_COMPRESS);
                 // TODO: Only finish selection mode if compress is not canceled.
@@ -650,14 +654,14 @@
                 return true;
 
             // TODO: Implement extract (to the current directory).
-            case R.id.menu_extract_to:
+            case R.id.action_menu_extract_to:
                 transferDocuments(selection, null, FileOperationService.OPERATION_EXTRACT);
                 // TODO: Only finish selection mode if compress-to is not canceled.
                 // Need to plum down into handling the way we do with deleteDocuments.
                 mActionModeController.finishActionMode();
                 return true;
 
-            case R.id.menu_move_to:
+            case R.id.action_menu_move_to:
                 if (mModel.hasDocuments(selection, DocumentFilters.NOT_MOVABLE)) {
                     mInjector.dialogs.showOperationUnsupported();
                     return true;
@@ -667,44 +671,46 @@
                 transferDocuments(selection, null, FileOperationService.OPERATION_MOVE);
                 return true;
 
-            case R.id.menu_cut_to_clipboard:
+            case R.id.dir_menu_cut_to_clipboard:
                 mActions.cutToClipboard();
                 return true;
 
-            case R.id.menu_copy_to_clipboard:
+            case R.id.dir_menu_copy_to_clipboard:
                 mActions.copyToClipboard();
                 return true;
 
-            case R.id.menu_paste_from_clipboard:
+            case R.id.dir_menu_paste_from_clipboard:
                 pasteFromClipboard();
                 return true;
 
-            case R.id.menu_paste_into_folder:
+            case R.id.dir_menu_paste_into_folder:
                 pasteIntoFolder();
                 return true;
 
-            case R.id.menu_select_all:
+            case R.id.action_menu_select_all:
+            case R.id.dir_menu_select_all:
                 mActions.selectAllFiles();
                 return true;
 
-            case R.id.menu_rename:
+            case R.id.action_menu_rename:
+            case R.id.dir_menu_rename:
                 // Exit selection mode first, so we avoid deselecting deleted
                 // (renamed) documents.
                 mActionModeController.finishActionMode();
                 renameDocuments(selection);
                 return true;
 
-            case R.id.menu_view_in_owner:
+            case R.id.dir_menu_create_dir:
+                mActions.showCreateDirectoryDialog();
+                return true;
+
+            case R.id.dir_menu_view_in_owner:
                 mActions.viewInOwner();
                 return true;
 
             default:
-                // See if BaseActivity can handle this particular MenuItem
-                if (!mActivity.onOptionsItemSelected(item)) {
-                    if (DEBUG) Log.d(TAG, "Unhandled menu item selected: " + item);
-                    return false;
-                }
-                return true;
+                if (DEBUG) Log.d(TAG, "Unhandled menu item selected: " + item);
+                return false;
         }
     }
 
diff --git a/src/com/android/documentsui/files/ActionHandler.java b/src/com/android/documentsui/files/ActionHandler.java
index e77de29..cced995 100644
--- a/src/com/android/documentsui/files/ActionHandler.java
+++ b/src/com/android/documentsui/files/ActionHandler.java
@@ -32,6 +32,7 @@
 import com.android.documentsui.AbstractActionHandler;
 import com.android.documentsui.ActionModeAddons;
 import com.android.documentsui.ActivityConfig;
+import com.android.documentsui.CreateDirectoryFragment;
 import com.android.documentsui.DocumentsAccess;
 import com.android.documentsui.DocumentsApplication;
 import com.android.documentsui.DragAndDropManager;
diff --git a/src/com/android/documentsui/files/FilesActivity.java b/src/com/android/documentsui/files/FilesActivity.java
index 646f88e..125f8c3 100644
--- a/src/com/android/documentsui/files/FilesActivity.java
+++ b/src/com/android/documentsui/files/FilesActivity.java
@@ -275,23 +275,17 @@
     public boolean onOptionsItemSelected(MenuItem item) {
         DirectoryFragment dir;
         switch (item.getItemId()) {
-            case R.id.menu_create_dir:
+            case R.id.option_menu_create_dir:
                 assert(canCreateDirectory());
-                showCreateDirectoryDialog();
+                mInjector.actions.showCreateDirectoryDialog();
                 break;
-            case R.id.menu_new_window:
+            case R.id.option_menu_new_window:
                 mInjector.actions.openInNewWindow(mState.stack);
                 break;
-            case R.id.menu_paste_from_clipboard:
-                dir = getDirectoryFragment();
-                if (dir != null) {
-                    dir.pasteFromClipboard();
-                }
-                break;
-            case R.id.menu_settings:
+            case R.id.option_menu_settings:
                 mInjector.actions.openSettings(getCurrentRoot());
                 break;
-            case R.id.menu_select_all:
+            case R.id.option_menu_select_all:
                 mInjector.actions.selectAllFiles();
                 break;
             default:
diff --git a/src/com/android/documentsui/queries/SearchViewManager.java b/src/com/android/documentsui/queries/SearchViewManager.java
index 85de7d3..a57326a 100644
--- a/src/com/android/documentsui/queries/SearchViewManager.java
+++ b/src/com/android/documentsui/queries/SearchViewManager.java
@@ -74,7 +74,7 @@
 
     public void install(Menu menu, boolean isFullBarSearch) {
         mMenu = menu;
-        mMenuItem = mMenu.findItem(R.id.menu_search);
+        mMenuItem = mMenu.findItem(R.id.option_menu_search);
         mSearchView = (SearchView) mMenuItem.getActionView();
 
         mSearchView.setOnQueryTextListener(this);
diff --git a/src/com/android/documentsui/sidebar/RootsFragment.java b/src/com/android/documentsui/sidebar/RootsFragment.java
index c5c188f..c336d16 100644
--- a/src/com/android/documentsui/sidebar/RootsFragment.java
+++ b/src/com/android/documentsui/sidebar/RootsFragment.java
@@ -381,17 +381,17 @@
         }
         final RootItem rootItem = (RootItem) mAdapter.getItem(adapterMenuInfo.position);
         switch (item.getItemId()) {
-            case R.id.menu_eject_root:
+            case R.id.root_menu_eject_root:
                 final View ejectIcon = adapterMenuInfo.targetView.findViewById(R.id.eject_icon);
                 ejectClicked(ejectIcon, rootItem.root, mActionHandler);
                 return true;
-            case R.id.menu_open_in_new_window:
+            case R.id.root_menu_open_in_new_window:
                 mActionHandler.openInNewWindow(new DocumentStack(rootItem.root));
                 return true;
-            case R.id.menu_paste_into_folder:
+            case R.id.root_menu_paste_into_folder:
                 mActionHandler.pasteIntoFolder(rootItem.root);
                 return true;
-            case R.id.menu_settings:
+            case R.id.root_menu_settings:
                 mActionHandler.openSettings(rootItem.root);
                 return true;
             default: