summaryrefslogtreecommitdiff
path: root/core/java/android/app/ApplicationPackageManager.java
diff options
context:
space:
mode:
authorBeverly <beverlyt@google.com>2020-04-27 16:15:15 -0400
committerBeverly <beverlyt@google.com>2020-05-07 09:20:19 -0400
commit2b4306a8ecd64f6e03498104f314600f9cc7507c (patch)
tree1f373f5e61922b931b7ad7c7185b1c3edda99fbd /core/java/android/app/ApplicationPackageManager.java
parent27f4c791a24e449c0478c1f67804ada048a2b621 (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.java21
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;
}