diff options
author | Song Hu <songhu@google.com> | 2020-06-10 14:07:04 -0700 |
---|---|---|
committer | Song Hu <songhu@google.com> | 2020-06-10 15:42:56 -0700 |
commit | a4157a3b3bd13b9dd8f9d633aa0d4d26a10735da (patch) | |
tree | b4decb8fc986955a809e9034b65e0bfc803ea63f /services/people | |
parent | b6039994d25d62bdff068efcc1c542be324b027e (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.java | 8 |
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(); |