diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java index a4a58b5f3a..16264dae31 100644 --- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java +++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java @@ -81,7 +81,7 @@ public class AlphabeticalAppsList implement private final List mFastScrollerSections = new ArrayList<>(); // The of ordered component names as a result of a search query - private ArrayList mSearchResults; + private final ArrayList mSearchResults = new ArrayList<>(); private BaseAllAppsAdapter mAdapter; private AppInfoComparator mAppNameComparator; private final int mNumAppsPerRow; @@ -171,30 +171,33 @@ public class AlphabeticalAppsList implement * Returns whether there are is a filter set. */ public boolean hasFilter() { - return (mSearchResults != null); + return !mSearchResults.isEmpty(); } /** * Returns whether there are no filtered results. */ public boolean hasNoFilteredResults() { - return (mSearchResults != null) && mAccessibilityResultsCount == 0; + return hasFilter() && mAccessibilityResultsCount == 0; } /** * Sets results list for search */ public boolean setSearchResults(ArrayList results) { - if (!Objects.equals(results, mSearchResults)) { - mSearchResults = results; - updateAdapterItems(); - return true; + if (Objects.equals(results, mSearchResults)) { + return false; } - return false; + mSearchResults.clear(); + if (results != null) { + mSearchResults.addAll(results); + } + updateAdapterItems(); + return true; } public boolean appendSearchResults(ArrayList results) { - if (mSearchResults != null && results != null && results.size() > 0) { + if (hasFilter() && results != null && results.size() > 0) { updateSearchAdapterItems(results, mSearchResults.size()); refreshRecyclerView(); return true; @@ -259,7 +262,7 @@ public class AlphabeticalAppsList implement } // Recompose the set of adapter items from the current set of apps - if (mSearchResults == null) { + if (mSearchResults.isEmpty()) { updateAdapterItems(); } } diff --git a/src/com/android/launcher3/allapps/SearchUiManager.java b/src/com/android/launcher3/allapps/SearchUiManager.java index f9055ee09a..6299657a55 100644 --- a/src/com/android/launcher3/allapps/SearchUiManager.java +++ b/src/com/android/launcher3/allapps/SearchUiManager.java @@ -65,4 +65,7 @@ public interface SearchUiManager { * sets highlight result's title */ default void setFocusedResultTitle(@Nullable CharSequence title) { } + + /** Refresh the currently displayed list of results. */ + default void refreshResults() {} }