From c0372a42a256421199e5d41592b69a6f4c2e9ef1 Mon Sep 17 00:00:00 2001 From: Mario Bertschler Date: Tue, 2 May 2017 14:22:48 -0700 Subject: [PATCH] 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 --- .../launcher3/allapps/AlphabeticalAppsList.java | 14 +++++++++++++- .../discovery/AppDiscoveryUpdateState.java | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java index f291a80eee..79637197a1 100644 --- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java +++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java @@ -183,7 +183,10 @@ public class AlphabeticalAppsList { private final List mPredictedAppComponents = new ArrayList<>(); // The set of predicted apps resolved from the component names and the current set of apps private final List mPredictedApps = new ArrayList<>(); + // The set of apps returned from a discovery service while searching private final List 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 mSearchResults; @@ -288,6 +291,9 @@ public class AlphabeticalAppsList { @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 @@ public class AlphabeticalAppsList { // 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 @@ public class AlphabeticalAppsList { } } // 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 0700a1023f..6c68044978 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 }