fix related to bug http://b/issue?id=2101719

adjusted menu for large screen
introduced new menu-xlarge for tablet menu
added menu-normal with tablet menu for testing purposes
added shortcut items to tablet menu

Change-Id: Ic23cc7ccc02f57dca07fbd151c77dc490422874e
diff --git a/res/drawable/ic_menu_downloads.png b/res/drawable/ic_menu_downloads.png
new file mode 100644
index 0000000..fff5022
--- /dev/null
+++ b/res/drawable/ic_menu_downloads.png
Binary files differ
diff --git a/res/drawable/ic_menu_find.png b/res/drawable/ic_menu_find.png
new file mode 100644
index 0000000..4d96348
--- /dev/null
+++ b/res/drawable/ic_menu_find.png
Binary files differ
diff --git a/res/drawable/ic_menu_pageinfo.png b/res/drawable/ic_menu_pageinfo.png
new file mode 100644
index 0000000..c04f0e3
--- /dev/null
+++ b/res/drawable/ic_menu_pageinfo.png
Binary files differ
diff --git a/res/drawable/ic_menu_settings.png b/res/drawable/ic_menu_settings.png
new file mode 100644
index 0000000..7a642d6
--- /dev/null
+++ b/res/drawable/ic_menu_settings.png
Binary files differ
diff --git a/res/drawable/ic_menu_share.png b/res/drawable/ic_menu_share.png
new file mode 100644
index 0000000..ea2b672
--- /dev/null
+++ b/res/drawable/ic_menu_share.png
Binary files differ
diff --git a/res/menu-normal/browser.xml b/res/menu-normal/browser.xml
new file mode 100644
index 0000000..2de278f
--- /dev/null
+++ b/res/menu-normal/browser.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <group android:id="@+id/MAIN_MENU">
+        <item android:id="@+id/new_tab_menu_id"
+            android:title="@string/new_tab"
+            android:icon="@drawable/ic_menu_new_window"
+            android:alphabeticShortcut="n" />
+        <item android:id="@+id/active_tabs_menu_id"
+            android:title="@string/active_tabs"
+            android:icon="@drawable/ic_menu_windows"
+            android:alphabeticShortcut="t" />
+        <item android:id="@+id/find_menu_id"
+            android:title="@string/find_dot"
+            android:icon="@drawable/ic_menu_find"
+            android:alphabeticShortcut="f" />
+        <item android:id="@+id/share_page_menu_id"
+            android:title="@string/share_page"
+            android:icon="@drawable/ic_menu_share"
+            android:alphabeticShortcut="s" />
+        <item android:id="@+id/page_info_menu_id"
+            android:title="@string/page_info"
+            android:icon="@drawable/ic_menu_pageinfo"
+            android:alphabeticShortcut="g" />
+        <item android:id="@+id/view_downloads_menu_id"
+            android:title="@string/menu_view_download"
+            android:icon="@drawable/ic_menu_downloads"
+            android:alphabeticShortcut="d" />
+        <item android:id="@+id/preferences_menu_id"
+            android:title="@string/menu_preferences"
+            android:icon="@drawable/ic_menu_settings"
+            android:alphabeticShortcut="p" />
+        <!-- followings are debug only -->
+        <item android:id="@+id/dump_nav_menu_id"
+            android:title="@string/dump_nav"
+            android:visible="false" />
+        <item android:id="@+id/dump_counters_menu_id"
+            android:title="@string/dump_counters"
+            android:visible="false" />
+    </group>
+    <group android:id="@+id/MAIN_SHORTCUT_MENU" android:visible="false">
+        <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"
+            android:alphabeticShortcut="o" />
+        <item android:id="@+id/window_one_menu_id"
+            android:alphabeticShortcut="1" />
+        <item android:id="@+id/window_two_menu_id"
+            android:alphabeticShortcut="2" />
+        <item android:id="@+id/window_three_menu_id"
+            android:alphabeticShortcut="3" />
+        <item android:id="@+id/window_four_menu_id"
+            android:alphabeticShortcut="4" />
+        <item android:id="@+id/window_five_menu_id"
+            android:alphabeticShortcut="5" />
+        <item android:id="@+id/window_six_menu_id"
+            android:alphabeticShortcut="6" />
+        <item android:id="@+id/window_seven_menu_id"
+            android:alphabeticShortcut="7" />
+        <item android:id="@+id/window_eight_menu_id"
+            android:alphabeticShortcut="8" />
+        <item android:id="@+id/back_menu_id"
+            android:alphabeticShortcut="j" />
+        <item android:id="@+id/forward_menu_id"
+            android:alphabeticShortcut="k" />
+        <item android:id="@+id/bookmarks_menu_id"
+            android:alphabeticShortcut="b" />
+        <item android:id="@+id/add_bookmark_menu_id"
+            android:alphabeticShortcut="a" />
+        <item android:id="@+id/stop_reload_menu_id"
+            android:alphabeticShortcut="r" />
+        <item android:id="@+id/goto_menu_id"
+            android:alphabeticShortcut="l" />
+        <item android:id="@+id/close_menu_id"
+            android:alphabeticShortcut="w" />
+    </group>
+</menu>
diff --git a/res/menu-xlarge/browser.xml b/res/menu-xlarge/browser.xml
new file mode 100644
index 0000000..2de278f
--- /dev/null
+++ b/res/menu-xlarge/browser.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <group android:id="@+id/MAIN_MENU">
+        <item android:id="@+id/new_tab_menu_id"
+            android:title="@string/new_tab"
+            android:icon="@drawable/ic_menu_new_window"
+            android:alphabeticShortcut="n" />
+        <item android:id="@+id/active_tabs_menu_id"
+            android:title="@string/active_tabs"
+            android:icon="@drawable/ic_menu_windows"
+            android:alphabeticShortcut="t" />
+        <item android:id="@+id/find_menu_id"
+            android:title="@string/find_dot"
+            android:icon="@drawable/ic_menu_find"
+            android:alphabeticShortcut="f" />
+        <item android:id="@+id/share_page_menu_id"
+            android:title="@string/share_page"
+            android:icon="@drawable/ic_menu_share"
+            android:alphabeticShortcut="s" />
+        <item android:id="@+id/page_info_menu_id"
+            android:title="@string/page_info"
+            android:icon="@drawable/ic_menu_pageinfo"
+            android:alphabeticShortcut="g" />
+        <item android:id="@+id/view_downloads_menu_id"
+            android:title="@string/menu_view_download"
+            android:icon="@drawable/ic_menu_downloads"
+            android:alphabeticShortcut="d" />
+        <item android:id="@+id/preferences_menu_id"
+            android:title="@string/menu_preferences"
+            android:icon="@drawable/ic_menu_settings"
+            android:alphabeticShortcut="p" />
+        <!-- followings are debug only -->
+        <item android:id="@+id/dump_nav_menu_id"
+            android:title="@string/dump_nav"
+            android:visible="false" />
+        <item android:id="@+id/dump_counters_menu_id"
+            android:title="@string/dump_counters"
+            android:visible="false" />
+    </group>
+    <group android:id="@+id/MAIN_SHORTCUT_MENU" android:visible="false">
+        <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"
+            android:alphabeticShortcut="o" />
+        <item android:id="@+id/window_one_menu_id"
+            android:alphabeticShortcut="1" />
+        <item android:id="@+id/window_two_menu_id"
+            android:alphabeticShortcut="2" />
+        <item android:id="@+id/window_three_menu_id"
+            android:alphabeticShortcut="3" />
+        <item android:id="@+id/window_four_menu_id"
+            android:alphabeticShortcut="4" />
+        <item android:id="@+id/window_five_menu_id"
+            android:alphabeticShortcut="5" />
+        <item android:id="@+id/window_six_menu_id"
+            android:alphabeticShortcut="6" />
+        <item android:id="@+id/window_seven_menu_id"
+            android:alphabeticShortcut="7" />
+        <item android:id="@+id/window_eight_menu_id"
+            android:alphabeticShortcut="8" />
+        <item android:id="@+id/back_menu_id"
+            android:alphabeticShortcut="j" />
+        <item android:id="@+id/forward_menu_id"
+            android:alphabeticShortcut="k" />
+        <item android:id="@+id/bookmarks_menu_id"
+            android:alphabeticShortcut="b" />
+        <item android:id="@+id/add_bookmark_menu_id"
+            android:alphabeticShortcut="a" />
+        <item android:id="@+id/stop_reload_menu_id"
+            android:alphabeticShortcut="r" />
+        <item android:id="@+id/goto_menu_id"
+            android:alphabeticShortcut="l" />
+        <item android:id="@+id/close_menu_id"
+            android:alphabeticShortcut="w" />
+    </group>
+</menu>
diff --git a/res/menu/browser.xml b/res/menu/browser.xml
index 4793c21..da36b73 100644
--- a/res/menu/browser.xml
+++ b/res/menu/browser.xml
@@ -41,21 +41,23 @@
             android:alphabeticShortcut="a" />
         <item android:id="@+id/find_menu_id"
             android:title="@string/find_dot"
+            android:icon="@drawable/ic_menu_find"
             android:alphabeticShortcut="f" />
-        <item android:id="@+id/select_text_id"
-            android:title="@string/select_dot"
-            android:alphabeticShortcut="e" />
-        <item android:id="@+id/page_info_menu_id"
-            android:title="@string/page_info"
-            android:alphabeticShortcut="g" />
         <item android:id="@+id/share_page_menu_id"
             android:title="@string/share_page"
+            android:icon="@drawable/ic_menu_share"
             android:alphabeticShortcut="s" />
+        <item android:id="@+id/page_info_menu_id"
+            android:title="@string/page_info"
+            android:icon="@drawable/ic_menu_pageinfo"
+            android:alphabeticShortcut="g" />
         <item android:id="@+id/view_downloads_menu_id"
             android:title="@string/menu_view_download"
+            android:icon="@drawable/ic_menu_downloads"
             android:alphabeticShortcut="d" />
         <item android:id="@+id/preferences_menu_id"
             android:title="@string/menu_preferences"
+            android:icon="@drawable/ic_menu_settings"
             android:alphabeticShortcut="p" />
         <!-- followings are debug only -->
         <item android:id="@+id/dump_nav_menu_id"
@@ -91,16 +93,10 @@
         <item android:id="@+id/window_eight_menu_id"
             android:alphabeticShortcut="8" />
         <item android:id="@+id/back_menu_id"
-            android:title="@string/back"
-            android:drawable="@*android:drawable/ic_menu_back"
             android:alphabeticShortcut="j" />
         <item android:id="@+id/goto_menu_id"
-            android:title="@string/goto_dot"
-            android:alphabeticShortcut="l"
-            android:icon="@android:drawable/ic_menu_search"/>
+            android:alphabeticShortcut="l" />
         <item android:id="@+id/close_menu_id"
-            android:icon="@drawable/ic_btn_close_panel"
-            android:title="@string/tab_picker_remove_tab"
             android:alphabeticShortcut="w" />
     </group>
     <!-- these items are toggled in and out of @+id/stop_reload_menu_id -->
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 9d1e38f..92881dd 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -38,13 +38,11 @@
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.database.Cursor;
-import android.database.DatabaseUtils;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
 import android.graphics.Picture;
 import android.graphics.PixelFormat;
-import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
@@ -64,14 +62,13 @@
 import android.os.SystemClock;
 import android.provider.Browser;
 import android.provider.ContactsContract;
-import android.provider.ContactsContract.Intents.Insert;
 import android.provider.Downloads;
 import android.provider.MediaStore;
+import android.provider.ContactsContract.Intents.Insert;
 import android.speech.RecognizerResultsIntent;
 import android.text.IClipboard;
 import android.text.TextUtils;
 import android.text.format.DateFormat;
-import android.util.AttributeSet;
 import android.util.Log;
 import android.util.Patterns;
 import android.view.ContextMenu;
@@ -105,12 +102,6 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.Toast;
-import android.accounts.Account;
-import android.accounts.AccountManager;
-import android.accounts.AccountManagerFuture;
-import android.accounts.AuthenticatorException;
-import android.accounts.OperationCanceledException;
-import android.accounts.AccountManagerCallback;
 
 import com.android.common.Search;
 import com.android.common.speech.LoggingEvents;
@@ -120,11 +111,9 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLEncoder;
-import java.text.ParseException;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -223,6 +212,7 @@
         mXLargeScreenSize = (getResources().getConfiguration().screenLayout
                 & Configuration.SCREENLAYOUT_SIZE_MASK)
                 == Configuration.SCREENLAYOUT_SIZE_XLARGE;
+
         if (mXLargeScreenSize) {
             mTitleBar = new TitleBarXLarge(this);
             LinearLayout layout = (LinearLayout) mBrowserFrameLayout.
@@ -631,6 +621,7 @@
         final ContentResolver cr = mResolver;
         final String newUrl = url;
         new AsyncTask<Void, Void, Void>() {
+            @Override
             protected Void doInBackground(Void... unused) {
                 Browser.updateVisitedHistory(cr, newUrl, false);
                 Browser.addSearchUrl(cr, newUrl);
@@ -692,6 +683,7 @@
                     final ContentResolver cr = mResolver;
                     final String newUrl = url;
                     new AsyncTask<Void, Void, Void>() {
+                        @Override
                         protected Void doInBackground(Void... unused) {
                             Browser.updateVisitedHistory(cr, newUrl, false);
                             return null;
@@ -1144,12 +1136,14 @@
         if (mMenu == null) {
             return;
         }
+        MenuItem dest = mMenu.findItem(R.id.stop_reload_menu_id);
         MenuItem src = mInLoad ?
                 mMenu.findItem(R.id.stop_menu_id):
-                    mMenu.findItem(R.id.reload_menu_id);
-        MenuItem dest = mMenu.findItem(R.id.stop_reload_menu_id);
-        dest.setIcon(src.getIcon());
-        dest.setTitle(src.getTitle());
+                mMenu.findItem(R.id.reload_menu_id);
+        if (src != null) {
+            dest.setIcon(src.getIcon());
+            dest.setTitle(src.getTitle());
+        }
     }
 
     @Override
@@ -1408,10 +1402,6 @@
                 showFindDialog();
                 break;
 
-            case R.id.select_text_id:
-                showSelectDialog();
-                break;
-
             case R.id.page_info_menu_id:
                 showPageInfo(mTabControl.getCurrentTab(), false);
                 break;
@@ -1592,11 +1582,11 @@
                 final MenuItem home = menu.findItem(R.id.homepage_menu_id);
                 home.setEnabled(!isHome);
 
-                menu.findItem(R.id.forward_menu_id)
-                        .setEnabled(canGoForward);
+                final MenuItem forward = menu.findItem(R.id.forward_menu_id);
+                forward.setEnabled(canGoForward);
 
-                menu.findItem(R.id.new_tab_menu_id).setEnabled(
-                        mTabControl.canCreateNewTab());
+                final MenuItem newtab = menu.findItem(R.id.new_tab_menu_id);
+                newtab.setEnabled(mTabControl.canCreateNewTab());
 
                 // decide whether to show the share link option
                 PackageManager pm = getPackageManager();
@@ -1934,6 +1924,7 @@
             return true;
         }
 
+        @Override
         public void run() {
             Drawable oldWallpaper = BrowserActivity.this.getWallpaper();
             try {
@@ -2296,6 +2287,7 @@
     // Private handler for handling javascript and saving passwords
     private Handler mHandler = new Handler() {
 
+        @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
                 case FOCUS_NODE_HREF:
@@ -3937,6 +3929,7 @@
     private void getInstalledPackages() {
         AsyncTask<Void, Void, Set<String> > task =
             new AsyncTask<Void, Void, Set<String> >() {
+            @Override
             protected Set<String> doInBackground(Void... unused) {
                 Set<String> installedPackages = new HashSet<String>();
                 PackageManager pm = BrowserActivity.this.getPackageManager();
@@ -3953,6 +3946,7 @@
             }
 
             // Executes on the UI thread
+            @Override
             protected void onPostExecute(Set<String> installedPackages) {
                 addPackageNames(installedPackages);
             }