diff options
| author | Beverly <beverlyt@google.com> | 2020-04-27 16:15:15 -0400 |
|---|---|---|
| committer | Beverly <beverlyt@google.com> | 2020-05-07 09:20:19 -0400 |
| commit | 2b4306a8ecd64f6e03498104f314600f9cc7507c (patch) | |
| tree | 1f373f5e61922b931b7ad7c7185b1c3edda99fbd /core/java/android/app/ApplicationPackageManager.java | |
| parent | 27f4c791a24e449c0478c1f67804ada048a2b621 (diff) | |
Add badge colors for dark theme
Test: manual
Test: atest UserManagerTest#testProfileTypeInformation
Fixes: 149669756
Change-Id: Ib3fd377a4902bbe936d574dc52bac4eae6e25dd4
Diffstat (limited to 'core/java/android/app/ApplicationPackageManager.java')
| -rw-r--r-- | core/java/android/app/ApplicationPackageManager.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index f883b60b534f..6bd8fd7c6ecf 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -1574,7 +1574,7 @@ public class ApplicationPackageManager extends PackageManager { } Drawable badge = new LauncherIcons(mContext).getBadgeDrawable( getUserManager().getUserIconBadgeResId(user.getIdentifier()), - getUserBadgeColor(user)); + getUserBadgeColor(user, false)); return getBadgedDrawable(icon, badge, null, true); } @@ -1588,8 +1588,16 @@ public class ApplicationPackageManager extends PackageManager { return getBadgedDrawable(drawable, badgeDrawable, badgeLocation, true); } - /** Returns the color of the user's actual badge (not the badge's shadow). */ - private int getUserBadgeColor(UserHandle user) { + /** + * Returns the color of the user's actual badge (not the badge's shadow). + * @param checkTheme whether to check the theme to determine the badge color. This should be + * true if the background is determined by the theme. Otherwise, if + * checkTheme is false, returns the color assuming a light background. + */ + private int getUserBadgeColor(UserHandle user, boolean checkTheme) { + if (checkTheme && mContext.getResources().getConfiguration().isNightModeActive()) { + return getUserManager().getUserBadgeDarkColor(user.getIdentifier()); + } return getUserManager().getUserBadgeColor(user.getIdentifier()); } @@ -1603,11 +1611,14 @@ public class ApplicationPackageManager extends PackageManager { } Drawable badgeForeground = getDrawableForDensity( getUserManager().getUserBadgeResId(user.getIdentifier()), density); - badgeForeground.setTint(getUserBadgeColor(user)); + badgeForeground.setTint(getUserBadgeColor(user, false)); Drawable badge = new LayerDrawable(new Drawable[] {badgeColor, badgeForeground }); return badge; } + /** + * Returns the badge color based on whether device has dark theme enabled or not. + */ @Override public Drawable getUserBadgeForDensityNoBackground(UserHandle user, int density) { if (!hasUserBadge(user.getIdentifier())) { @@ -1616,7 +1627,7 @@ public class ApplicationPackageManager extends PackageManager { Drawable badge = getDrawableForDensity( getUserManager().getUserBadgeNoBackgroundResId(user.getIdentifier()), density); if (badge != null) { - badge.setTint(getUserBadgeColor(user)); + badge.setTint(getUserBadgeColor(user, true)); } return badge; } |
