Loading api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -10913,6 +10913,7 @@ package android.content.pm { method public java.util.List<android.content.pm.LauncherActivityInfo> getShortcutConfigActivityList(java.lang.String, android.os.UserHandle); method public android.graphics.drawable.Drawable getShortcutIconDrawable(android.content.pm.ShortcutInfo, int); method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle); method public android.os.Bundle getSuspendedPackageLauncherExtras(java.lang.String, android.os.UserHandle); method public boolean hasShortcutHostPermission(); method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle); method public boolean isPackageEnabled(java.lang.String, android.os.UserHandle); Loading @@ -10937,6 +10938,7 @@ package android.content.pm { method public abstract void onPackageRemoved(java.lang.String, android.os.UserHandle); method public abstract void onPackagesAvailable(java.lang.String[], android.os.UserHandle, boolean); method public void onPackagesSuspended(java.lang.String[], android.os.UserHandle); method public void onPackagesSuspended(java.lang.String[], android.os.Bundle, android.os.UserHandle); method public abstract void onPackagesUnavailable(java.lang.String[], android.os.UserHandle, boolean); method public void onPackagesUnsuspended(java.lang.String[], android.os.UserHandle); method public void onShortcutsChanged(java.lang.String, java.util.List<android.content.pm.ShortcutInfo>, android.os.UserHandle); core/java/android/content/Intent.java +13 −2 Original line number Diff line number Diff line Loading @@ -1851,6 +1851,17 @@ public class Intent implements Parcelable, Cloneable { @SystemApi public static final String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED"; /** * Intent extra: A {@link Bundle} of extras supplied for the launcher when any packages on * device are suspended. Will be sent with {@link #ACTION_PACKAGES_SUSPENDED}. * * @see PackageManager#isPackageSuspended() * @see #ACTION_PACKAGES_SUSPENDED * * @hide */ public static final String EXTRA_LAUNCHER_EXTRAS = "android.intent.extra.LAUNCHER_EXTRAS"; /** * Activity action: Launch UI to manage which apps have a given permission. * <p> Loading Loading @@ -2251,8 +2262,8 @@ public class Intent implements Parcelable, Cloneable { /** * Broadcast Action: Sent to a package that has been suspended by the system. This is sent * whenever a package is put into a suspended state or any of it's app extras change while * in the suspended state. * whenever a package is put into a suspended state or any of its app extras change while in the * suspended state. * <p> Optionally includes the following extras: * <ul> * <li> {@link #EXTRA_SUSPENDED_PACKAGE_EXTRAS} which is a {@link Bundle} which will contain Loading core/java/android/content/pm/ILauncherApps.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ interface ILauncherApps { String callingPackage, in ComponentName component, in Rect sourceBounds, in Bundle opts, in UserHandle user); boolean isPackageEnabled(String callingPackage, String packageName, in UserHandle user); Bundle getSuspendedPackageLauncherExtras(String packageName, in UserHandle user); boolean isActivityEnabled( String callingPackage, in ComponentName component, in UserHandle user); ApplicationInfo getApplicationInfo( Loading core/java/android/content/pm/IOnAppsChangedListener.aidl +3 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.content.pm; import android.content.pm.ParceledListSlice; import android.os.Bundle; import android.os.UserHandle; /** Loading @@ -28,7 +29,8 @@ oneway interface IOnAppsChangedListener { void onPackageChanged(in UserHandle user, String packageName); void onPackagesAvailable(in UserHandle user, in String[] packageNames, boolean replacing); void onPackagesUnavailable(in UserHandle user, in String[] packageNames, boolean replacing); void onPackagesSuspended(in UserHandle user, in String[] packageNames); void onPackagesSuspended(in UserHandle user, in String[] packageNames, in Bundle launcherExtras); void onPackagesUnsuspended(in UserHandle user, in String[] packageNames); void onShortcutChanged(in UserHandle user, String packageName, in ParceledListSlice shortcuts); } core/java/android/content/pm/LauncherApps.java +55 −5 Original line number Diff line number Diff line Loading @@ -211,6 +211,10 @@ public class LauncherApps { * example, this can happen when a Device Administrator suspends * an applicaton. * * <p>Note: On devices running {@link android.os.Build.VERSION_CODES#P Android P} or higher, * any apps that override {@link #onPackagesSuspended(String[], Bundle, UserHandle)} will * not receive this callback. * * @param packageNames The names of the packages that have just been * suspended. * @param user The UserHandle of the profile that generated the change. Loading @@ -218,6 +222,22 @@ public class LauncherApps { public void onPackagesSuspended(String[] packageNames, UserHandle user) { } /** * Indicates that one or more packages have been suspended. A device administrator or an app * with {@code android.permission.SUSPEND_APPS} can do this. * * @param packageNames The names of the packages that have just been suspended. * @param launcherExtras A {@link Bundle} of extras for the launcher. * @param user the user for which the given packages were suspended. * * @see PackageManager#isPackageSuspended() * @see #getSuspendedPackageLauncherExtras(String, UserHandle) */ public void onPackagesSuspended(String[] packageNames, @Nullable Bundle launcherExtras, UserHandle user) { onPackagesSuspended(packageNames, user); } /** * Indicates that one or more packages have been unsuspended. For * example, this can happen when a Device Administrator unsuspends Loading Loading @@ -637,6 +657,31 @@ public class LauncherApps { } } /** * Gets the launcher extras supplied to the system when the given package was suspended via * {@code PackageManager#setPackagesSuspended(String[], boolean, PersistableBundle, * PersistableBundle, String)}. * * <p>Note: This just returns whatever extras were provided to the system, <em>which might * even be {@code null}.</em> * * @param packageName The package for which to fetch the launcher extras. * @param user The {@link UserHandle} of the profile. * @return A {@link Bundle} of launcher extras. Or {@code null} if the package is not currently * suspended. * * @see Callback#onPackagesSuspended(String[], Bundle, UserHandle) * @see PackageManager#isPackageSuspended() */ public @Nullable Bundle getSuspendedPackageLauncherExtras(String packageName, UserHandle user) { logErrorForInvalidProfileAccess(user); try { return mService.getSuspendedPackageLauncherExtras(packageName, user); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } /** * Returns {@link ApplicationInfo} about an application installed for a specific user profile. * Loading @@ -652,7 +697,7 @@ public class LauncherApps { @ApplicationInfoFlags int flags, @NonNull UserHandle user) throws PackageManager.NameNotFoundException { Preconditions.checkNotNull(packageName, "packageName"); Preconditions.checkNotNull(packageName, "user"); Preconditions.checkNotNull(user, "user"); logErrorForInvalidProfileAccess(user); try { final ApplicationInfo ai = mService Loading Loading @@ -1163,14 +1208,15 @@ public class LauncherApps { } @Override public void onPackagesSuspended(UserHandle user, String[] packageNames) public void onPackagesSuspended(UserHandle user, String[] packageNames, Bundle launcherExtras) throws RemoteException { if (DEBUG) { Log.d(TAG, "onPackagesSuspended " + user.getIdentifier() + "," + packageNames); } synchronized (LauncherApps.this) { for (CallbackMessageHandler callback : mCallbacks) { callback.postOnPackagesSuspended(packageNames, user); callback.postOnPackagesSuspended(packageNames, launcherExtras, user); } } } Loading Loading @@ -1218,6 +1264,7 @@ public class LauncherApps { private static class CallbackInfo { String[] packageNames; String packageName; Bundle launcherExtras; boolean replacing; UserHandle user; List<ShortcutInfo> shortcuts; Loading Loading @@ -1251,7 +1298,8 @@ public class LauncherApps { mCallback.onPackagesUnavailable(info.packageNames, info.user, info.replacing); break; case MSG_SUSPENDED: mCallback.onPackagesSuspended(info.packageNames, info.user); mCallback.onPackagesSuspended(info.packageNames, info.launcherExtras, info.user); break; case MSG_UNSUSPENDED: mCallback.onPackagesUnsuspended(info.packageNames, info.user); Loading Loading @@ -1301,10 +1349,12 @@ public class LauncherApps { obtainMessage(MSG_UNAVAILABLE, info).sendToTarget(); } public void postOnPackagesSuspended(String[] packageNames, UserHandle user) { public void postOnPackagesSuspended(String[] packageNames, Bundle launcherExtras, UserHandle user) { CallbackInfo info = new CallbackInfo(); info.packageNames = packageNames; info.user = user; info.launcherExtras = launcherExtras; obtainMessage(MSG_SUSPENDED, info).sendToTarget(); } Loading Loading
api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -10913,6 +10913,7 @@ package android.content.pm { method public java.util.List<android.content.pm.LauncherActivityInfo> getShortcutConfigActivityList(java.lang.String, android.os.UserHandle); method public android.graphics.drawable.Drawable getShortcutIconDrawable(android.content.pm.ShortcutInfo, int); method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle); method public android.os.Bundle getSuspendedPackageLauncherExtras(java.lang.String, android.os.UserHandle); method public boolean hasShortcutHostPermission(); method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle); method public boolean isPackageEnabled(java.lang.String, android.os.UserHandle); Loading @@ -10937,6 +10938,7 @@ package android.content.pm { method public abstract void onPackageRemoved(java.lang.String, android.os.UserHandle); method public abstract void onPackagesAvailable(java.lang.String[], android.os.UserHandle, boolean); method public void onPackagesSuspended(java.lang.String[], android.os.UserHandle); method public void onPackagesSuspended(java.lang.String[], android.os.Bundle, android.os.UserHandle); method public abstract void onPackagesUnavailable(java.lang.String[], android.os.UserHandle, boolean); method public void onPackagesUnsuspended(java.lang.String[], android.os.UserHandle); method public void onShortcutsChanged(java.lang.String, java.util.List<android.content.pm.ShortcutInfo>, android.os.UserHandle);
core/java/android/content/Intent.java +13 −2 Original line number Diff line number Diff line Loading @@ -1851,6 +1851,17 @@ public class Intent implements Parcelable, Cloneable { @SystemApi public static final String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED"; /** * Intent extra: A {@link Bundle} of extras supplied for the launcher when any packages on * device are suspended. Will be sent with {@link #ACTION_PACKAGES_SUSPENDED}. * * @see PackageManager#isPackageSuspended() * @see #ACTION_PACKAGES_SUSPENDED * * @hide */ public static final String EXTRA_LAUNCHER_EXTRAS = "android.intent.extra.LAUNCHER_EXTRAS"; /** * Activity action: Launch UI to manage which apps have a given permission. * <p> Loading Loading @@ -2251,8 +2262,8 @@ public class Intent implements Parcelable, Cloneable { /** * Broadcast Action: Sent to a package that has been suspended by the system. This is sent * whenever a package is put into a suspended state or any of it's app extras change while * in the suspended state. * whenever a package is put into a suspended state or any of its app extras change while in the * suspended state. * <p> Optionally includes the following extras: * <ul> * <li> {@link #EXTRA_SUSPENDED_PACKAGE_EXTRAS} which is a {@link Bundle} which will contain Loading
core/java/android/content/pm/ILauncherApps.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ interface ILauncherApps { String callingPackage, in ComponentName component, in Rect sourceBounds, in Bundle opts, in UserHandle user); boolean isPackageEnabled(String callingPackage, String packageName, in UserHandle user); Bundle getSuspendedPackageLauncherExtras(String packageName, in UserHandle user); boolean isActivityEnabled( String callingPackage, in ComponentName component, in UserHandle user); ApplicationInfo getApplicationInfo( Loading
core/java/android/content/pm/IOnAppsChangedListener.aidl +3 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.content.pm; import android.content.pm.ParceledListSlice; import android.os.Bundle; import android.os.UserHandle; /** Loading @@ -28,7 +29,8 @@ oneway interface IOnAppsChangedListener { void onPackageChanged(in UserHandle user, String packageName); void onPackagesAvailable(in UserHandle user, in String[] packageNames, boolean replacing); void onPackagesUnavailable(in UserHandle user, in String[] packageNames, boolean replacing); void onPackagesSuspended(in UserHandle user, in String[] packageNames); void onPackagesSuspended(in UserHandle user, in String[] packageNames, in Bundle launcherExtras); void onPackagesUnsuspended(in UserHandle user, in String[] packageNames); void onShortcutChanged(in UserHandle user, String packageName, in ParceledListSlice shortcuts); }
core/java/android/content/pm/LauncherApps.java +55 −5 Original line number Diff line number Diff line Loading @@ -211,6 +211,10 @@ public class LauncherApps { * example, this can happen when a Device Administrator suspends * an applicaton. * * <p>Note: On devices running {@link android.os.Build.VERSION_CODES#P Android P} or higher, * any apps that override {@link #onPackagesSuspended(String[], Bundle, UserHandle)} will * not receive this callback. * * @param packageNames The names of the packages that have just been * suspended. * @param user The UserHandle of the profile that generated the change. Loading @@ -218,6 +222,22 @@ public class LauncherApps { public void onPackagesSuspended(String[] packageNames, UserHandle user) { } /** * Indicates that one or more packages have been suspended. A device administrator or an app * with {@code android.permission.SUSPEND_APPS} can do this. * * @param packageNames The names of the packages that have just been suspended. * @param launcherExtras A {@link Bundle} of extras for the launcher. * @param user the user for which the given packages were suspended. * * @see PackageManager#isPackageSuspended() * @see #getSuspendedPackageLauncherExtras(String, UserHandle) */ public void onPackagesSuspended(String[] packageNames, @Nullable Bundle launcherExtras, UserHandle user) { onPackagesSuspended(packageNames, user); } /** * Indicates that one or more packages have been unsuspended. For * example, this can happen when a Device Administrator unsuspends Loading Loading @@ -637,6 +657,31 @@ public class LauncherApps { } } /** * Gets the launcher extras supplied to the system when the given package was suspended via * {@code PackageManager#setPackagesSuspended(String[], boolean, PersistableBundle, * PersistableBundle, String)}. * * <p>Note: This just returns whatever extras were provided to the system, <em>which might * even be {@code null}.</em> * * @param packageName The package for which to fetch the launcher extras. * @param user The {@link UserHandle} of the profile. * @return A {@link Bundle} of launcher extras. Or {@code null} if the package is not currently * suspended. * * @see Callback#onPackagesSuspended(String[], Bundle, UserHandle) * @see PackageManager#isPackageSuspended() */ public @Nullable Bundle getSuspendedPackageLauncherExtras(String packageName, UserHandle user) { logErrorForInvalidProfileAccess(user); try { return mService.getSuspendedPackageLauncherExtras(packageName, user); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } /** * Returns {@link ApplicationInfo} about an application installed for a specific user profile. * Loading @@ -652,7 +697,7 @@ public class LauncherApps { @ApplicationInfoFlags int flags, @NonNull UserHandle user) throws PackageManager.NameNotFoundException { Preconditions.checkNotNull(packageName, "packageName"); Preconditions.checkNotNull(packageName, "user"); Preconditions.checkNotNull(user, "user"); logErrorForInvalidProfileAccess(user); try { final ApplicationInfo ai = mService Loading Loading @@ -1163,14 +1208,15 @@ public class LauncherApps { } @Override public void onPackagesSuspended(UserHandle user, String[] packageNames) public void onPackagesSuspended(UserHandle user, String[] packageNames, Bundle launcherExtras) throws RemoteException { if (DEBUG) { Log.d(TAG, "onPackagesSuspended " + user.getIdentifier() + "," + packageNames); } synchronized (LauncherApps.this) { for (CallbackMessageHandler callback : mCallbacks) { callback.postOnPackagesSuspended(packageNames, user); callback.postOnPackagesSuspended(packageNames, launcherExtras, user); } } } Loading Loading @@ -1218,6 +1264,7 @@ public class LauncherApps { private static class CallbackInfo { String[] packageNames; String packageName; Bundle launcherExtras; boolean replacing; UserHandle user; List<ShortcutInfo> shortcuts; Loading Loading @@ -1251,7 +1298,8 @@ public class LauncherApps { mCallback.onPackagesUnavailable(info.packageNames, info.user, info.replacing); break; case MSG_SUSPENDED: mCallback.onPackagesSuspended(info.packageNames, info.user); mCallback.onPackagesSuspended(info.packageNames, info.launcherExtras, info.user); break; case MSG_UNSUSPENDED: mCallback.onPackagesUnsuspended(info.packageNames, info.user); Loading Loading @@ -1301,10 +1349,12 @@ public class LauncherApps { obtainMessage(MSG_UNAVAILABLE, info).sendToTarget(); } public void postOnPackagesSuspended(String[] packageNames, UserHandle user) { public void postOnPackagesSuspended(String[] packageNames, Bundle launcherExtras, UserHandle user) { CallbackInfo info = new CallbackInfo(); info.packageNames = packageNames; info.user = user; info.launcherExtras = launcherExtras; obtainMessage(MSG_SUSPENDED, info).sendToTarget(); } Loading