Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d513e974 authored by Gilles Debunne's avatar Gilles Debunne
Browse files

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
parent b5dfcb8a
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -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));
@@ -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));
                    }
                }