diff --git a/src/com/android/settings/dashboard/profileselector/UserAdapter.java b/src/com/android/settings/dashboard/profileselector/UserAdapter.java index 7057961f2ad..abf22df9e51 100644 --- a/src/com/android/settings/dashboard/profileselector/UserAdapter.java +++ b/src/com/android/settings/dashboard/profileselector/UserAdapter.java @@ -78,7 +78,7 @@ public class UserAdapter implements SpinnerAdapter, ListAdapter { } private static Drawable encircle(Context context, Drawable icon) { - return new UserIconDrawable(UserIconDrawable.getSizeForList(context)) + return new UserIconDrawable(UserIconDrawable.getDefaultSize(context)) .setIconDrawable(icon).bake(); } } diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 3ea15026bcd..9878b4470dc 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -737,7 +737,8 @@ public class UserSettings extends SettingsPreferenceFragment if (newUserIcon != userIcon) { ThreadUtils.postOnBackgroundThread(() -> mUserManager.setUserIcon(user.id, - UserIcons.convertToBitmap(newUserIcon))); + UserIcons.convertToBitmapAtUserIconSize( + activity.getResources(), newUserIcon))); mMePreference.setIcon(newUserIcon); } @@ -891,7 +892,9 @@ public class UserSettings extends SettingsPreferenceFragment if (newUserIcon == null) { newUserIcon = UserIcons.getDefaultUserIcon(getResources(), user.id, false); } - mUserManager.setUserIcon(user.id, UserIcons.convertToBitmap(newUserIcon)); + mUserManager.setUserIcon( + user.id, UserIcons.convertToBitmapAtUserIconSize( + getResources(), newUserIcon)); if (mUserType == USER_TYPE_USER) { mHandler.sendEmptyMessage(MESSAGE_UPDATE_LIST); @@ -1315,7 +1318,7 @@ public class UserSettings extends SettingsPreferenceFragment // Try finding the corresponding bitmap in the dark bitmap cache bitmap = sDarkDefaultUserBitmapCache.get(userId); if (bitmap == null) { - bitmap = UserIcons.convertToBitmap( + bitmap = UserIcons.convertToBitmapAtUserIconSize(resources, UserIcons.getDefaultUserIcon(resources, userId, false)); // Save it to cache sDarkDefaultUserBitmapCache.put(userId, bitmap); diff --git a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java index 2c694ace881..0fa3d5c671a 100644 --- a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java +++ b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java @@ -193,6 +193,29 @@ public class UserSettingsTest { assertThat(UserSettings.assignDefaultPhoto(null, ACTIVE_USER_ID)).isFalse(); } + @Test + public void testAssignDefaultPhoto_hasDefaultUserIconSize() { + doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE); + int size = 100; + try { + SettingsShadowResources.overrideResource( + com.android.internal.R.dimen.user_icon_size, + size); + assertThat(UserSettings.assignDefaultPhoto(mContext, ACTIVE_USER_ID)).isTrue(); + + int pxSize = mContext.getResources() + .getDimensionPixelSize(com.android.internal.R.dimen.user_icon_size); + + ArgumentCaptor captor = ArgumentCaptor.forClass(Bitmap.class); + verify(mUserManager).setUserIcon(eq(ACTIVE_USER_ID), captor.capture()); + Bitmap bitmap = captor.getValue(); + assertThat(bitmap.getWidth()).isEqualTo(pxSize); + assertThat(bitmap.getHeight()).isEqualTo(pxSize); + } finally { + SettingsShadowResources.reset(); + } + } + @Test public void testExitGuest_ShouldLogAction() { mUserCapabilities.mIsGuest = true;