diff options
| author | Tony Mak <tonymak@google.com> | 2017-11-23 16:57:08 +0800 |
|---|---|---|
| committer | Tony Mak <tonymak@google.com> | 2017-11-28 07:47:19 +0000 |
| commit | 213955e5622dd444ce2ada0f6de7dd92cc044dcb (patch) | |
| tree | 2f5efb1daa04ad5c21d3021d1dcf7a6e42cf743f /core/java | |
| parent | 4769d2febc6ccf3ec2f9dc053798c13d513c6d45 (diff) | |
Fix user color overlay is not applied
Resource overlay is now done in runtime with non-system resources object.
Amend getDefaultUserIcon to take resources object as parameter.
BUG: 69355037
Test: Factory reset, verify that overlayed color is used in multiple
places, including keyguard, the bar under quick settings and Settings app.
Change-Id: I20b0527bdcb2eb38e8bea6a05f53eea1edcba932
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/ApplicationPackageManager.java | 3 | ||||
| -rw-r--r-- | core/java/com/android/internal/util/UserIcons.java | 8 |
2 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 0eafdec6bb0f..cd50531a327f 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -2476,7 +2476,8 @@ public class ApplicationPackageManager extends PackageManager { if (itemInfo.showUserIcon != UserHandle.USER_NULL) { Bitmap bitmap = getUserManager().getUserIcon(itemInfo.showUserIcon); if (bitmap == null) { - return UserIcons.getDefaultUserIcon(itemInfo.showUserIcon, /* light= */ false); + return UserIcons.getDefaultUserIcon( + mContext.getResources(), itemInfo.showUserIcon, /* light= */ false); } return new BitmapDrawable(bitmap); } diff --git a/core/java/com/android/internal/util/UserIcons.java b/core/java/com/android/internal/util/UserIcons.java index daf745ff6a2c..bfe43237da58 100644 --- a/core/java/com/android/internal/util/UserIcons.java +++ b/core/java/com/android/internal/util/UserIcons.java @@ -61,17 +61,19 @@ public class UserIcons { * Returns a default user icon for the given user. * * Note that for guest users, you should pass in {@code UserHandle.USER_NULL}. + * + * @param resources resources object to fetch user icon / color. * @param userId the user id or {@code UserHandle.USER_NULL} for a non-user specific icon * @param light whether we want a light icon (suitable for a dark background) */ - public static Drawable getDefaultUserIcon(int userId, boolean light) { + public static Drawable getDefaultUserIcon(Resources resources, int userId, boolean light) { int colorResId = light ? R.color.user_icon_default_white : R.color.user_icon_default_gray; if (userId != UserHandle.USER_NULL) { // Return colored icon instead colorResId = USER_ICON_COLORS[userId % USER_ICON_COLORS.length]; } - Drawable icon = Resources.getSystem().getDrawable(R.drawable.ic_account_circle, null).mutate(); - icon.setColorFilter(Resources.getSystem().getColor(colorResId, null), Mode.SRC_IN); + Drawable icon = resources.getDrawable(R.drawable.ic_account_circle, null).mutate(); + icon.setColorFilter(resources.getColor(colorResId, null), Mode.SRC_IN); icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight()); return icon; } |
