From fe3f81eb61f161b098c5329ee2bad61b4464b55c Mon Sep 17 00:00:00 2001 From: Song Hu Date: Thu, 31 Mar 2022 06:56:44 -0700 Subject: [PATCH] In getMatchingShareTargets, add callerLauncher to fetch sharesheet marked pin info. Bug: 210453009 Test: test on the local phone Change-Id: I8872cdd2917580ff86dcf7a2d7a40a445fbd70b3 (cherry picked from commit 520e7d40ab9d3edbcb6102a886fe354100938a48) Merged-In: I8872cdd2917580ff86dcf7a2d7a40a445fbd70b3 --- .../core/java/com/android/server/pm/ShortcutPackage.java | 6 +++++- .../src/com/android/server/pm/BaseShortcutManagerTest.java | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java index b3723fb61f5a3..f57eaaef25a46 100644 --- a/services/core/java/com/android/server/pm/ShortcutPackage.java +++ b/services/core/java/com/android/server/pm/ShortcutPackage.java @@ -894,8 +894,12 @@ class ShortcutPackage extends ShortcutPackageItem { // Get the list of all dynamic shortcuts in this package. final ArrayList shortcuts = new ArrayList<>(); + // Pass callingLauncher to ensure pinned flag marked by system ui, e.g. ShareSheet, are + // included in the result findAll(shortcuts, ShortcutInfo::isNonManifestVisible, - ShortcutInfo.CLONE_REMOVE_FOR_APP_PREDICTION); + ShortcutInfo.CLONE_REMOVE_FOR_APP_PREDICTION, + mShortcutUser.mService.mContext.getPackageName(), + 0, /*getPinnedByAnyLauncher=*/ false); final List result = new ArrayList<>(); for (int i = 0; i < shortcuts.size(); i++) { diff --git a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java index e4ee4d0647243..fdf9354747a08 100644 --- a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java @@ -266,6 +266,11 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { public void sendIntentSender(IntentSender intent) { // Placeholder for spying. } + + @Override + public String getPackageName() { + return SYSTEM_PACKAGE_NAME; + } } /** ShortcutService with injection override methods. */ @@ -704,6 +709,7 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { protected UriPermissionOwner mUriPermissionOwner; + protected static final String SYSTEM_PACKAGE_NAME = "android"; protected static final String CALLING_PACKAGE_1 = "com.android.test.1"; protected static final int CALLING_UID_1 = 10001;