Merge "Bug 5319091: Completions delayed in AutoComplete in landscape"

This commit is contained in:
Gilles Debunne
2011-09-15 14:51:35 -07:00
committed by Android (Google) Code Review

View File

@@ -744,7 +744,6 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
if (mFilter != null) {
mPopupCanBeUpdated = true;
performFiltering(getText(), mLastKeyCode);
buildImeCompletions();
}
} else {
// drop down is automatically dismissed when enough characters
@@ -934,7 +933,8 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
*/
final boolean dropDownAlwaysVisible = mPopup.isDropDownAlwaysVisible();
if ((count > 0 || dropDownAlwaysVisible) && enoughToFilter()) {
final boolean enoughToFilter = enoughToFilter();
if ((count > 0 || dropDownAlwaysVisible) && enoughToFilter) {
if (hasFocus() && hasWindowFocus() && mPopupCanBeUpdated) {
showDropDown();
}
@@ -1045,6 +1045,8 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
* <p>Displays the drop down on screen.</p>
*/
public void showDropDown() {
buildImeCompletions();
if (mPopup.getAnchorView() == null) {
if (mDropDownAnchorId != View.NO_ID) {
mPopup.setAnchorView(getRootView().findViewById(mDropDownAnchorId));
@@ -1060,7 +1062,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
mPopup.show();
mPopup.getListView().setOverScrollMode(View.OVER_SCROLL_ALWAYS);
}
/**
* Forces outside touches to be ignored. Normally if {@link #isDropDownAlwaysVisible()} is
* false, we allow outside touch to dismiss the dropdown. If this is set to true, then we
@@ -1071,7 +1073,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
public void setForceIgnoreOutsideTouch(boolean forceIgnoreOutsideTouch) {
mPopup.setForceIgnoreOutsideTouch(forceIgnoreOutsideTouch);
}
private void buildImeCompletions() {
final ListAdapter adapter = mAdapter;
if (adapter != null) {
@@ -1086,8 +1088,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
realCount++;
Object item = adapter.getItem(i);
long id = adapter.getItemId(i);
completions[i] = new CompletionInfo(id, i,
convertSelectionToString(item));
completions[i] = new CompletionInfo(id, i, convertSelectionToString(item));
}
}