diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java index b9b609b5cad41..6b23da93bb862 100644 --- a/core/java/android/content/pm/LauncherApps.java +++ b/core/java/android/content/pm/LauncherApps.java @@ -492,7 +492,7 @@ public class LauncherApps { * If the calling launcher application contains pinned shortcuts, they will still work, * even though the caller no longer has the shortcut host permission. * - *

Returns {@code false} when the user is locked. + * @throws IllegalStateException when the user is locked. * * @see ShortcutManager */ @@ -510,13 +510,12 @@ public class LauncherApps { *

Callers must be allowed to access the shortcut information, as defined in {@link * #hasShortcutHostPermission()}. * - *

Returns am empty list when the user is locked, or when the {@code user} user - * is locked or not running. - * * @param query result includes shortcuts matching this query. * @param user The UserHandle of the profile. * * @return the IDs of {@link ShortcutInfo}s that match the query. + * @throws IllegalStateException when the user is locked, or when the {@code user} user + * is locked or not running. * * @see ShortcutManager */ @@ -556,12 +555,11 @@ public class LauncherApps { *

The calling launcher application must be allowed to access the shortcut information, * as defined in {@link #hasShortcutHostPermission()}. * - *

Call will be ignored when the user is locked, or when the {@code user} user - * is locked or not running. - * * @param packageName The target package name. * @param shortcutIds The IDs of the shortcut to be pinned. * @param user The UserHandle of the profile. + * @throws IllegalStateException when the user is locked, or when the {@code user} user + * is locked or not running. * * @see ShortcutManager */ @@ -630,13 +628,12 @@ public class LauncherApps { *

The calling launcher application must be allowed to access the shortcut information, * as defined in {@link #hasShortcutHostPermission()}. * - *

Returns {@code null} when the user is locked, or when the user owning the shortcut - * is locked or not running. - * * @param density The preferred density of the icon, zero for default density. Use * density DPI values from {@link DisplayMetrics}. * * @return The drawable associated with the shortcut. + * @throws IllegalStateException when the user is locked, or when the {@code user} user + * is locked or not running. * * @see ShortcutManager * @see #getShortcutBadgedIconDrawable(ShortcutInfo, int) @@ -681,11 +678,10 @@ public class LauncherApps { *

The calling launcher application must be allowed to access the shortcut information, * as defined in {@link #hasShortcutHostPermission()}. * - *

Returns {@code 0} when the user is locked, or when the user owning the shortcut - * is locked or not running. - * * @param density Optional density for the icon, or 0 to use the default density. Use * @return A badged icon for the shortcut. + * @throws IllegalStateException when the user is locked, or when the {@code user} user + * is locked or not running. * * @see ShortcutManager * @see #getShortcutIconDrawable(ShortcutInfo, int) @@ -704,15 +700,13 @@ public class LauncherApps { *

The calling launcher application must be allowed to access the shortcut information, * as defined in {@link #hasShortcutHostPermission()}. * - *

Throws {@link android.content.ActivityNotFoundException} - * when the user is locked, or when the {@code user} user - * is locked or not running. - * * @param packageName The target shortcut package name. * @param shortcutId The target shortcut ID. * @param sourceBounds The Rect containing the source bounds of the clicked icon. * @param startActivityOptions Options to pass to startActivity. * @param user The UserHandle of the profile. + * @throws IllegalStateException when the user is locked, or when the {@code user} user + * is locked or not running. * * @throws android.content.ActivityNotFoundException failed to start shortcut. (e.g. * the shortcut no longer exists, is disabled, the intent receiver activity doesn't exist, etc) @@ -730,13 +724,11 @@ public class LauncherApps { *

The calling launcher application must be allowed to access the shortcut information, * as defined in {@link #hasShortcutHostPermission()}. * - *

Throws {@link android.content.ActivityNotFoundException} - * when the user is locked, or when the user owning the shortcut - * is locked or not running. - * * @param shortcut The target shortcut. * @param sourceBounds The Rect containing the source bounds of the clicked icon. * @param startActivityOptions Options to pass to startActivity. + * @throws IllegalStateException when the user is locked, or when the {@code user} user + * is locked or not running. * * @throws android.content.ActivityNotFoundException failed to start shortcut. (e.g. * the shortcut no longer exists, is disabled, the intent receiver activity doesn't exist, etc) diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index d875f1e97cac4..02ad7c650e110 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -2170,9 +2170,9 @@ public class ShortcutService extends IShortcutService.Stub { @Nullable ComponentName componentName, int queryFlags, int userId) { final ArrayList ret = new ArrayList<>(); - if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) { - return ret; - } + + throwIfUserLocked(userId); + throwIfUserLocked(launcherUserId); final boolean cloneKeyFieldOnly = ((queryFlags & ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY) != 0); @@ -2251,9 +2251,8 @@ public class ShortcutService extends IShortcutService.Stub { Preconditions.checkStringNotEmpty(packageName, "packageName"); Preconditions.checkStringNotEmpty(shortcutId, "shortcutId"); - if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) { - return false; - } + throwIfUserLocked(userId); + throwIfUserLocked(launcherUserId); synchronized (mLock) { getLauncherShortcutsLocked(callingPackage, userId, launcherUserId) @@ -2271,9 +2270,8 @@ public class ShortcutService extends IShortcutService.Stub { Preconditions.checkStringNotEmpty(packageName, "packageName"); Preconditions.checkStringNotEmpty(shortcutId, "shortcutId"); - if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) { - return null; - } + throwIfUserLocked(userId); + throwIfUserLocked(launcherUserId); final ShortcutPackage p = getUserShortcutsLocked(userId) .getPackageShortcutsIfExists(packageName); @@ -2296,9 +2294,8 @@ public class ShortcutService extends IShortcutService.Stub { Preconditions.checkStringNotEmpty(packageName, "packageName"); Preconditions.checkNotNull(shortcutIds, "shortcutIds"); - if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) { - return; - } + throwIfUserLocked(userId); + throwIfUserLocked(launcherUserId); synchronized (mLock) { final ShortcutLauncher launcher = @@ -2320,9 +2317,8 @@ public class ShortcutService extends IShortcutService.Stub { Preconditions.checkStringNotEmpty(packageName, "packageName can't be empty"); Preconditions.checkStringNotEmpty(shortcutId, "shortcutId can't be empty"); - if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) { - return null; - } + throwIfUserLocked(userId); + throwIfUserLocked(launcherUserId); synchronized (mLock) { getLauncherShortcutsLocked(callingPackage, userId, launcherUserId) @@ -2354,9 +2350,8 @@ public class ShortcutService extends IShortcutService.Stub { Preconditions.checkNotNull(packageName, "packageName"); Preconditions.checkNotNull(shortcutId, "shortcutId"); - if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) { - return 0; - } + throwIfUserLocked(userId); + throwIfUserLocked(launcherUserId); synchronized (mLock) { getLauncherShortcutsLocked(callingPackage, userId, launcherUserId) @@ -2382,9 +2377,8 @@ public class ShortcutService extends IShortcutService.Stub { Preconditions.checkNotNull(packageName, "packageName"); Preconditions.checkNotNull(shortcutId, "shortcutId"); - if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) { - return null; - } + throwIfUserLocked(userId); + throwIfUserLocked(launcherUserId); synchronized (mLock) { getLauncherShortcutsLocked(callingPackage, userId, launcherUserId) @@ -2418,9 +2412,7 @@ public class ShortcutService extends IShortcutService.Stub { @Override public boolean hasShortcutHostPermission(int launcherUserId, @NonNull String callingPackage) { - if (!isUserUnlocked(launcherUserId)) { - return false; - } + throwIfUserLocked(launcherUserId); return ShortcutService.this.hasShortcutHostPermission(callingPackage, launcherUserId); } }