fix action bar and menu

    Bug: 5077207
    Bug: 5097486
    cleaned up action bar items
    dynamically change menu items based on context
    bookmarks option added to nav bar menu
    new tab added to navbar menu
    find/addbookmark only on real pages
    removed new incognito tab from tab switcher action bar

Change-Id: I973f20a13bb7d9900041f717aff012e7a2c735b8
diff --git a/res/layout-land/nav_screen.xml b/res/layout-land/nav_screen.xml
index 8e10f02..5a3a037 100644
--- a/res/layout-land/nav_screen.xml
+++ b/res/layout-land/nav_screen.xml
@@ -32,28 +32,14 @@
             android:id="@+id/newtab"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:contentDescription="@string/accessibility_button_newtab"
             android:src="@drawable/ic_new_window_holo_dark" />
         <ImageButton
-            android:id="@+id/newincognito"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
-            style="@style/HoloButton"
-            android:gravity="center_vertical"
-            android:contentDescription="@string/accessibility_button_newincognitotab"
-            android:src="@drawable/ic_new_incognito_holo_dark" />
-        <ImageButton
             android:id="@+id/bookmarks"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
             android:contentDescription="@string/accessibility_button_bookmarks"
             android:src="@drawable/ic_bookmarks_history_holo_dark"
             style="@style/HoloButton" />
@@ -61,8 +47,8 @@
             android:id="@+id/more"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
+            android:paddingLeft="8dip"
+            android:paddingRight="8dip"
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:contentDescription="@string/accessibility_button_more"
diff --git a/res/layout/nav_screen.xml b/res/layout/nav_screen.xml
index 8ff4be3..4e00fa3 100644
--- a/res/layout/nav_screen.xml
+++ b/res/layout/nav_screen.xml
@@ -37,28 +37,14 @@
             android:id="@+id/newtab"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:contentDescription="@string/accessibility_button_newtab"
             android:src="@drawable/ic_new_window_holo_dark" />
         <ImageButton
-            android:id="@+id/newincognito"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
-            style="@style/HoloButton"
-            android:gravity="center_vertical"
-            android:contentDescription="@string/accessibility_button_newincognitotab"
-            android:src="@drawable/ic_new_incognito_holo_dark" />
-        <ImageButton
             android:id="@+id/bookmarks"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
             android:contentDescription="@string/accessibility_button_bookmarks"
             android:src="@drawable/ic_bookmarks_history_holo_dark"
             style="@style/HoloButton" />
@@ -66,8 +52,8 @@
             android:id="@+id/more"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
+            android:paddingLeft="8dip"
+            android:paddingRight="8dip"
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:contentDescription="@string/accessibility_button_more"
diff --git a/res/menu/browser.xml b/res/menu/browser.xml
index 0b46db6..1de97f7 100644
--- a/res/menu/browser.xml
+++ b/res/menu/browser.xml
@@ -28,10 +28,18 @@
                 android:icon="@*android:drawable/ic_menu_forward" />
         </group>
         <item
+            android:id="@+id/new_tab_menu_id"
+            android:title="@string/menu_new_tab"
+            android:icon="@drawable/ic_new_window_holo_dark" />
+        <item
             android:id="@+id/incognito_menu_id"
             android:title="@string/incognito_tab"
             android:icon="@drawable/ic_new_incognito_holo_dark" />
         <item
+            android:id="@+id/bookmarks_menu_id"
+            android:title="@string/bookmarks"
+            android:icon="@drawable/ic_bookmarks_history_holo_dark" />
+        <item
             android:id="@+id/add_bookmark_menu_id"
             android:title="@string/save_to_bookmarks"
             android:icon="@drawable/ic_bookmark_on_holo_dark"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4ed6c21..d9667bc 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -197,6 +197,8 @@
     <string name="open_all_in_new_window">Open all in new windows</string>
     <!-- Menu item to open a dialog which allows the user to enter a url or do search-->
     <string name="goto_dot">Go</string>
+    <!-- Menu item that opens up a new tab. [CHAR LIMIT=30] -->
+    <string name="menu_new_tab">Open new tab</string>
     <!-- Menu item that opens up a new incognito tab. [CHAR LIMIT=30] -->
     <string name="incognito_tab">Open new incognito tab</string>
     <!-- Menu item to switch to text selection mode for copy and paste. -->
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 091126c..372f2a9 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -646,6 +646,10 @@
     }
 
     @Override
+    public void updateMenuState(Tab tab, Menu menu) {
+    }
+
+    @Override
     public void onOptionsMenuOpened() {
     }
 
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 457c2e0..f20968b 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1520,6 +1520,7 @@
 
         MenuItem saveSnapshot = menu.findItem(R.id.save_snapshot_menu_id);
         saveSnapshot.setVisible(tab != null && !tab.isSnapshot());
+        mUi.updateMenuState(tab, menu);
     }
 
     public boolean onOptionsItemSelected(MenuItem item) {
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index 9c12ccf..face39e 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -52,7 +52,6 @@
     ImageButton mBookmarks;
     ImageButton mMore;
     ImageButton mNewTab;
-    ImageButton mNewIncognito;
     FrameLayout mHolder;
 
     TextView mTitle;
@@ -115,11 +114,9 @@
                 R.string.accessibility_transition_navscreen));
         mBookmarks = (ImageButton) findViewById(R.id.bookmarks);
         mNewTab = (ImageButton) findViewById(R.id.newtab);
-        mNewIncognito = (ImageButton) findViewById(R.id.newincognito);
         mMore = (ImageButton) findViewById(R.id.more);
         mBookmarks.setOnClickListener(this);
         mNewTab.setOnClickListener(this);
-        mNewIncognito.setOnClickListener(this);
         mMore.setOnClickListener(this);
         mScroller = (NavTabGallery) findViewById(R.id.scroller);
         mAdapter = new TabAdapter(mContext, mUiController.getTabControl());
@@ -160,9 +157,6 @@
             openNewTab();
         } else if (mMore == v) {
             showMenu();
-        } else if (mNewIncognito == v) {
-            mUi.hideNavScreen(true);
-            mUiController.openIncognitoTab();
         } else if (mTitle == v) {
             mUi.getTitleBar().setSkipTitleBarAnimations(true);
             close(false);
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 853d935..901f5bd 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -164,11 +164,32 @@
 
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
-        menu.setGroupVisible(R.id.NAV_MENU, (mNavScreen == null));
+        updateMenuState(mActiveTab, menu);
         return true;
     }
 
     @Override
+    public void updateMenuState(Tab tab, Menu menu) {
+        menu.setGroupVisible(R.id.NAV_MENU, (mNavScreen == null));
+        MenuItem bm = menu.findItem(R.id.bookmarks_menu_id);
+        if (bm != null) {
+            bm.setVisible(mNavScreen == null);
+        }
+        MenuItem nt = menu.findItem(R.id.new_tab_menu_id);
+        if (nt != null) {
+            nt.setVisible(mNavScreen == null);
+        }
+        MenuItem find = menu.findItem(R.id.find_menu_id);
+        if (find != null) {
+            find.setVisible(((tab != null) && !tab.isSnapshot()));
+        }
+        MenuItem abm = menu.findItem(R.id.add_bookmark_menu_id);
+        if (abm != null) {
+            abm.setVisible((tab != null) && !tab.isSnapshot());
+        }
+    }
+
+    @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (mNavScreen != null) {
             hideNavScreen(false);
diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java
index 2984d5c..bc4c0cf 100644
--- a/src/com/android/browser/UI.java
+++ b/src/com/android/browser/UI.java
@@ -99,6 +99,8 @@
 
     public boolean onPrepareOptionsMenu(Menu menu);
 
+    public void updateMenuState(Tab tab, Menu menu);
+
     public void onOptionsMenuOpened();
 
     public void onExtendedMenuOpened();