OSDN Git Service

Fixes volume dialog in dark mode.
authorGus Prevas <kprevas@google.com>
Wed, 17 Oct 2018 20:18:43 +0000 (16:18 -0400)
committerGus Prevas <kprevas@google.com>
Wed, 17 Oct 2018 20:18:43 +0000 (16:18 -0400)
This change removes the caching of color values in VolumeDialogImpl such
that the dialog will change its colors correctly when dark mode is
toggled.

Change-Id: I241edc284a33f60e60ec5e54f2e4d6bb0a0eadfd
Fixes: 116860768
Test: manually

packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java

index 4810b0b..a60e416 100644 (file)
@@ -135,10 +135,6 @@ public class VolumeDialogImpl implements VolumeDialog {
     private final AccessibilityManagerWrapper mAccessibilityMgr;
     private final Object mSafetyWarningLock = new Object();
     private final Accessibility mAccessibility = new Accessibility();
-    private ColorStateList mActiveTint;
-    private int mActiveAlpha;
-    private ColorStateList mInactiveTint;
-    private int mInactiveAlpha;
 
     private boolean mShowing;
     private boolean mShowA11yStream;
@@ -238,11 +234,6 @@ public class VolumeDialogImpl implements VolumeDialog {
         lp.gravity = ((FrameLayout.LayoutParams) mDialogView.getLayoutParams()).gravity;
         mWindow.setAttributes(lp);
 
-        mActiveTint = Utils.getColorAccent(mContext);
-        mActiveAlpha = Color.alpha(mActiveTint.getDefaultColor());
-        mInactiveTint = Utils.getColorAttr(mContext, android.R.attr.colorForeground);
-        mInactiveAlpha = getAlphaAttr(android.R.attr.secondaryContentAlpha);
-
         mDialogRowsView = mDialog.findViewById(R.id.volume_dialog_rows);
         mRinger = mDialog.findViewById(R.id.ringer);
         if (mRinger != null) {
@@ -941,8 +932,12 @@ public class VolumeDialogImpl implements VolumeDialog {
             row.slider.requestFocus();
         }
         boolean useActiveColoring = isActive && row.slider.isEnabled();
-        final ColorStateList tint = useActiveColoring ? mActiveTint : mInactiveTint;
-        final int alpha = useActiveColoring ? mActiveAlpha : mInactiveAlpha;
+        final ColorStateList tint = useActiveColoring
+                ? Utils.getColorAccent(mContext)
+                : Utils.getColorAttr(mContext, android.R.attr.colorForeground);
+        final int alpha = useActiveColoring
+                ? Color.alpha(tint.getDefaultColor())
+                : getAlphaAttr(android.R.attr.secondaryContentAlpha);
         if (tint == row.cachedTint) return;
         row.slider.setProgressTintList(tint);
         row.slider.setThumbTintList(tint);