OSDN Git Service

Don't animate grayscale if animations are off
authorEvan Laird <evanlaird@google.com>
Wed, 5 Jul 2017 21:10:04 +0000 (17:10 -0400)
committerEvan Laird <evanlaird@google.com>
Wed, 5 Jul 2017 21:10:04 +0000 (17:10 -0400)
Just set the final color instantly on QS icons if animations are off
(battery save mode).

Change-Id: I55a5bd6bab412b9b6a62d32b21adbf7d39cc9e72
Fixes: 62508363
Test: visual

packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java

index cdd0ebc..6659650 100644 (file)
@@ -144,22 +144,26 @@ public class QSIconViewImpl extends QSIconView {
     }
 
     public static void animateGrayScale(int fromColor, int toColor, ImageView iv) {
-        final float fromAlpha = Color.alpha(fromColor);
-        final float toAlpha = Color.alpha(toColor);
-        final float fromChannel = Color.red(fromColor);
-        final float toChannel = Color.red(toColor);
-
-        ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
-        anim.setDuration(QS_ANIM_LENGTH);
-
-        anim.addUpdateListener(animation -> {
-            float fraction = animation.getAnimatedFraction();
-            int alpha = (int) (fromAlpha + (toAlpha - fromAlpha) * fraction);
-            int channel = (int) (fromChannel + (toChannel - fromChannel) * fraction);
-
-            setTint(iv, Color.argb(alpha, channel, channel, channel));
-        });
-        anim.start();
+        if (ValueAnimator.areAnimatorsEnabled()) {
+            final float fromAlpha = Color.alpha(fromColor);
+            final float toAlpha = Color.alpha(toColor);
+            final float fromChannel = Color.red(fromColor);
+            final float toChannel = Color.red(toColor);
+
+            ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
+            anim.setDuration(QS_ANIM_LENGTH);
+            anim.addUpdateListener(animation -> {
+                float fraction = animation.getAnimatedFraction();
+                int alpha = (int) (fromAlpha + (toAlpha - fromAlpha) * fraction);
+                int channel = (int) (fromChannel + (toChannel - fromChannel) * fraction);
+
+                setTint(iv, Color.argb(alpha, channel, channel, channel));
+            });
+
+            anim.start();
+        } else {
+            setTint(iv, toColor);
+        }
     }
 
     public static void setTint(ImageView iv, int color) {