From b6039994d25d62bdff068efcc1c542be324b027e Mon Sep 17 00:00:00 2001 From: Song Hu Date: Mon, 1 Jun 2020 11:35:28 -0700 Subject: [PATCH] Fix app stack issue: send the selected target info into AppPredictionService and UsageStatsManager, when user share from app stack on sharesheet. Fix: 157917956 Test: atest CtsSharesheetTestCases:android.sharesheet.cts.CtsSharesheetDeviceTest Change-Id: I268af5d996dcca275014fba1cace2c54930b9b0c --- core/java/com/android/internal/app/ChooserActivity.java | 3 +++ .../internal/app/chooser/MultiDisplayResolveInfo.java | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index 5533e1eda52d3..80327370ff467 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -2182,6 +2182,9 @@ public class ChooserActivity extends ResolverActivity implements } void updateModelAndChooserCounts(TargetInfo info) { + if (info != null && info instanceof MultiDisplayResolveInfo) { + info = ((MultiDisplayResolveInfo) info).getSelectedTarget(); + } if (info != null) { sendClickToAppPredictor(info); final ResolveInfo ri = info.getResolveInfo(); diff --git a/core/java/com/android/internal/app/chooser/MultiDisplayResolveInfo.java b/core/java/com/android/internal/app/chooser/MultiDisplayResolveInfo.java index e582583521061..cf921d734d48b 100644 --- a/core/java/com/android/internal/app/chooser/MultiDisplayResolveInfo.java +++ b/core/java/com/android/internal/app/chooser/MultiDisplayResolveInfo.java @@ -69,6 +69,13 @@ public class MultiDisplayResolveInfo extends DisplayResolveInfo { mSelected = selected; } + /** + * Return selected target. + */ + public DisplayResolveInfo getSelectedTarget() { + return hasSelected() ? mTargetInfos.get(mSelected) : null; + } + /** * Whether or not the user has selected a specific target for this MultiInfo. */