From 021b57ab8df0927aa1f78a2f3bb01d5e70594b1a Mon Sep 17 00:00:00 2001 From: Suprabh Shukla Date: Thu, 8 Mar 2018 18:21:50 -0800 Subject: APIs to suspend packages with SUSPEND_APPS permission Changed the existing hidden api setPackagesSuspendedAsUser to a system api setPackagesSuspended that can be called by apps with either MANAGE_USERS or SUSPEND_APPS permission. Additionally, the suspending app can now specify optional extra information meant to be used by the suspended apps and the launcher to deal with this state. The following other APIs are added: - isPackageSuspended(): Apps can query whether they are in a suspended state - @SystemApi getPackageSuspendedAppExtras(String): Apps with permission SUSPEND_APPS can get the appExtras passed to PM when suspending the app. - @SystemApi setPackageSuspendedAppExtras(String, PersistableBundle): Apps with permission SUSPEND_APPS can update app extras for a suspended package. - getPackageSuspendedAppExtras(): Apps can call to get the appExtras passed in to PM when they were suspended. Test: Can be run via: atest com.android.server.pm.PackageManagerSettingsTests atest com.android.server.pm.PackageUserStateTest atest com.android.server.pm.SuspendPackagesTest Bug: 74336673 Change-Id: I3b9ed2c8478b34ee2e8986f5f5fddb2839d102e3 --- test-mock/src/android/test/mock/MockPackageManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'test-mock/src') diff --git a/test-mock/src/android/test/mock/MockPackageManager.java b/test-mock/src/android/test/mock/MockPackageManager.java index 1af7c3a479b6..108751a36a08 100644 --- a/test-mock/src/android/test/mock/MockPackageManager.java +++ b/test-mock/src/android/test/mock/MockPackageManager.java @@ -53,6 +53,7 @@ import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Handler; +import android.os.PersistableBundle; import android.os.UserHandle; import android.os.storage.VolumeInfo; @@ -945,7 +946,8 @@ public class MockPackageManager extends PackageManager { /** @hide */ @Override - public String[] setPackagesSuspendedAsUser(String[] packageNames, boolean hidden, int userId) { + public String[] setPackagesSuspended(String[] packageNames, boolean hidden, + PersistableBundle appExtras, PersistableBundle launcherExtras, String dialogMessage) { throw new UnsupportedOperationException(); } -- cgit v1.2.3