summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2021-06-16 15:48:33 -0400
committerJohn Reck <jreck@google.com>2021-06-16 15:48:33 -0400
commit85933d4c5585ce09d2c0f2617efed2c7f1f7be22 (patch)
treeb04c7247d63624af269af36e9ab05d604323e01b /graphics
parente6eed176fc5759ffa96dceacc6124d5cbda75770 (diff)
Fix ripples not going away
Fixes: 191141356 Test: ripples on calculator Change-Id: Icabf80914c5ba9c0649e69ef0fa67c03d6ad5cdd
Diffstat (limited to 'graphics')
-rw-r--r--graphics/java/android/graphics/drawable/RippleDrawable.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java
index fe80b5845bf5..1651a8cdcad5 100644
--- a/graphics/java/android/graphics/drawable/RippleDrawable.java
+++ b/graphics/java/android/graphics/drawable/RippleDrawable.java
@@ -221,6 +221,7 @@ public class RippleDrawable extends LayerDrawable {
private boolean mForceSoftware;
// Patterned
+ private boolean mAddRipple = false;
private float mTargetBackgroundOpacity;
private ValueAnimator mBackgroundAnimation;
private float mBackgroundOpacity;
@@ -716,6 +717,7 @@ public class RippleDrawable extends LayerDrawable {
}
cancelExitingRipples();
+ exitPatternedAnimation();
}
@Override
@@ -807,7 +809,7 @@ public class RippleDrawable extends LayerDrawable {
}
private void startPatternedAnimation() {
- mRippleActive = true;
+ mAddRipple = true;
invalidateSelf(false);
}
@@ -862,17 +864,17 @@ public class RippleDrawable extends LayerDrawable {
h = bounds.height();
w = bounds.width();
}
- boolean shouldAnimate = mRippleActive;
+ boolean addRipple = mAddRipple;
boolean shouldExit = mExitingAnimation;
- mRippleActive = false;
mExitingAnimation = false;
- if (mRunningAnimations.size() > 0 && !shouldAnimate) {
+ mAddRipple = false;
+ if (mRunningAnimations.size() > 0 && !addRipple) {
// update paint when view is invalidated
getRipplePaint();
}
drawContent(canvas);
drawPatternedBackground(canvas, cx, cy);
- if (shouldAnimate && mRunningAnimations.size() <= MAX_RIPPLES) {
+ if (addRipple && mRunningAnimations.size() <= MAX_RIPPLES) {
RippleAnimationSession.AnimationProperties<Float, Paint> properties =
createAnimationProperties(x, y, cx, cy, w, h);
mRunningAnimations.add(new RippleAnimationSession(properties, !useCanvasProps)