From 1eab8cb6eb8bcf65c0535030ff898cc1906a2289 Mon Sep 17 00:00:00 2001 From: Song Hu Date: Sat, 4 Jun 2022 06:13:02 -0700 Subject: [PATCH] Support floating but long-lived shortcuts to be pinned in ShortcutLauncher. Floating shortcuts can surface on sharesheet to be pinned. Bug: 234842557 Test: manual test on local phone Test: atest Change-Id: I91fce93b477ae7d1fdd8867948bd28a028a7cc5f --- .../core/java/com/android/server/pm/ShortcutLauncher.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/ShortcutLauncher.java b/services/core/java/com/android/server/pm/ShortcutLauncher.java index c0c2349532978..c6a7dd7499f19 100644 --- a/services/core/java/com/android/server/pm/ShortcutLauncher.java +++ b/services/core/java/com/android/server/pm/ShortcutLauncher.java @@ -144,8 +144,8 @@ class ShortcutLauncher extends ShortcutPackageItem { final ArraySet prevSet = mPinnedShortcuts.get(pu); // Actually pin shortcuts. - // This logic here is to make sure a launcher cannot pin a shortcut that is floating - // (i.e. not dynamic nor manifest but is pinned) and pinned by another launcher. + // This logic here is to make sure a launcher cannot pin a shortcut that is not dynamic + // nor long-lived nor manifest but is pinned. // In this case, technically the shortcut doesn't exist to this launcher, so it can't // pin it. // (Maybe unnecessarily strict...) @@ -158,7 +158,7 @@ class ShortcutLauncher extends ShortcutPackageItem { if (si == null) { continue; } - if (si.isDynamic() + if (si.isDynamic() || si.isLongLived() || si.isManifestShortcut() || (prevSet != null && prevSet.contains(id)) || forPinRequest) {