show IME when titlebar is selected in tab switcher

Change-Id: I83b60ac504c8300904d76753b92f6fb3a93c172f
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 8d2b6f0..7b7e25f 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -443,13 +443,13 @@
         }
     }
 
-    public void editUrl(boolean clearInput) {
+    public void editUrl(boolean clearInput, boolean forceIME) {
         if (mUiController.isInCustomActionMode()) {
             mUiController.endActionMode();
         }
         showTitleBar();
         if ((getActiveTab() != null) && !getActiveTab().isSnapshot()) {
-            mNavigationBar.startEditingUrl(clearInput);
+            mNavigationBar.startEditingUrl(clearInput, forceIME);
         }
     }
 
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 36f6a1a..0c86988 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1104,7 +1104,7 @@
     // callback from phone title bar
     public void editUrl() {
         if (mOptionsMenuOpen) mActivity.closeOptionsMenu();
-        mUi.editUrl(false);
+        mUi.editUrl(false, true);
     }
 
     public void startVoiceSearch() {
@@ -2837,7 +2837,7 @@
     }
 
     public boolean onSearchRequested() {
-        mUi.editUrl(false);
+        mUi.editUrl(false, true);
         return true;
     }
 
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index 8314f73..1d2114e 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -242,7 +242,7 @@
                         switchToTab(tab);
                         mUi.getTitleBar().setSkipTitleBarAnimations(true);
                         close(position, false);
-                        mUi.editUrl(false);
+                        mUi.editUrl(false, true);
                         mUi.getTitleBar().setSkipTitleBarAnimations(false);
                     } else if (tabview.isWebView(v)) {
                         close(position);
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index 41af619..d66c877 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -247,7 +247,7 @@
      * called from the Ui when the user wants to edit
      * @param clearInput clear the input field
      */
-    void startEditingUrl(boolean clearInput) {
+    void startEditingUrl(boolean clearInput, boolean forceIME) {
         // editing takes preference of progress
         setVisibility(View.VISIBLE);
         if (mTitleBar.useQuickControls()) {
@@ -261,7 +261,7 @@
         } else if (mInVoiceMode) {
             mUrlInput.showDropDown();
         }
-        if (mTitleBar.useQuickControls()) {
+        if (forceIME) {
             mUrlInput.showIME();
         }
     }
diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
index 3403fd7..37b1f17 100644
--- a/src/com/android/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -177,7 +177,7 @@
         } else if (mAllButton == v) {
             mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         } else if (mSearchButton == v) {
-            mBaseUi.editUrl(true);
+            mBaseUi.editUrl(true, false);
         } else if (mStopButton == v) {
             stopOrRefresh();
         } else if (mGoButton == v) {
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 7f64643..b269586 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -76,11 +76,11 @@
     }
 
     @Override
-    public void editUrl(boolean clearInput) {
+    public void editUrl(boolean clearInput, boolean forceIME) {
         if (mUseQuickControls) {
             mTitleBar.setShowProgressOnly(false);
         }
-        super.editUrl(clearInput);
+        super.editUrl(clearInput, forceIME);
     }
 
     @Override
diff --git a/src/com/android/browser/PieControl.java b/src/com/android/browser/PieControl.java
index f7e2c9f..abe8d37 100644
--- a/src/com/android/browser/PieControl.java
+++ b/src/com/android/browser/PieControl.java
@@ -197,7 +197,7 @@
                 web.reload();
             }
         } else if (mUrl.getView() == v) {
-            mUi.editUrl(false);
+            mUi.editUrl(false, true);
         } else if (mBookmarks.getView() == v) {
             mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         } else if (mHistory.getView() == v) {
@@ -206,10 +206,10 @@
             mUiController.bookmarkCurrentPage();
         } else if (mNewTab.getView() == v) {
             mUiController.openTabToHomePage();
-            mUi.editUrl(false);
+            mUi.editUrl(false, true);
         } else if (mIncognito.getView() == v) {
             mUiController.openIncognitoTab();
-            mUi.editUrl(false);
+            mUi.editUrl(false, true);
         } else if (mClose.getView() == v) {
             mUiController.closeCurrentTab();
         } else if (mOptions.getView() == v) {
diff --git a/src/com/android/browser/TabBar.java b/src/com/android/browser/TabBar.java
index bd17c74..cf82e01 100644
--- a/src/com/android/browser/TabBar.java
+++ b/src/com/android/browser/TabBar.java
@@ -197,7 +197,7 @@
                     mUi.hideTitleBar();
                 } else {
                     mUi.stopWebViewScrolling();
-                    mUi.editUrl(false);
+                    mUi.editUrl(false, false);
                 }
             } else if (mUi.isTitleBarShowing() && !isLoading()) {
                 mUi.stopEditingUrl();
diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java
index 2bd3754..034f136 100644
--- a/src/com/android/browser/UI.java
+++ b/src/com/android/browser/UI.java
@@ -134,7 +134,7 @@
 
     void showMaxTabsWarning();
 
-    void editUrl(boolean clearInput);
+    void editUrl(boolean clearInput, boolean forceIME);
 
     boolean isEditingUrl();
 
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index e0a6be2..1969978 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -207,11 +207,11 @@
     }
 
     @Override
-    public void editUrl(boolean clearInput) {
+    public void editUrl(boolean clearInput, boolean forceIME) {
         if (mUseQuickControls) {
             mTitleBar.setShowProgressOnly(false);
         }
-        super.editUrl(clearInput);
+        super.editUrl(clearInput, forceIME);
     }
 
     @Override
@@ -285,13 +285,13 @@
                     case KeyEvent.KEYCODE_DPAD_UP:
                     case KeyEvent.KEYCODE_DPAD_LEFT:
                         if ((web != null) && web.hasFocus() && !mTitleBar.hasFocus()) {
-                            editUrl(false);
+                            editUrl(false, false);
                             return true;
                         }
                 }
                 boolean ctrl = event.hasModifiers(KeyEvent.META_CTRL_ON);
                 if (!ctrl && isTypingKey(event) && !mTitleBar.isEditingUrl()) {
-                    editUrl(true);
+                    editUrl(true, false);
                     return mContentView.dispatchKeyEvent(event);
                 }
             }