Merge change 7645 into donut

* changes:
  Make the SearchDialog's AutoCompleteTextView dropdown respect the IME again when the user presses right or left from a query-jammed suggestion to continue editing. Previously we required the user to press on the text field again in order to get the IME to show.
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index bfd9923..359cdac 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -1042,6 +1042,8 @@
                 mSearchAutoComplete.setSelection(selPoint);
                 mSearchAutoComplete.setListSelection(0);
                 mSearchAutoComplete.clearListSelection();
+                mSearchAutoComplete.ensureImeVisible();
+                
                 return true;
             }
             
diff --git a/core/java/android/widget/AutoCompleteTextView.java b/core/java/android/widget/AutoCompleteTextView.java
index 9eef98c..0df587f 100644
--- a/core/java/android/widget/AutoCompleteTextView.java
+++ b/core/java/android/widget/AutoCompleteTextView.java
@@ -210,8 +210,7 @@
         if (mDropDownAlwaysVisible
                 && mPopup.isShowing()
                 && mPopup.getInputMethodMode() == PopupWindow.INPUT_METHOD_NOT_NEEDED) {
-            mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
-            showDropDown();
+            ensureImeVisible();
         }
     }
 
@@ -1086,11 +1085,21 @@
     /**
      * Issues a runnable to show the dropdown as soon as possible.
      *
-     * @hide internal used only by Search Dialog
+     * @hide internal used only by SearchDialog
      */
     public void showDropDownAfterLayout() {
         post(mShowDropDownRunnable);
     }
+    
+    /**
+     * Ensures that the drop down is not obscuring the IME.
+     * 
+     * @hide internal used only here and SearchDialog
+     */
+    public void ensureImeVisible() {
+        mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
+        showDropDown();
+    }
 
     /**
      * <p>Displays the drop down on screen.</p>