summaryrefslogtreecommitdiff
path: root/services/people
diff options
context:
space:
mode:
authorSong Hu <songhu@google.com>2020-06-10 14:07:04 -0700
committerSong Hu <songhu@google.com>2020-06-10 15:42:56 -0700
commita4157a3b3bd13b9dd8f9d633aa0d4d26a10735da (patch)
treeb4decb8fc986955a809e9034b65e0bfc803ea63f /services/people
parentb6039994d25d62bdff068efcc1c542be324b027e (diff)
Factor native ranks provided by apps into shortcut targets ranking.
This would help rank shortcuts targets properly when there is no enough sharing history on them. Bug: 158022238 Test: atest com.android.server.people.prediction.ShareTargetPredictorTest Change-Id: If802dcfea5c9c8442349c2c67fa71bb4b431cca9
Diffstat (limited to 'services/people')
-rw-r--r--services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java b/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java
index 2e60f2afcdea..236ac8407faa 100644
--- a/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java
+++ b/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java
@@ -16,6 +16,8 @@
package com.android.server.people.prediction;
+import static java.util.Collections.reverseOrder;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
@@ -39,6 +41,7 @@ import com.android.server.people.data.PackageData;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.function.Consumer;
@@ -85,7 +88,9 @@ class ShareTargetPredictor extends AppTargetPredictor {
List<ShareTarget> shareTargets = getDirectShareTargets();
SharesheetModelScorer.computeScore(shareTargets, getShareEventType(mIntentFilter),
System.currentTimeMillis());
- Collections.sort(shareTargets, (t1, t2) -> -Float.compare(t1.getScore(), t2.getScore()));
+ Collections.sort(shareTargets,
+ Comparator.comparing(ShareTarget::getScore, reverseOrder())
+ .thenComparing(t -> t.getAppTarget().getRank()));
List<AppTarget> res = new ArrayList<>();
for (int i = 0; i < Math.min(getPredictionContext().getPredictedTargetCount(),
shareTargets.size()); i++) {
@@ -135,6 +140,7 @@ class ShareTargetPredictor extends AppTargetPredictor {
new AppTargetId(shortcutInfo.getId()),
shortcutInfo)
.setClassName(shareShortcut.getTargetComponent().getClassName())
+ .setRank(shortcutInfo.getRank())
.build();
String packageName = shortcutInfo.getPackage();
int userId = shortcutInfo.getUserId();