diff --git a/core/api/current.txt b/core/api/current.txt index b5493a3fa8c75..91bcbc110962d 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -12295,6 +12295,7 @@ package android.content.pm { method @Nullable public java.util.Set getCategories(); method @Nullable public CharSequence getDisabledMessage(); method public int getDisabledReason(); + method public int getExcludedFromSurfaces(); method @Nullable public android.os.PersistableBundle getExtras(); method @NonNull public String getId(); method @Nullable public android.content.Intent getIntent(); @@ -12312,8 +12313,8 @@ package android.content.pm { method public boolean isDeclaredInManifest(); method public boolean isDynamic(); method public boolean isEnabled(); + method public boolean isExcludedFromSurfaces(int); method public boolean isImmutable(); - method public boolean isIncludedIn(int); method public boolean isPinned(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; diff --git a/core/java/android/content/pm/ShortcutInfo.java b/core/java/android/content/pm/ShortcutInfo.java index 41dd5bb3f21dc..dc7cd71101b2d 100644 --- a/core/java/android/content/pm/ShortcutInfo.java +++ b/core/java/android/content/pm/ShortcutInfo.java @@ -2257,10 +2257,20 @@ public final class ShortcutInfo implements Parcelable { } /** - * Return true if the shortcut is included in specified surface. + * Return true if the shortcut is excluded from specified surface. */ - public boolean isIncludedIn(@Surface int surface) { - return (mExcludedSurfaces & surface) == 0; + public boolean isExcludedFromSurfaces(@Surface int surface) { + return (mExcludedSurfaces & surface) != 0; + } + + /** + * Returns a bitmask of all surfaces this shortcut is excluded from. + * + * @see ShortcutInfo.Builder#setExcludedFromSurfaces(int) + */ + @Surface + public int getExcludedFromSurfaces() { + return mExcludedSurfaces; } /** @@ -2522,7 +2532,7 @@ public final class ShortcutInfo implements Parcelable { if (isLongLived()) { sb.append("Liv"); } - if (!isIncludedIn(SURFACE_LAUNCHER)) { + if (isExcludedFromSurfaces(SURFACE_LAUNCHER)) { sb.append("Hid-L"); } sb.append("]"); diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java index 8921fee6c8e0a..2215acb0ee744 100644 --- a/services/core/java/com/android/server/pm/ShortcutPackage.java +++ b/services/core/java/com/android/server/pm/ShortcutPackage.java @@ -341,7 +341,7 @@ class ShortcutPackage extends ShortcutPackageItem { public void ensureAllShortcutsVisibleToLauncher(@NonNull List shortcuts) { for (ShortcutInfo shortcut : shortcuts) { - if (!shortcut.isIncludedIn(ShortcutInfo.SURFACE_LAUNCHER)) { + if (shortcut.isExcludedFromSurfaces(ShortcutInfo.SURFACE_LAUNCHER)) { throw new IllegalArgumentException("Shortcut ID=" + shortcut.getId() + " is hidden from launcher and may not be manipulated via APIs"); } @@ -402,7 +402,7 @@ class ShortcutPackage extends ShortcutPackageItem { & (ShortcutInfo.FLAG_PINNED | ShortcutInfo.FLAG_CACHED_ALL)); } - if (!newShortcut.isIncludedIn(ShortcutInfo.SURFACE_LAUNCHER)) { + if (newShortcut.isExcludedFromSurfaces(ShortcutInfo.SURFACE_LAUNCHER)) { if (isAppSearchEnabled()) { synchronized (mLock) { mTransientShortcuts.put(newShortcut.getId(), newShortcut); @@ -480,7 +480,7 @@ class ShortcutPackage extends ShortcutPackageItem { & (ShortcutInfo.FLAG_PINNED | ShortcutInfo.FLAG_CACHED_ALL)); } - if (!newShortcut.isIncludedIn(ShortcutInfo.SURFACE_LAUNCHER)) { + if (newShortcut.isExcludedFromSurfaces(ShortcutInfo.SURFACE_LAUNCHER)) { if (isAppSearchEnabled()) { synchronized (mLock) { mTransientShortcuts.put(newShortcut.getId(), newShortcut); diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index 25fe0007ec4b6..9ca4f247891d1 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -2228,7 +2228,7 @@ public class ShortcutService extends IShortcutService.Stub { Objects.requireNonNull(shortcut); Preconditions.checkArgument(shortcut.isEnabled(), "Shortcut must be enabled"); Preconditions.checkArgument( - shortcut.isIncludedIn(ShortcutInfo.SURFACE_LAUNCHER), + !shortcut.isExcludedFromSurfaces(ShortcutInfo.SURFACE_LAUNCHER), "Shortcut excluded from launcher cannot be pinned"); ret.complete(String.valueOf(requestPinItem( packageName, userId, shortcut, null, null, resultIntent)));