Merge change 8759 into donut

* changes:
  Cancel search on BACK if IME is obscured.
This commit is contained in:
Android (Google) Code Review
2009-07-28 10:45:35 -07:00
2 changed files with 15 additions and 3 deletions

View File

@@ -1709,6 +1709,12 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
if (mSearchDialog.backToPreviousComponent()) {
return true;
}
// If the drop-down obscures the keyboard, the user wouldn't see anything
// happening when pressing back, so we dismiss the entire dialog instead.
if (isInputMethodNotNeeded()) {
mSearchDialog.cancel();
return true;
}
return false; // will dismiss soft keyboard if necessary
}
return false;

View File

@@ -209,8 +209,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
private void onClickImpl() {
// If the dropdown is showing, bring it back in front of the soft
// keyboard when the user touches the text field.
if (mPopup.isShowing() &&
mPopup.getInputMethodMode() == PopupWindow.INPUT_METHOD_NOT_NEEDED) {
if (mPopup.isShowing() && isInputMethodNotNeeded()) {
ensureImeVisible();
}
}
@@ -1102,6 +1101,13 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
showDropDown();
}
/**
* @hide internal used only here and SearchDialog
*/
public boolean isInputMethodNotNeeded() {
return mPopup.getInputMethodMode() == PopupWindow.INPUT_METHOD_NOT_NEEDED;
}
/**
* <p>Displays the drop down on screen.</p>
*/
@@ -1111,7 +1117,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
int widthSpec = 0;
int heightSpec = 0;
boolean noInputMethod = mPopup.getInputMethodMode() == PopupWindow.INPUT_METHOD_NOT_NEEDED;
boolean noInputMethod = isInputMethodNotNeeded();
if (mPopup.isShowing()) {
if (mDropDownWidth == ViewGroup.LayoutParams.FILL_PARENT) {