diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index 1091aea755f..54609460be8 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -976,8 +976,8 @@ public final class Utils extends com.android.settingslib.Utils { public static Drawable getBadgedIcon(IconDrawableFactory iconDrawableFactory, PackageManager packageManager, String packageName, int userId) { try { - final ApplicationInfo appInfo = packageManager.getApplicationInfo(packageName, - PackageManager.GET_META_DATA); + final ApplicationInfo appInfo = packageManager.getApplicationInfoAsUser( + packageName, PackageManager.GET_META_DATA, userId); return iconDrawableFactory.getBadgedIcon(appInfo, userId); } catch (PackageManager.NameNotFoundException e) { return packageManager.getDefaultActivityIcon(); diff --git a/src/com/android/settings/fuelgauge/RestrictedAppDetails.java b/src/com/android/settings/fuelgauge/RestrictedAppDetails.java index 631fd066d0c..e75112c68a5 100644 --- a/src/com/android/settings/fuelgauge/RestrictedAppDetails.java +++ b/src/com/android/settings/fuelgauge/RestrictedAppDetails.java @@ -131,8 +131,8 @@ public class RestrictedAppDetails extends DashboardFragment { final CheckBoxPreference checkBoxPreference = new AppCheckBoxPreference(context); final AppInfo appInfo = mAppInfos.get(i); try { - final ApplicationInfo applicationInfo = mPackageManager.getApplicationInfo( - appInfo.packageName, 0 /* flags */); + final ApplicationInfo applicationInfo = mPackageManager.getApplicationInfoAsUser( + appInfo.packageName, 0 /* flags */, UserHandle.getUserId(appInfo.uid)); checkBoxPreference.setChecked(true); checkBoxPreference.setTitle(mPackageManager.getApplicationLabel(applicationInfo)); checkBoxPreference.setIcon( diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java index a2b189282a2..fcd40aa65c9 100644 --- a/tests/robotests/src/com/android/settings/UtilsTest.java +++ b/tests/robotests/src/com/android/settings/UtilsTest.java @@ -17,6 +17,9 @@ package com.android.settings; import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.doReturn; @@ -188,12 +191,13 @@ public class UtilsTest { @Test public void testGetBadgedIcon_usePackageNameAndUserId() throws PackageManager.NameNotFoundException { - doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfo(PACKAGE_NAME, - PackageManager.GET_META_DATA); + doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfoAsUser( + PACKAGE_NAME, PackageManager.GET_META_DATA, USER_ID); Utils.getBadgedIcon(mIconDrawableFactory, mPackageManager, PACKAGE_NAME, USER_ID); // Verify that it uses the correct user id + verify(mPackageManager).getApplicationInfoAsUser(eq(PACKAGE_NAME), anyInt(), eq(USER_ID)); verify(mIconDrawableFactory).getBadgedIcon(mApplicationInfo, USER_ID); } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java index 261acad22a2..94a690326df 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java @@ -21,13 +21,13 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.when; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Bundle; +import android.os.UserHandle; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceManager; @@ -54,7 +54,8 @@ import java.util.List; public class RestrictedAppDetailsTest { private static final String PACKAGE_NAME = "com.android.app"; - private static final int UID = 234; + private static final int USER_ID = 10; + private static final int UID = UserHandle.getUid(USER_ID, 234); private static final String APP_NAME = "app"; @Mock @@ -99,7 +100,8 @@ public class RestrictedAppDetailsTest { @Test public void testRefreshUi_displayPreference() throws Exception { - doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfo(PACKAGE_NAME, 0); + doReturn(mApplicationInfo).when(mPackageManager) + .getApplicationInfoAsUser(PACKAGE_NAME, 0, USER_ID); doReturn(APP_NAME).when(mPackageManager).getApplicationLabel(mApplicationInfo); mRestrictedAppDetails.refreshUi();