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.

We accomplish this by factoring out the code to 'ensureImeVisible'
into a separate method and calling that from SearchDialog.

Fixes http://b/1976338
This commit is contained in:
Mike LeBeau
2009-07-16 18:18:37 -07:00
parent 3735df20ae
commit ffe3ecf2b1
2 changed files with 14 additions and 3 deletions

View File

@@ -1042,6 +1042,8 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
mSearchAutoComplete.setSelection(selPoint);
mSearchAutoComplete.setListSelection(0);
mSearchAutoComplete.clearListSelection();
mSearchAutoComplete.ensureImeVisible();
return true;
}

View File

@@ -210,8 +210,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
if (mDropDownAlwaysVisible
&& mPopup.isShowing()
&& mPopup.getInputMethodMode() == PopupWindow.INPUT_METHOD_NOT_NEEDED) {
mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
showDropDown();
ensureImeVisible();
}
}
@@ -1086,11 +1085,21 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
/**
* 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>