Adding suggested app as part of app discovery.
It will replace the least prioritized predicted app
with the suggested app from app discovery.
Dogfood only!
Change-Id: I7713759c70ab6eaacfec2c45d3f78335c40dac79
diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
index f291a80..7963719 100644
--- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
+++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
@@ -183,7 +183,10 @@
private final List<ComponentKey> mPredictedAppComponents = new ArrayList<>();
// The set of predicted apps resolved from the component names and the current set of apps
private final List<AppInfo> mPredictedApps = new ArrayList<>();
+ // The set of apps returned from a discovery service while searching
private final List<AppDiscoveryAppInfo> mDiscoveredApps = new ArrayList<>();
+ // The suggested app returned by a discovery service
+ private AppDiscoveryAppInfo mSuggestedApp;
// The of ordered component names as a result of a search query
private ArrayList<ComponentKey> mSearchResults;
@@ -288,6 +291,9 @@
@NonNull AppDiscoveryUpdateState state) {
mAppDiscoveryUpdateState = state;
switch (state) {
+ case SUGGESTED:
+ mSuggestedApp = app != null ? new AppDiscoveryAppInfo(app) : null;
+ break;
case START:
mDiscoveredApps.clear();
break;
@@ -435,6 +441,7 @@
// Process the predicted app components
mPredictedApps.clear();
if (mPredictedAppComponents != null && !mPredictedAppComponents.isEmpty() && !hasFilter()) {
+ int suggestedAppsCount = mSuggestedApp != null ? 1 : 0;
for (ComponentKey ck : mPredictedAppComponents) {
AppInfo info = mComponentToAppMap.get(ck);
if (info != null) {
@@ -445,11 +452,16 @@
}
}
// Stop at the number of predicted apps
- if (mPredictedApps.size() == mNumPredictedAppsPerRow) {
+ if (mPredictedApps.size() + suggestedAppsCount == mNumPredictedAppsPerRow) {
break;
}
}
+ if (mSuggestedApp != null) {
+ // adding suggested app as the last predicted app
+ mPredictedApps.add(mSuggestedApp);
+ }
+
if (!mPredictedApps.isEmpty()) {
// Add a section for the predictions
lastFastScrollerSectionInfo = new FastScrollSectionInfo("");
diff --git a/src/com/android/launcher3/discovery/AppDiscoveryUpdateState.java b/src/com/android/launcher3/discovery/AppDiscoveryUpdateState.java
index 0700a10..6c68044 100644
--- a/src/com/android/launcher3/discovery/AppDiscoveryUpdateState.java
+++ b/src/com/android/launcher3/discovery/AppDiscoveryUpdateState.java
@@ -17,5 +17,5 @@
package com.android.launcher3.discovery;
public enum AppDiscoveryUpdateState {
- START, UPDATE, END
+ START, UPDATE, END, SUGGESTED
}