summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Felka Chang <felkachang@google.com> 2020-09-08 20:58:50 +0800
committer Felka Chang <felkachang@google.com> 2020-10-16 20:40:30 +0800
commit3d67a9ed887587349ddff86ec1b67bd99fc917a2 (patch)
treeaf613a6e1c70c5ebc5a24020c4ddeb1457118d75
parentfaf7e4a05b9c23a55dec24f93540244ca9b86a46 (diff)
Remove PackageManager.getResourcesForApplicationAsUser API
To switch another user to do something should create the context of the specified user by using Context.createContextAsUser rather than call *AsUser API directly. Test: make -j droid cts gts vts Test: make -j docs Test: atest SystemUITests \ FrameworksServicesTests:com.android.server.pm Fix: 170928809 Bug: 72863210 Change-Id: Ie1999ba9cf61a4e85b7172240cb198111389ab73
-rw-r--r--core/java/android/content/pm/PackageManager.java25
-rw-r--r--core/java/com/android/internal/app/SuspendedAppActivity.java5
2 files changed, 26 insertions, 4 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 1a992f519286..084b49d3fcd3 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -6195,9 +6195,30 @@ public abstract class PackageManager {
public abstract Resources getResourcesForApplication(@NonNull String packageName)
throws NameNotFoundException;
- /** @hide */
+ /**
+ * Please don't use this function because it is no longer supported.
+ *
+ * @deprecated Instead of using this function, please use
+ * {@link Context#createContextAsUser(UserHandle, int)} to create the specified user
+ * context, {@link Context#getPackageManager()} to get PackageManager instance for
+ * the specified user, and then
+ * {@link PackageManager#getResourcesForApplication(String)} to get the same
+ * Resources instance.
+ * @see {@link Context#createContextAsUser(android.os.UserHandle, int)}
+ * @see {@link Context#getPackageManager()}
+ * @see {@link android.content.pm.PackageManager#getResourcesForApplication(java.lang.String)}
+ * TODO(b/170852794): mark maxTargetSdk as {@code Build.VERSION_CODES.S}
+ * @hide
+ */
@NonNull
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170928809,
+ publicAlternatives = "Use {@code Context#createContextAsUser(UserHandle, int)}"
+ + " to create the relevant user context,"
+ + " {@link android.content.Context#getPackageManager()} and"
+ + " {@link android.content.pm.PackageManager#getResourcesForApplication("
+ + "java.lang.String)}"
+ + " instead.")
+ @Deprecated
public abstract Resources getResourcesForApplicationAsUser(@NonNull String packageName,
@UserIdInt int userId) throws NameNotFoundException;
diff --git a/core/java/com/android/internal/app/SuspendedAppActivity.java b/core/java/com/android/internal/app/SuspendedAppActivity.java
index d8eaeda2b549..52dc7e646d29 100644
--- a/core/java/com/android/internal/app/SuspendedAppActivity.java
+++ b/core/java/com/android/internal/app/SuspendedAppActivity.java
@@ -191,8 +191,9 @@ public class SuspendedAppActivity extends AlertActivity
mOnUnsuspend = intent.getParcelableExtra(EXTRA_UNSUSPEND_INTENT);
if (mSuppliedDialogInfo != null) {
try {
- mSuspendingAppResources = mPm.getResourcesForApplicationAsUser(mSuspendingPackage,
- mUserId);
+ mSuspendingAppResources = createContextAsUser(
+ UserHandle.of(mUserId), /* flags */ 0).getPackageManager()
+ .getResourcesForApplication(mSuspendedPackage);
} catch (PackageManager.NameNotFoundException ne) {
Slog.e(TAG, "Could not find resources for " + mSuspendingPackage, ne);
}