Inject DirectoryDetails into MenuManager Const.

Rather than passing to *every* method.

Change-Id: I5890891fa8c98b7db542775655b67c270e699886
diff --git a/src/com/android/documentsui/MenuManager.java b/src/com/android/documentsui/MenuManager.java
index 55dffb1..ac45c16 100644
--- a/src/com/android/documentsui/MenuManager.java
+++ b/src/com/android/documentsui/MenuManager.java
@@ -31,12 +31,17 @@
 
 public abstract class MenuManager {
 
-    final protected State mState;
     final protected SearchViewManager mSearchManager;
+    final protected State mState;
+    final protected DirectoryDetails mDirDetails;
 
-    public MenuManager(SearchViewManager searchManager, State displayState) {
+    public MenuManager(
+            SearchViewManager searchManager,
+            State displayState,
+            DirectoryDetails dirDetails) {
         mSearchManager = searchManager;
         mState = displayState;
+        mDirDetails = dirDetails;
     }
 
     /** @see ActionModeController */
@@ -53,14 +58,13 @@
     }
 
     /** @see BaseActivity#onPrepareOptionsMenu */
-    public void updateOptionMenu(Menu menu, DirectoryDetails directoryDetails) {
-        updateCreateDir(menu.findItem(R.id.menu_create_dir), directoryDetails);
-        updateSettings(menu.findItem(R.id.menu_settings), directoryDetails);
-        updateNewWindow(menu.findItem(R.id.menu_new_window), directoryDetails);
-        updateModePicker(menu.findItem(
-                R.id.menu_grid), menu.findItem(R.id.menu_list), directoryDetails);
+    public void updateOptionMenu(Menu menu) {
+        updateCreateDir(menu.findItem(R.id.menu_create_dir));
+        updateSettings(menu.findItem(R.id.menu_settings));
+        updateNewWindow(menu.findItem(R.id.menu_new_window));
+        updateModePicker(menu.findItem(R.id.menu_grid), menu.findItem(R.id.menu_list));
         // Sort menu item is managed by SortMenuManager
-        updateAdvanced(menu.findItem(R.id.menu_advanced), directoryDetails);
+        updateAdvanced(menu.findItem(R.id.menu_advanced));
 
         Menus.disableHiddenItems(menu);
     }
@@ -77,8 +81,7 @@
         // Pickers don't have any context menu at this moment.
     }
 
-    public void inflateContextMenuForContainer(
-            Menu menu, MenuInflater inflater, DirectoryDetails directoryDetails) {
+    public void inflateContextMenuForContainer(Menu menu, MenuInflater inflater) {
         throw new UnsupportedOperationException("Pickers don't allow context menu.");
     }
 
@@ -166,11 +169,11 @@
      * Called when user tries to generate a context menu anchored to an empty pane.
      */
     @VisibleForTesting
-    public void updateContextMenuForContainer(Menu menu, DirectoryDetails directoryDetails) {
+    public void updateContextMenuForContainer(Menu menu) {
         MenuItem paste = menu.findItem(R.id.menu_paste_from_clipboard);
         MenuItem selectAll = menu.findItem(R.id.menu_select_all);
 
-        paste.setEnabled(directoryDetails.hasItemsToPaste() && directoryDetails.canCreateDoc());
+        paste.setEnabled(mDirDetails.hasItemsToPaste() && mDirDetails.canCreateDoc());
         updateSelectAll(selectAll);
     }
 
@@ -185,19 +188,18 @@
         updateEject(eject, root);
     }
 
-    protected void updateModePicker(
-            MenuItem grid, MenuItem list, DirectoryDetails directoryDetails) {
+    protected void updateModePicker(MenuItem grid, MenuItem list) {
         grid.setVisible(mState.derivedMode != State.MODE_GRID);
         list.setVisible(mState.derivedMode != State.MODE_LIST);
     }
 
-    protected void updateAdvanced(MenuItem advanced, DirectoryDetails directoryDetails) {
+    protected void updateAdvanced(MenuItem advanced) {
         advanced.setVisible(mState.showAdvancedOption);
         advanced.setTitle(mState.showAdvancedOption && mState.showAdvanced
                 ? R.string.menu_advanced_hide : R.string.menu_advanced_show);
     }
 
-    protected void updateSettings(MenuItem settings, DirectoryDetails directoryDetails) {
+    protected void updateSettings(MenuItem settings) {
         settings.setVisible(false);
     }
 
@@ -209,7 +211,7 @@
         eject.setVisible(false);
     }
 
-    protected void updateNewWindow(MenuItem newWindow, DirectoryDetails directoryDetails) {
+    protected void updateNewWindow(MenuItem newWindow) {
         newWindow.setVisible(false);
     }
 
@@ -253,7 +255,7 @@
     protected abstract void updateOpenInContextMenu(
             MenuItem open, SelectionDetails selectionDetails);
     protected abstract void updateSelectAll(MenuItem selectAll);
-    protected abstract void updateCreateDir(MenuItem createDir, DirectoryDetails directoryDetails);
+    protected abstract void updateCreateDir(MenuItem createDir);
 
     /**
      * Access to meta data about the selection.