Merge "Don't animate grayscale if animations are off" into oc-dr1-dev

This commit is contained in:
TreeHugger Robot
2017-07-06 15:34:48 +00:00
committed by Android (Google) Code Review

View File

@@ -144,22 +144,26 @@ public class QSIconViewImpl extends QSIconView {
} }
public static void animateGrayScale(int fromColor, int toColor, ImageView iv) { public static void animateGrayScale(int fromColor, int toColor, ImageView iv) {
final float fromAlpha = Color.alpha(fromColor); if (ValueAnimator.areAnimatorsEnabled()) {
final float toAlpha = Color.alpha(toColor); final float fromAlpha = Color.alpha(fromColor);
final float fromChannel = Color.red(fromColor); final float toAlpha = Color.alpha(toColor);
final float toChannel = Color.red(toColor); final float fromChannel = Color.red(fromColor);
final float toChannel = Color.red(toColor);
ValueAnimator anim = ValueAnimator.ofFloat(0, 1); ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
anim.setDuration(QS_ANIM_LENGTH); 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);
anim.addUpdateListener(animation -> { setTint(iv, Color.argb(alpha, channel, channel, channel));
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 {
anim.start(); setTint(iv, toColor);
}
} }
public static void setTint(ImageView iv, int color) { public static void setTint(ImageView iv, int color) {