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;
}
}