diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java index 1a47e4428e490..89694b33e0353 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java @@ -601,7 +601,8 @@ public class StatusBarIconView extends AnimatedImageView { } private void updateContrastedStaticColor() { - if (mCachedContrastBackgroundColor == NO_COLOR) { + if (Color.alpha(mCachedContrastBackgroundColor) != 255) { + mContrastedDrawableColor = mDrawableColor; return; } // We'll modify the color if it doesn't pass GAR diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java index 8e7ffdfd4b475..7b2071ca14fd6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java @@ -116,5 +116,10 @@ public class StatusBarIconViewTest extends SysuiTestCase { color = mIconView.getContrastedStaticDrawableColor(Color.WHITE); assertTrue("Similar colors should be shifted to satisfy contrast", NotificationColorUtil.satisfiesTextContrast(Color.WHITE, color)); + + mIconView.setStaticDrawableColor(Color.GREEN); + color = mIconView.getContrastedStaticDrawableColor(0xcc000000); + assertEquals("Transparent backgrounds should fallback to drawable color", + color, mIconView.getStaticDrawableColor()); } } \ No newline at end of file