summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Matt Pietal <mpietal@google.com> 2019-07-02 16:21:07 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-07-02 16:21:07 +0000
commitac1c8ddcc3cc7256217c9ec7ccd6e86c9ce7f79d (patch)
tree6d9d697e27c5194421bb7e15596834e1e1bcc2c0
parent380626cf5482e0c27ffa5ad23a2a6aad483afe9a (diff)
parentbdbeea28d256600095dc158be71baa545e8edb95 (diff)
Merge "Sharesheet - Fix regression in direct share sorting" into qt-dev
-rw-r--r--core/java/com/android/internal/app/ChooserActivity.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index f9d27bb46592..00206fc38d1d 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -1534,7 +1534,11 @@ public class ChooserActivity extends ResolverActivity {
if (driList.get(i).getResolvedComponentName().equals(
resultList.get(j).getTargetComponent())) {
ShortcutManager.ShareShortcutInfo shareShortcutInfo = resultList.get(j);
- ChooserTarget chooserTarget = convertToChooserTarget(shareShortcutInfo);
+ // Incoming results are ordered but without a score. Create a score
+ // based on the index in order to be sorted appropriately when joined
+ // with legacy direct share api results.
+ float score = Math.max(1.0f - (0.05f * j), 0.0f);
+ ChooserTarget chooserTarget = convertToChooserTarget(shareShortcutInfo, score);
chooserTargets.add(chooserTarget);
if (mDirectShareAppTargetCache != null && appTargets != null) {
mDirectShareAppTargetCache.put(chooserTarget, appTargets.get(j));
@@ -1580,7 +1584,8 @@ public class ChooserActivity extends ResolverActivity {
return false;
}
- private ChooserTarget convertToChooserTarget(ShortcutManager.ShareShortcutInfo shareShortcut) {
+ private ChooserTarget convertToChooserTarget(ShortcutManager.ShareShortcutInfo shareShortcut,
+ float score) {
ShortcutInfo shortcutInfo = shareShortcut.getShortcutInfo();
Bundle extras = new Bundle();
extras.putString(Intent.EXTRA_SHORTCUT_ID, shortcutInfo.getId());
@@ -1591,7 +1596,7 @@ public class ChooserActivity extends ResolverActivity {
null,
// The ranking score for this target (0.0-1.0); the system will omit items with low
// scores when there are too many Direct Share items.
- 1.0f,
+ score,
// The name of the component to be launched if this target is chosen.
shareShortcut.getTargetComponent().clone(),
// The extra values here will be merged into the Intent when this target is chosen.