From fc8882f1340055e00f6c21449983e92413045275 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Wed, 18 Mar 2015 17:26:54 -0700 Subject: Clean up ripple exit, null out software animators on cancel/end Bug: 19682421 Change-Id: I40ff56ed98a6c67cd01c74e455899825013a1f12 --- .../android/graphics/drawable/RippleComponent.java | 2 ++ .../android/graphics/drawable/RippleDrawable.java | 27 +++------------------- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/graphics/java/android/graphics/drawable/RippleComponent.java b/graphics/java/android/graphics/drawable/RippleComponent.java index 7976e8285371..0412e3567f72 100644 --- a/graphics/java/android/graphics/drawable/RippleComponent.java +++ b/graphics/java/android/graphics/drawable/RippleComponent.java @@ -193,6 +193,7 @@ abstract class RippleComponent { private void cancelSoftwareAnimations() { if (mSoftwareAnimator != null) { mSoftwareAnimator.cancel(); + mSoftwareAnimator = null; } } @@ -203,6 +204,7 @@ abstract class RippleComponent { private void endSoftwareAnimations() { if (mSoftwareAnimator != null) { mSoftwareAnimator.end(); + mSoftwareAnimator = null; } } diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java index 66160c0107c6..23f93fd3d78e 100644 --- a/graphics/java/android/graphics/drawable/RippleDrawable.java +++ b/graphics/java/android/graphics/drawable/RippleDrawable.java @@ -212,19 +212,12 @@ public class RippleDrawable extends LayerDrawable { } cancelExitingRipples(); - invalidateSelf(); } - private boolean cancelExitingRipples() { - boolean needsDraw = false; - + private void cancelExitingRipples() { final int count = mExitingRipplesCount; final RippleForeground[] ripples = mExitingRipples; for (int i = 0; i < count; i++) { - // If the ripple is animating on the hardware thread, we'll need to - // draw an additional frame after canceling to restore the software - // drawing path. - needsDraw |= ripples[i].isHardwareAnimating(); ripples[i].end(); } @@ -233,21 +226,8 @@ public class RippleDrawable extends LayerDrawable { } mExitingRipplesCount = 0; - return needsDraw; - } - - @Override - public void setAlpha(int alpha) { - super.setAlpha(alpha); - - // TODO: Should we support this? - } - - @Override - public void setColorFilter(ColorFilter colorFilter) { - super.setColorFilter(colorFilter); - - // TODO: Should we support this? + // Always draw an additional "clean" frame after canceling animations. + invalidateSelf(); } @Override @@ -606,7 +586,6 @@ public class RippleDrawable extends LayerDrawable { } cancelExitingRipples(); - invalidateSelf(); } @Override -- cgit v1.2.3-59-g8ed1b