Clear ripple animations on cancel/end This prevents subsequent calls to end() from snapping the background opacity (among others) back to 1. BUG: 17357749 BUG: 17349157 Change-Id: I2a4870ed588ba98986428983bf29b556cdc9a701
diff --git a/graphics/java/android/graphics/drawable/Ripple.java b/graphics/java/android/graphics/drawable/Ripple.java index cd919a6..43922b8 100644 --- a/graphics/java/android/graphics/drawable/Ripple.java +++ b/graphics/java/android/graphics/drawable/Ripple.java
@@ -419,18 +419,22 @@ private void endSoftwareAnimations() { if (mAnimRadius != null) { mAnimRadius.end(); + mAnimRadius = null; } if (mAnimOpacity != null) { mAnimOpacity.end(); + mAnimOpacity = null; } if (mAnimX != null) { mAnimX.end(); + mAnimX = null; } if (mAnimY != null) { mAnimY.end(); + mAnimY = null; } } @@ -506,18 +510,22 @@ private void cancelSoftwareAnimations() { if (mAnimRadius != null) { mAnimRadius.cancel(); + mAnimRadius = null; } if (mAnimOpacity != null) { mAnimOpacity.cancel(); + mAnimOpacity = null; } if (mAnimX != null) { mAnimX.cancel(); + mAnimX = null; } if (mAnimY != null) { mAnimY.cancel(); + mAnimY = null; } }
diff --git a/graphics/java/android/graphics/drawable/RippleBackground.java b/graphics/java/android/graphics/drawable/RippleBackground.java index 4e68a60..80ecea3 100644 --- a/graphics/java/android/graphics/drawable/RippleBackground.java +++ b/graphics/java/android/graphics/drawable/RippleBackground.java
@@ -326,6 +326,7 @@ private void endSoftwareAnimations() { if (mAnimOuterOpacity != null) { mAnimOuterOpacity.end(); + mAnimOuterOpacity = null; } } @@ -413,6 +414,7 @@ private void cancelSoftwareAnimations() { if (mAnimOuterOpacity != null) { mAnimOuterOpacity.cancel(); + mAnimOuterOpacity = null; } }