From f922ae3179f05a67fcaa7aba8083a39baf4f7425 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. To change Icon not to use PackageManager.getResourcesForApplicationAsUser lets StatusBarIconViewTest no need to mock getResourcesForApplicationAsUser in mock PackageManager instance. Test: make -j droid cts gts vts Test: make -j docs Test: atest SystemUITests \ FrameworksServicesTests:com.android.server.pm \ CtsGraphicsTestCases:android.graphics.drawable.cts.IconTest \ FrameworksCoreTests:android.graphics.drawable.IconTest Bug: 170928809 Change-Id: I4a2ec54b6e137a9c9efcfba0589c08ea8cac86ce --- graphics/java/android/graphics/drawable/Icon.java | 6 ++++-- .../android/systemui/statusbar/StatusBarIconViewTest.java | 2 -- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/graphics/java/android/graphics/drawable/Icon.java b/graphics/java/android/graphics/drawable/Icon.java index 90412f417f389..abf0e8a1fe896 100644 --- a/graphics/java/android/graphics/drawable/Icon.java +++ b/graphics/java/android/graphics/drawable/Icon.java @@ -39,6 +39,7 @@ import android.os.Handler; import android.os.Message; import android.os.Parcel; import android.os.Parcelable; +import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; @@ -441,10 +442,11 @@ public final class Icon implements Parcelable { resPackage = context.getPackageName(); } if (getResources() == null && !(getResPackage().equals("android"))) { - final PackageManager pm = context.getPackageManager(); + final PackageManager pm = context.createContextAsUser( + UserHandle.of(userId), /* flags */ 0).getPackageManager(); try { // assign getResources() as the correct user - mObj1 = pm.getResourcesForApplicationAsUser(resPackage, userId); + mObj1 = pm.getResourcesForApplication(resPackage); } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, String.format("Unable to find pkg=%s user=%d", getResPackage(), diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java index 9971e0cf81a32..71f146bf02200 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java @@ -73,8 +73,6 @@ public class StatusBarIconViewTest extends SysuiTestCase { // Set up context such that asking for "mockPackage" resources returns mMockResources. mMockResources = mock(Resources.class); mPackageManagerSpy = spy(getContext().getPackageManager()); - doReturn(mMockResources).when(mPackageManagerSpy) - .getResourcesForApplicationAsUser(eq("mockPackage"), anyInt()); doReturn(mMockResources).when(mPackageManagerSpy) .getResourcesForApplication(eq("mockPackage")); doReturn(mMockResources).when(mPackageManagerSpy).getResourcesForApplication(argThat(