Loading api/current.txt +7 −5 Original line number Diff line number Diff line Loading @@ -9499,8 +9499,6 @@ package android.content.pm { method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle); method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo); method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle); method public int getShortcutIconResId(android.content.pm.ShortcutInfo); method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle); method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle); method public boolean hasShortcutHostPermission(); method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle); Loading Loading @@ -10041,7 +10039,9 @@ package android.content.pm { public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public java.util.List<java.lang.String> getCategories(); method public android.os.PersistableBundle getExtras(); method public int getIconResourceId(); method public java.lang.String getId(); method public android.content.Intent getIntent(); method public long getLastChangedTimestamp(); Loading @@ -10065,12 +10065,14 @@ package android.content.pm { field public static final int FLAG_HAS_ICON_RES = 4; // 0x4 field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10 field public static final int FLAG_PINNED = 2; // 0x2 field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation"; } public static class ShortcutInfo.Builder { ctor public ShortcutInfo.Builder(android.content.Context); method public android.content.pm.ShortcutInfo build(); method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName); method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>); method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle); method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon); method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String); Loading @@ -10081,15 +10083,15 @@ package android.content.pm { } public class ShortcutManager { method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo); method public void deleteAllDynamicShortcuts(); method public void deleteDynamicShortcut(java.lang.String); method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts(); method public int getIconMaxDimensions(); method public int getMaxDynamicShortcutCount(); method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts(); method public long getRateLimitResetTime(); method public int getRemainingCallCount(); method public void removeAllDynamicShortcuts(); method public void removeDynamicShortcuts(java.util.List<java.lang.String>); method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>); } api/system-current.txt +7 −5 Original line number Diff line number Diff line Loading @@ -9837,8 +9837,6 @@ package android.content.pm { method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle); method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo); method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle); method public int getShortcutIconResId(android.content.pm.ShortcutInfo); method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle); method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle); method public boolean hasShortcutHostPermission(); method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle); Loading Loading @@ -10441,7 +10439,9 @@ package android.content.pm { public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public java.util.List<java.lang.String> getCategories(); method public android.os.PersistableBundle getExtras(); method public int getIconResourceId(); method public java.lang.String getId(); method public android.content.Intent getIntent(); method public long getLastChangedTimestamp(); Loading @@ -10465,12 +10465,14 @@ package android.content.pm { field public static final int FLAG_HAS_ICON_RES = 4; // 0x4 field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10 field public static final int FLAG_PINNED = 2; // 0x2 field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation"; } public static class ShortcutInfo.Builder { ctor public ShortcutInfo.Builder(android.content.Context); method public android.content.pm.ShortcutInfo build(); method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName); method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>); method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle); method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon); method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String); Loading @@ -10481,15 +10483,15 @@ package android.content.pm { } public class ShortcutManager { method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo); method public void deleteAllDynamicShortcuts(); method public void deleteDynamicShortcut(java.lang.String); method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts(); method public int getIconMaxDimensions(); method public int getMaxDynamicShortcutCount(); method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts(); method public long getRateLimitResetTime(); method public int getRemainingCallCount(); method public void removeAllDynamicShortcuts(); method public void removeDynamicShortcuts(java.util.List<java.lang.String>); method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>); } api/test-current.txt +7 −5 Original line number Diff line number Diff line Loading @@ -9509,8 +9509,6 @@ package android.content.pm { method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle); method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo); method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle); method public int getShortcutIconResId(android.content.pm.ShortcutInfo); method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle); method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle); method public boolean hasShortcutHostPermission(); method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle); Loading Loading @@ -10052,7 +10050,9 @@ package android.content.pm { public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public java.util.List<java.lang.String> getCategories(); method public android.os.PersistableBundle getExtras(); method public int getIconResourceId(); method public java.lang.String getId(); method public android.content.Intent getIntent(); method public long getLastChangedTimestamp(); Loading @@ -10076,12 +10076,14 @@ package android.content.pm { field public static final int FLAG_HAS_ICON_RES = 4; // 0x4 field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10 field public static final int FLAG_PINNED = 2; // 0x2 field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation"; } public static class ShortcutInfo.Builder { ctor public ShortcutInfo.Builder(android.content.Context); method public android.content.pm.ShortcutInfo build(); method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName); method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>); method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle); method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon); method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String); Loading @@ -10093,15 +10095,15 @@ package android.content.pm { public class ShortcutManager { ctor public ShortcutManager(android.content.Context); method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo); method public void deleteAllDynamicShortcuts(); method public void deleteDynamicShortcut(java.lang.String); method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts(); method public int getIconMaxDimensions(); method public int getMaxDynamicShortcutCount(); method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts(); method public long getRateLimitResetTime(); method public int getRemainingCallCount(); method public void removeAllDynamicShortcuts(); method public void removeDynamicShortcuts(java.util.List<java.lang.String>); method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>); } core/java/android/content/pm/IShortcutService.aidl +4 −3 Original line number Diff line number Diff line Loading @@ -28,11 +28,12 @@ interface IShortcutService { ParceledListSlice getDynamicShortcuts(String packageName, int userId); boolean addDynamicShortcut(String packageName, in ShortcutInfo shortcutInfo, int userId); boolean addDynamicShortcuts(String packageName, in ParceledListSlice shortcutInfoList, int userId); void deleteDynamicShortcut(String packageName, in String shortcutId, int userId); void removeDynamicShortcuts(String packageName, in List shortcutIds, int userId); void deleteAllDynamicShortcuts(String packageName, int userId); void removeAllDynamicShortcuts(String packageName, int userId); ParceledListSlice getPinnedShortcuts(String packageName, int userId); Loading core/java/android/content/pm/LauncherApps.java +10 −28 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.util.Log; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; Loading Loading @@ -490,43 +491,24 @@ public class LauncherApps { } /** * Return the icon resource ID, if {@code shortcut} has one * (i.e. when {@link ShortcutInfo#hasIconResource()} returns {@code true}). * * <p>Callers must be allowed to access the shortcut information, as defined in {@link * #hasShortcutHostPermission()}. * * @param shortcut The target shortcut. * @hide kept for testing. */ public int getShortcutIconResId(@NonNull ShortcutInfo shortcut) { return getShortcutIconResId(shortcut.getPackageName(), shortcut.getId(), shortcut.getUserId()); return shortcut.getIconResourceId(); } /** * Return the icon resource ID, if {@code shortcut} has one * (i.e. when {@link ShortcutInfo#hasIconResource()} returns {@code true}). * * <p>Callers must be allowed to access the shortcut information, as defined in {@link * #hasShortcutHostPermission()}. * * @param packageName The target package name. * @param shortcutId The ID of the shortcut to lad rom. * @param user The UserHandle of the profile. * @hide kept for testing. */ public int getShortcutIconResId(@NonNull String packageName, @NonNull String shortcutId, @NonNull UserHandle user) { return getShortcutIconResId(packageName, shortcutId, user.getIdentifier()); } final ShortcutQuery q = new ShortcutQuery(); q.setPackage(packageName); q.setShortcutIds(Arrays.asList(shortcutId)); q.setQueryFlags(ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_PINNED); final List<ShortcutInfo> shortcuts = getShortcuts(q, user); private int getShortcutIconResId(@NonNull String packageName, @NonNull String shortcutId, int userId) { try { return mService.getShortcutIconResId(mContext.getPackageName(), packageName, shortcutId, userId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } return shortcuts.size() > 0 ? shortcuts.get(0).getIconResourceId() : 0; } /** Loading Loading
api/current.txt +7 −5 Original line number Diff line number Diff line Loading @@ -9499,8 +9499,6 @@ package android.content.pm { method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle); method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo); method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle); method public int getShortcutIconResId(android.content.pm.ShortcutInfo); method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle); method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle); method public boolean hasShortcutHostPermission(); method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle); Loading Loading @@ -10041,7 +10039,9 @@ package android.content.pm { public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public java.util.List<java.lang.String> getCategories(); method public android.os.PersistableBundle getExtras(); method public int getIconResourceId(); method public java.lang.String getId(); method public android.content.Intent getIntent(); method public long getLastChangedTimestamp(); Loading @@ -10065,12 +10065,14 @@ package android.content.pm { field public static final int FLAG_HAS_ICON_RES = 4; // 0x4 field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10 field public static final int FLAG_PINNED = 2; // 0x2 field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation"; } public static class ShortcutInfo.Builder { ctor public ShortcutInfo.Builder(android.content.Context); method public android.content.pm.ShortcutInfo build(); method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName); method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>); method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle); method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon); method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String); Loading @@ -10081,15 +10083,15 @@ package android.content.pm { } public class ShortcutManager { method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo); method public void deleteAllDynamicShortcuts(); method public void deleteDynamicShortcut(java.lang.String); method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts(); method public int getIconMaxDimensions(); method public int getMaxDynamicShortcutCount(); method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts(); method public long getRateLimitResetTime(); method public int getRemainingCallCount(); method public void removeAllDynamicShortcuts(); method public void removeDynamicShortcuts(java.util.List<java.lang.String>); method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>); }
api/system-current.txt +7 −5 Original line number Diff line number Diff line Loading @@ -9837,8 +9837,6 @@ package android.content.pm { method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle); method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo); method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle); method public int getShortcutIconResId(android.content.pm.ShortcutInfo); method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle); method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle); method public boolean hasShortcutHostPermission(); method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle); Loading Loading @@ -10441,7 +10439,9 @@ package android.content.pm { public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public java.util.List<java.lang.String> getCategories(); method public android.os.PersistableBundle getExtras(); method public int getIconResourceId(); method public java.lang.String getId(); method public android.content.Intent getIntent(); method public long getLastChangedTimestamp(); Loading @@ -10465,12 +10465,14 @@ package android.content.pm { field public static final int FLAG_HAS_ICON_RES = 4; // 0x4 field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10 field public static final int FLAG_PINNED = 2; // 0x2 field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation"; } public static class ShortcutInfo.Builder { ctor public ShortcutInfo.Builder(android.content.Context); method public android.content.pm.ShortcutInfo build(); method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName); method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>); method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle); method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon); method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String); Loading @@ -10481,15 +10483,15 @@ package android.content.pm { } public class ShortcutManager { method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo); method public void deleteAllDynamicShortcuts(); method public void deleteDynamicShortcut(java.lang.String); method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts(); method public int getIconMaxDimensions(); method public int getMaxDynamicShortcutCount(); method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts(); method public long getRateLimitResetTime(); method public int getRemainingCallCount(); method public void removeAllDynamicShortcuts(); method public void removeDynamicShortcuts(java.util.List<java.lang.String>); method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>); }
api/test-current.txt +7 −5 Original line number Diff line number Diff line Loading @@ -9509,8 +9509,6 @@ package android.content.pm { method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle); method public android.os.ParcelFileDescriptor getShortcutIconFd(android.content.pm.ShortcutInfo); method public android.os.ParcelFileDescriptor getShortcutIconFd(java.lang.String, java.lang.String, android.os.UserHandle); method public int getShortcutIconResId(android.content.pm.ShortcutInfo); method public int getShortcutIconResId(java.lang.String, java.lang.String, android.os.UserHandle); method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle); method public boolean hasShortcutHostPermission(); method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle); Loading Loading @@ -10052,7 +10050,9 @@ package android.content.pm { public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public java.util.List<java.lang.String> getCategories(); method public android.os.PersistableBundle getExtras(); method public int getIconResourceId(); method public java.lang.String getId(); method public android.content.Intent getIntent(); method public long getLastChangedTimestamp(); Loading @@ -10076,12 +10076,14 @@ package android.content.pm { field public static final int FLAG_HAS_ICON_RES = 4; // 0x4 field public static final int FLAG_KEY_FIELDS_ONLY = 16; // 0x10 field public static final int FLAG_PINNED = 2; // 0x2 field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation"; } public static class ShortcutInfo.Builder { ctor public ShortcutInfo.Builder(android.content.Context); method public android.content.pm.ShortcutInfo build(); method public android.content.pm.ShortcutInfo.Builder setActivityComponent(android.content.ComponentName); method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.List<java.lang.String>); method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle); method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon); method public android.content.pm.ShortcutInfo.Builder setId(java.lang.String); Loading @@ -10093,15 +10095,15 @@ package android.content.pm { public class ShortcutManager { ctor public ShortcutManager(android.content.Context); method public boolean addDynamicShortcut(android.content.pm.ShortcutInfo); method public void deleteAllDynamicShortcuts(); method public void deleteDynamicShortcut(java.lang.String); method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts(); method public int getIconMaxDimensions(); method public int getMaxDynamicShortcutCount(); method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts(); method public long getRateLimitResetTime(); method public int getRemainingCallCount(); method public void removeAllDynamicShortcuts(); method public void removeDynamicShortcuts(java.util.List<java.lang.String>); method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>); method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>); }
core/java/android/content/pm/IShortcutService.aidl +4 −3 Original line number Diff line number Diff line Loading @@ -28,11 +28,12 @@ interface IShortcutService { ParceledListSlice getDynamicShortcuts(String packageName, int userId); boolean addDynamicShortcut(String packageName, in ShortcutInfo shortcutInfo, int userId); boolean addDynamicShortcuts(String packageName, in ParceledListSlice shortcutInfoList, int userId); void deleteDynamicShortcut(String packageName, in String shortcutId, int userId); void removeDynamicShortcuts(String packageName, in List shortcutIds, int userId); void deleteAllDynamicShortcuts(String packageName, int userId); void removeAllDynamicShortcuts(String packageName, int userId); ParceledListSlice getPinnedShortcuts(String packageName, int userId); Loading
core/java/android/content/pm/LauncherApps.java +10 −28 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.util.Log; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; Loading Loading @@ -490,43 +491,24 @@ public class LauncherApps { } /** * Return the icon resource ID, if {@code shortcut} has one * (i.e. when {@link ShortcutInfo#hasIconResource()} returns {@code true}). * * <p>Callers must be allowed to access the shortcut information, as defined in {@link * #hasShortcutHostPermission()}. * * @param shortcut The target shortcut. * @hide kept for testing. */ public int getShortcutIconResId(@NonNull ShortcutInfo shortcut) { return getShortcutIconResId(shortcut.getPackageName(), shortcut.getId(), shortcut.getUserId()); return shortcut.getIconResourceId(); } /** * Return the icon resource ID, if {@code shortcut} has one * (i.e. when {@link ShortcutInfo#hasIconResource()} returns {@code true}). * * <p>Callers must be allowed to access the shortcut information, as defined in {@link * #hasShortcutHostPermission()}. * * @param packageName The target package name. * @param shortcutId The ID of the shortcut to lad rom. * @param user The UserHandle of the profile. * @hide kept for testing. */ public int getShortcutIconResId(@NonNull String packageName, @NonNull String shortcutId, @NonNull UserHandle user) { return getShortcutIconResId(packageName, shortcutId, user.getIdentifier()); } final ShortcutQuery q = new ShortcutQuery(); q.setPackage(packageName); q.setShortcutIds(Arrays.asList(shortcutId)); q.setQueryFlags(ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_PINNED); final List<ShortcutInfo> shortcuts = getShortcuts(q, user); private int getShortcutIconResId(@NonNull String packageName, @NonNull String shortcutId, int userId) { try { return mService.getShortcutIconResId(mContext.getPackageName(), packageName, shortcutId, userId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } return shortcuts.size() > 0 ? shortcuts.get(0).getIconResourceId() : 0; } /** Loading