Loading core/java/android/app/Notification.java +8 −2 Original line number Diff line number Diff line Loading @@ -3055,6 +3055,11 @@ public class Notification implements Parcelable * Apply any necessary background to smallIcons being used in the largeIcon spot. */ private void processSmallIconAsLarge(int largeIconId, RemoteViews contentView) { if (!isLegacy()) { contentView.setDrawableParameters(R.id.icon, false, -1, 0xFFFFFFFF, PorterDuff.Mode.SRC_ATOP, -1); } if (!isLegacy() || mColorUtil.isGrayscaleIcon(mContext, largeIconId)) { applyLargeIconBackground(contentView); } Loading Loading @@ -3102,11 +3107,12 @@ public class Notification implements Parcelable */ private void processSmallRightIcon(int smallIconDrawableId, RemoteViews contentView) { if (!isLegacy() || mColorUtil.isGrayscaleIcon(mContext, smallIconDrawableId)) { if (!isLegacy()) { contentView.setDrawableParameters(R.id.right_icon, false, -1, 0xFFFFFFFF, PorterDuff.Mode.SRC_ATOP, -1); } if (!isLegacy() || mColorUtil.isGrayscaleIcon(mContext, smallIconDrawableId)) { contentView.setInt(R.id.right_icon, "setBackgroundResource", R.drawable.notification_icon_legacy_bg); Loading packages/SystemUI/src/com/android/systemui/statusbar/NotificationTemplateViewWrapper.java +16 −3 Original line number Diff line number Diff line Loading @@ -53,6 +53,9 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper { private ImageView mIcon; protected ImageView mPicture; /** Whether the icon needs to be forced grayscale when in dark mode. */ private boolean mIconForceGraysaleWhenDark; protected NotificationTemplateViewWrapper(Context ctx, View view) { super(view); mIconDarkAlpha = ctx.getResources().getInteger(R.integer.doze_small_icon_alpha); Loading @@ -73,11 +76,15 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper { mIcon = resolveIcon(largeIcon, rightIcon); mPicture = resolvePicture(largeIcon); mIconBackgroundColor = resolveBackgroundColor(mIcon); // If the icon already has a color filter, we assume that we already forced the icon to be // white when we created the notification. mIconForceGraysaleWhenDark = mIcon != null && mIcon.getDrawable().getColorFilter() != null; } private ImageView resolveIcon(ImageView largeIcon, ImageView rightIcon) { return largeIcon != null && largeIcon.getBackground() != null ? largeIcon : rightIcon != null && rightIcon.getBackground() != null ? rightIcon : rightIcon != null && rightIcon.getVisibility() == View.VISIBLE ? rightIcon : null; } Loading Loading @@ -118,9 +125,15 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper { if (fade) { fadeIconColorFilter(mIcon, dark, delay); fadeIconAlpha(mIcon, dark, delay); if (!mIconForceGraysaleWhenDark) { fadeGrayscale(mIcon, dark, delay); } } else { updateIconColorFilter(mIcon, dark); updateIconAlpha(mIcon, dark); if (!mIconForceGraysaleWhenDark) { updateGrayscale(mIcon, dark); } } } setPictureGrayscale(dark, fade, delay); Loading Loading @@ -196,8 +209,8 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper { mIconColorFilter.setColor(color); Drawable background = target.getBackground(); // The notification might have been modified during the animation, so background might be // null here. // The background might be null for legacy notifications. Also, the notification might have // been modified during the animation, so background might be null here. if (background != null) { background.mutate().setColorFilter(mIconColorFilter); } Loading Loading
core/java/android/app/Notification.java +8 −2 Original line number Diff line number Diff line Loading @@ -3055,6 +3055,11 @@ public class Notification implements Parcelable * Apply any necessary background to smallIcons being used in the largeIcon spot. */ private void processSmallIconAsLarge(int largeIconId, RemoteViews contentView) { if (!isLegacy()) { contentView.setDrawableParameters(R.id.icon, false, -1, 0xFFFFFFFF, PorterDuff.Mode.SRC_ATOP, -1); } if (!isLegacy() || mColorUtil.isGrayscaleIcon(mContext, largeIconId)) { applyLargeIconBackground(contentView); } Loading Loading @@ -3102,11 +3107,12 @@ public class Notification implements Parcelable */ private void processSmallRightIcon(int smallIconDrawableId, RemoteViews contentView) { if (!isLegacy() || mColorUtil.isGrayscaleIcon(mContext, smallIconDrawableId)) { if (!isLegacy()) { contentView.setDrawableParameters(R.id.right_icon, false, -1, 0xFFFFFFFF, PorterDuff.Mode.SRC_ATOP, -1); } if (!isLegacy() || mColorUtil.isGrayscaleIcon(mContext, smallIconDrawableId)) { contentView.setInt(R.id.right_icon, "setBackgroundResource", R.drawable.notification_icon_legacy_bg); Loading
packages/SystemUI/src/com/android/systemui/statusbar/NotificationTemplateViewWrapper.java +16 −3 Original line number Diff line number Diff line Loading @@ -53,6 +53,9 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper { private ImageView mIcon; protected ImageView mPicture; /** Whether the icon needs to be forced grayscale when in dark mode. */ private boolean mIconForceGraysaleWhenDark; protected NotificationTemplateViewWrapper(Context ctx, View view) { super(view); mIconDarkAlpha = ctx.getResources().getInteger(R.integer.doze_small_icon_alpha); Loading @@ -73,11 +76,15 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper { mIcon = resolveIcon(largeIcon, rightIcon); mPicture = resolvePicture(largeIcon); mIconBackgroundColor = resolveBackgroundColor(mIcon); // If the icon already has a color filter, we assume that we already forced the icon to be // white when we created the notification. mIconForceGraysaleWhenDark = mIcon != null && mIcon.getDrawable().getColorFilter() != null; } private ImageView resolveIcon(ImageView largeIcon, ImageView rightIcon) { return largeIcon != null && largeIcon.getBackground() != null ? largeIcon : rightIcon != null && rightIcon.getBackground() != null ? rightIcon : rightIcon != null && rightIcon.getVisibility() == View.VISIBLE ? rightIcon : null; } Loading Loading @@ -118,9 +125,15 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper { if (fade) { fadeIconColorFilter(mIcon, dark, delay); fadeIconAlpha(mIcon, dark, delay); if (!mIconForceGraysaleWhenDark) { fadeGrayscale(mIcon, dark, delay); } } else { updateIconColorFilter(mIcon, dark); updateIconAlpha(mIcon, dark); if (!mIconForceGraysaleWhenDark) { updateGrayscale(mIcon, dark); } } } setPictureGrayscale(dark, fade, delay); Loading Loading @@ -196,8 +209,8 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper { mIconColorFilter.setColor(color); Drawable background = target.getBackground(); // The notification might have been modified during the animation, so background might be // null here. // The background might be null for legacy notifications. Also, the notification might have // been modified during the animation, so background might be null here. if (background != null) { background.mutate().setColorFilter(mIconColorFilter); } Loading