Reduce size of menus

    Bug: 5452031

Change-Id: I3cc638b981e50796293b0f61dac2d93b8e3df1a0
diff --git a/res/menu/browser.xml b/res/menu/browser.xml
index 2b651c3..bf95574 100644
--- a/res/menu/browser.xml
+++ b/res/menu/browser.xml
@@ -44,12 +44,6 @@
             android:icon="@drawable/ic_bookmark_on_holo_dark"
             android:alphabeticShortcut="d"
             android:visible="@bool/menu_show_bookmarks" />
-        <item
-            android:id="@+id/bookmarks_menu_id"
-            android:title="@string/bookmarks"
-            android:icon="@drawable/ic_bookmarks_history_holo_dark"
-            android:alphabeticShortcut="b"
-            android:visible="@bool/menu_show_bookmarks" />
         <group
             android:id="@+id/LIVE_MENU">
             <item
@@ -74,6 +68,16 @@
                 android:id="@+id/snapshot_go_live"
                 android:title="@string/snapshot_go_live" />
         </group>
+        <group
+            android:id="@+id/COMBO_MENU">
+            <item
+                android:id="@+id/history_menu_id"
+                android:title="@string/tab_history"
+                android:alphabeticShortcut="h" />
+            <item
+                android:id="@+id/snapshots_menu_id"
+                android:title="@string/tab_snapshots" />
+        </group>
         <item
             android:id="@+id/page_info_menu_id"
             android:title="@string/page_info" />
@@ -97,8 +101,6 @@
             android:alphabeticShortcut="j" />
         <item android:id="@+id/homepage_menu_id"
             android:alphabeticShortcut="&#32;" />
-        <item android:id="@+id/classic_history_menu_id"
-            android:alphabeticShortcut="h" />
         <item android:id="@+id/zoom_in_menu_id"
             android:alphabeticShortcut="i" />
         <item android:id="@+id/zoom_out_menu_id"
@@ -128,6 +130,8 @@
             android:alphabeticShortcut="f" />
         <item android:id="@+id/page_info_menu_id"
             android:alphabeticShortcut="g" />
+        <item android:id="@+id/bookmarks_menu_id"
+            android:alphabeticShortcut="b" />
     </group>
     <!-- these items are toggled in and out of @+id/stop_reload_menu_id -->
     <item android:id="@+id/stop_menu_id"
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 0fc9b8a..9710669 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -357,7 +357,7 @@
             getCurrentWebView().setJsFlags(jsFlags);
         }
         if (BrowserActivity.ACTION_SHOW_BOOKMARKS.equals(intent.getAction())) {
-            bookmarksOrHistoryPicker(false);
+            bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         }
     }
 
@@ -474,7 +474,7 @@
             public void handleMessage(Message msg) {
                 switch (msg.what) {
                     case OPEN_BOOKMARKS:
-                        bookmarksOrHistoryPicker(false);
+                        bookmarksOrHistoryPicker(ComboViews.Bookmarks);
                         break;
                     case FOCUS_NODE_HREF:
                     {
@@ -1204,7 +1204,7 @@
      *                         Otherwise, start with the bookmarks tab.
      */
     @Override
-    public void bookmarksOrHistoryPicker(boolean startWithHistory) {
+    public void bookmarksOrHistoryPicker(ComboViews startView) {
         if (mTabControl.getCurrentWebView() == null) {
             return;
         }
@@ -1216,8 +1216,7 @@
         // Disable opening in a new window if we have maxed out the windows
         extras.putBoolean(BrowserBookmarksPage.EXTRA_DISABLE_WINDOW,
                 !mTabControl.canCreateNewTab());
-        mUi.showComboView(startWithHistory
-                ? ComboViews.History : ComboViews.Bookmarks, extras);
+        mUi.showComboView(startView, extras);
     }
 
     // combo view callbacks
@@ -1520,6 +1519,7 @@
         uaSwitcher.setChecked(isDesktopUa);
         menu.setGroupVisible(R.id.LIVE_MENU, isLive);
         menu.setGroupVisible(R.id.SNAPSHOT_MENU, !isLive);
+        menu.setGroupVisible(R.id.COMBO_MENU, false);
 
         mUi.updateMenuState(tab, menu);
     }
@@ -1554,7 +1554,15 @@
                 break;
 
             case R.id.bookmarks_menu_id:
-                bookmarksOrHistoryPicker(false);
+                bookmarksOrHistoryPicker(ComboViews.Bookmarks);
+                break;
+
+            case R.id.history_menu_id:
+                bookmarksOrHistoryPicker(ComboViews.History);
+                break;
+
+            case R.id.snapshots_menu_id:
+                bookmarksOrHistoryPicker(ComboViews.Snapshots);
                 break;
 
             case R.id.add_bookmark_menu_id:
@@ -1634,17 +1642,13 @@
                 break;
 
             case R.id.page_info_menu_id:
-                mPageDialogsHandler.showPageInfo(mTabControl.getCurrentTab(), false, null);
+                showPageInfo();
                 break;
 
             case R.id.snapshot_go_live:
                 goLive();
                 return true;
 
-            case R.id.classic_history_menu_id:
-                bookmarksOrHistoryPicker(true);
-                break;
-
             case R.id.share_page_menu_id:
                 Tab currentTab = mTabControl.getCurrentTab();
                 if (null == currentTab) {
@@ -1713,6 +1717,11 @@
         t.loadUrl(t.getUrl(), null);
     }
 
+    @Override
+    public void showPageInfo() {
+        mPageDialogsHandler.showPageInfo(mTabControl.getCurrentTab(), false, null);
+    }
+
     public boolean onContextItemSelected(MenuItem item) {
         // Let the History and Bookmark fragments handle menus they created.
         if (item.getGroupId() == R.id.CONTEXT_MENU) {
@@ -2685,7 +2694,7 @@
         switch(keyCode) {
         case KeyEvent.KEYCODE_BACK:
             if (mUi.isWebShowing()) {
-                bookmarksOrHistoryPicker(true);
+                bookmarksOrHistoryPicker(ComboViews.History);
                 return true;
             }
             break;
diff --git a/src/com/android/browser/IntentHandler.java b/src/com/android/browser/IntentHandler.java
index c76197d..e5ddb47 100644
--- a/src/com/android/browser/IntentHandler.java
+++ b/src/com/android/browser/IntentHandler.java
@@ -32,6 +32,7 @@
 import android.text.TextUtils;
 import android.util.Patterns;
 
+import com.android.browser.UI.ComboViews;
 import com.android.browser.search.SearchEngine;
 import com.android.common.Search;
 import com.android.common.speech.LoggingEvents;
@@ -85,7 +86,7 @@
             return;
         }
         if (BrowserActivity.ACTION_SHOW_BOOKMARKS.equals(action)) {
-            mController.bookmarksOrHistoryPicker(false);
+            mController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
             return;
         }
 
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index 14b1e84..d5b4347 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -26,7 +26,6 @@
 import android.view.View.OnClickListener;
 import android.view.ViewConfiguration;
 import android.view.ViewGroup;
-import android.webkit.WebView;
 import android.widget.BaseAdapter;
 import android.widget.FrameLayout;
 import android.widget.ImageButton;
@@ -40,6 +39,7 @@
 import com.android.browser.NavTabScroller.OnLayoutListener;
 import com.android.browser.NavTabScroller.OnRemoveListener;
 import com.android.browser.TabControl.OnThumbnailUpdatedListener;
+import com.android.browser.UI.ComboViews;
 
 import java.util.HashMap;
 
@@ -89,7 +89,6 @@
 
     @Override
     public boolean onMenuItemClick(MenuItem item) {
-        mUi.hideNavScreen(mUiController.getTabControl().getCurrentPosition(), false);
         return mUiController.onOptionsItemSelected(item);
     }
 
@@ -148,7 +147,7 @@
     @Override
     public void onClick(View v) {
         if (mBookmarks == v) {
-            mUiController.bookmarksOrHistoryPicker(false);
+            mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         } else if (mNewTab == v) {
             openNewTab();
         } else if (mMore == v) {
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index a1e778d..2e206fb 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -80,6 +80,7 @@
         mMore = findViewById(R.id.more);
         mMore.setOnClickListener(this);
         mComboIcon = findViewById(R.id.iconcombo);
+        mComboIcon.setOnClickListener(this);
         mTitleContainer = findViewById(R.id.title_bg);
         setFocusState(false);
         Resources res = getContext().getResources();
@@ -164,6 +165,8 @@
             showMenu(mMore);
         } else if (mClearButton == v) {
             mUrlInput.setText("");
+        } else if (mComboIcon == v) {
+            mUiController.showPageInfo();
         } else {
             super.onClick(v);
         }
diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
index be3a9ab..ef29a49 100644
--- a/src/com/android/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -31,6 +31,8 @@
 import android.widget.ImageButton;
 import android.widget.ImageView;
 
+import com.android.browser.UI.ComboViews;
+
 import java.util.List;
 
 public class NavigationBarTablet extends NavigationBarBase {
@@ -173,7 +175,7 @@
                 getContext().startActivity(intent);
             }
         } else if (mAllButton == v) {
-            mUiController.bookmarksOrHistoryPicker(false);
+            mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         } else if (mSearchButton == v) {
             mBaseUi.editUrl(true);
         } else if (mStopButton == v) {
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index b0f3d74..56b5276 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -194,34 +194,35 @@
 
     @Override
     public void updateMenuState(Tab tab, Menu menu) {
-        MenuItem bm = menu.findItem(R.id.bookmarks_menu_id);
-        if (bm != null) {
-            boolean isDataUrl = false;
-            if (tab != null) {
-                String url = tab.getUrl();
-                isDataUrl = DataUri.isDataUri(url);
-            }
-            bm.setVisible(!showingNavScreen() && !isDataUrl);
-        }
-        MenuItem nt = menu.findItem(R.id.new_tab_menu_id);
-        if (nt != null) {
-            nt.setVisible(!showingNavScreen());
-        }
         MenuItem abm = menu.findItem(R.id.add_bookmark_menu_id);
         if (abm != null) {
             abm.setVisible((tab != null) && !tab.isSnapshot() && !showingNavScreen());
         }
+        MenuItem info = menu.findItem(R.id.page_info_menu_id);
+        if (info != null) {
+            info.setVisible(false);
+        }
+        MenuItem newtab = menu.findItem(R.id.new_tab_menu_id);
+        if (newtab != null && !mUseQuickControls) {
+            newtab.setVisible(false);
+        }
+        MenuItem incognito = menu.findItem(R.id.incognito_menu_id);
+        if (incognito != null) {
+            incognito.setVisible(showingNavScreen() || mUseQuickControls);
+        }
         if (showingNavScreen()) {
             menu.setGroupVisible(R.id.LIVE_MENU, false);
             menu.setGroupVisible(R.id.SNAPSHOT_MENU, false);
-            menu.findItem(R.id.page_info_menu_id).setVisible(false);
             menu.setGroupVisible(R.id.NAV_MENU, false);
+            menu.setGroupVisible(R.id.COMBO_MENU, true);
         }
     }
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        if (showingNavScreen()) {
+        if (showingNavScreen()
+                && (item.getItemId() != R.id.history_menu_id)
+                && (item.getItemId() != R.id.snapshots_menu_id)) {
             hideNavScreen(mUiController.getTabControl().getCurrentPosition(), false);
         }
         return false;
diff --git a/src/com/android/browser/PieControlXLarge.java b/src/com/android/browser/PieControlXLarge.java
index 0072aea..fcc8840 100644
--- a/src/com/android/browser/PieControlXLarge.java
+++ b/src/com/android/browser/PieControlXLarge.java
@@ -30,6 +30,7 @@
 import android.widget.FrameLayout;
 import android.widget.TextView;
 
+import com.android.browser.UI.ComboViews;
 import com.android.browser.view.PieItem;
 import com.android.browser.view.PieListView;
 import com.android.browser.view.PieMenu.PieView.OnLayoutListener;
@@ -148,7 +149,7 @@
         } else if (mUrl.getView() == v) {
             mUi.editUrl(false);
         } else if (mBookmarks.getView() == v) {
-            mUiController.bookmarksOrHistoryPicker(false);
+            mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         } else if (mNewTab.getView() == v) {
             mUiController.openTabToHomePage();
             mUi.editUrl(false);
diff --git a/src/com/android/browser/SnapshotBar.java b/src/com/android/browser/SnapshotBar.java
index 2fb90d2..51e1226 100644
--- a/src/com/android/browser/SnapshotBar.java
+++ b/src/com/android/browser/SnapshotBar.java
@@ -31,6 +31,8 @@
 import android.widget.PopupMenu.OnMenuItemClickListener;
 import android.widget.TextView;
 
+import com.android.browser.UI.ComboViews;
+
 import java.text.DateFormat;
 import java.util.Date;
 
@@ -164,7 +166,7 @@
     @Override
     public void onClick(View v) {
         if (mBookmarks == v) {
-            mTitleBar.getUiController().bookmarksOrHistoryPicker(false);
+            mTitleBar.getUiController().bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         } else if (mTabSwitcher == v) {
             ((PhoneUi) mTitleBar.getUi()).toggleNavScreen();
         } else if (mOverflowMenu == v) {
diff --git a/src/com/android/browser/UiController.java b/src/com/android/browser/UiController.java
index 97e99a9..9b48c46 100644
--- a/src/com/android/browser/UiController.java
+++ b/src/com/android/browser/UiController.java
@@ -22,6 +22,7 @@
 import android.view.MenuItem;
 import android.webkit.WebView;
 
+import com.android.browser.UI.ComboViews;
 import com.android.browser.UI.DropdownChangeListener;
 
 import java.util.List;
@@ -63,7 +64,7 @@
 
     Intent createBookmarkCurrentPageIntent(boolean canBeAnEdit);
 
-    void bookmarksOrHistoryPicker(boolean openHistory);
+    void bookmarksOrHistoryPicker(ComboViews startView);
 
     void startVoiceSearch();
 
@@ -103,4 +104,6 @@
 
     Activity getActivity();
 
+    void showPageInfo();
+
 }