diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 8b1f95087f..428f784013 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -210,6 +210,7 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc */ public void addApps(List apps) { mApps.addApps(apps); + mSearchBarController.refreshSearchResult(); } /** @@ -217,6 +218,7 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc */ public void updateApps(List apps) { mApps.updateApps(apps); + mSearchBarController.refreshSearchResult(); } /** @@ -224,6 +226,7 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc */ public void removeApps(List apps) { mApps.removeApps(apps); + mSearchBarController.refreshSearchResult(); } public void setSearchBarVisible(boolean visible) { diff --git a/src/com/android/launcher3/allapps/AllAppsSearchBarController.java b/src/com/android/launcher3/allapps/AllAppsSearchBarController.java index ac35932384..e75210b930 100644 --- a/src/com/android/launcher3/allapps/AllAppsSearchBarController.java +++ b/src/com/android/launcher3/allapps/AllAppsSearchBarController.java @@ -45,6 +45,7 @@ public abstract class AllAppsSearchBarController protected AlphabeticalAppsList mApps; protected Callbacks mCb; protected ExtendedEditText mInput; + private String mQuery; protected DefaultAppSearchAlgorithm mSearchAlgorithm; protected InputMethodManager mInputMethodManager; @@ -90,16 +91,25 @@ public abstract class AllAppsSearchBarController @Override public void afterTextChanged(final Editable s) { - String query = s.toString(); - if (query.isEmpty()) { + mQuery = s.toString(); + if (mQuery.isEmpty()) { mSearchAlgorithm.cancel(true); mCb.clearSearchResult(); } else { mSearchAlgorithm.cancel(false); - mSearchAlgorithm.doSearch(query, mCb); + mSearchAlgorithm.doSearch(mQuery, mCb); } } + protected void refreshSearchResult() { + if (mQuery == null) { + return; + } + // If play store continues auto updating an app, we want to show partial result. + mSearchAlgorithm.cancel(false); + mSearchAlgorithm.doSearch(mQuery, mCb); + } + @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { // Skip if it's not the right action @@ -130,6 +140,7 @@ public abstract class AllAppsSearchBarController * Resets the search bar state. */ public void reset() { + mQuery = null; unfocusSearchField(); mCb.clearSearchResult(); mInput.setText("");