summaryrefslogtreecommitdiff
path: root/core/java/android/widget/AutoCompleteTextView.java
diff options
context:
space:
mode:
authorGilles Debunne <debunne@google.com>2011-09-14 15:00:51 -0700
committerGilles Debunne <debunne@google.com>2011-09-15 11:03:56 -0700
commitd513e9746f09611db6478e368207ac7b112a253d (patch)
treed4789aeb364eed68824fcb7a2cbdead4d712a520 /core/java/android/widget/AutoCompleteTextView.java
parentb5dfcb8a3d1e2a4ec39d9f27e185f3eca6910a31 (diff)
Bug 5319091: Completions delayed in AutoComplete in landscape
The filtering is an async process. We need to re-update completion when it is finished. Changed loogic to mimic the way it was done in GB. Change-Id: If49048d786b3b9529da55c7247e7ef5f3d0fc8b5
Diffstat (limited to 'core/java/android/widget/AutoCompleteTextView.java')
-rw-r--r--core/java/android/widget/AutoCompleteTextView.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/core/java/android/widget/AutoCompleteTextView.java b/core/java/android/widget/AutoCompleteTextView.java
index 27610b9fe5c2..9584c2c5792a 100644
--- a/core/java/android/widget/AutoCompleteTextView.java
+++ b/core/java/android/widget/AutoCompleteTextView.java
@@ -16,8 +16,6 @@
package android.widget;
-import com.android.internal.R;
-
import android.content.Context;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
@@ -38,6 +36,8 @@ import android.view.inputmethod.CompletionInfo;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
+import com.android.internal.R;
+
/**
* <p>An editable text view that shows completion suggestions automatically
@@ -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
@@ -938,7 +937,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();
}
@@ -1049,6 +1049,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));
@@ -1064,7 +1066,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
@@ -1075,7 +1077,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) {
@@ -1090,8 +1092,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));
}
}