From c2d86618e9a327324dda9519467a4f248325916d Mon Sep 17 00:00:00 2001 From: Felka Chang Date: Tue, 8 Sep 2020 20:58:50 +0800 Subject: [PATCH] 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: croot ; make RunSettingsLibRoboTests -j40 Test: make -j droid cts gts vts Test: make -j docs Test: atest SystemUITests \ FrameworksServicesTests:com.android.server.pm Bug: 170928809 Change-Id: I369a3cf0a9dca1496b57675f4fa8e3fb1da982f3 --- .../android/settingslib/location/SettingsInjector.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/location/SettingsInjector.java b/packages/SettingsLib/src/com/android/settingslib/location/SettingsInjector.java index 450bdb1619332..a0c8663a82714 100644 --- a/packages/SettingsLib/src/com/android/settingslib/location/SettingsInjector.java +++ b/packages/SettingsLib/src/com/android/settingslib/location/SettingsInjector.java @@ -129,10 +129,14 @@ public class SettingsInjector { if (Log.isLoggable(TAG, Log.DEBUG)) { Log.d(TAG, "Found services for profile id " + profileId + ": " + resolveInfos); } + + final PackageManager userPackageManager = mContext.createContextAsUser( + userHandle, /* flags */ 0).getPackageManager(); List settings = new ArrayList(resolveInfos.size()); for (ResolveInfo resolveInfo : resolveInfos) { try { - InjectedSetting setting = parseServiceInfo(resolveInfo, userHandle, pm); + InjectedSetting setting = parseServiceInfo(resolveInfo, userHandle, + userPackageManager); if (setting == null) { Log.w(TAG, "Unable to load service info " + resolveInfo); } else { @@ -248,8 +252,7 @@ public class SettingsInjector { + SettingInjectorService.ATTRIBUTES_NAME + " tag"); } - Resources res = pm.getResourcesForApplicationAsUser(si.packageName, - userHandle.getIdentifier()); + Resources res = pm.getResourcesForApplication(si.packageName); return parseAttributes(si.packageName, si.name, userHandle, res, attrs); } catch (PackageManager.NameNotFoundException e) { throw new XmlPullParserException(