diff options
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/java/android/graphics/drawable/RippleDrawable.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java index 9d7a8b6..543f4fb 100644 --- a/graphics/java/android/graphics/drawable/RippleDrawable.java +++ b/graphics/java/android/graphics/drawable/RippleDrawable.java @@ -441,8 +441,11 @@ public class RippleDrawable extends LayerDrawable { final int count = mAnimatingRipplesCount; final Ripple[] ripples = mAnimatingRipples; for (int i = 0; i < count; i++) { - ripples[i].cancel(); + // Calling cancel may remove the ripple from the animating ripple + // array, so cache the reference before nulling it out. + final Ripple ripple = ripples[i]; ripples[i] = null; + ripple.cancel(); } mAnimatingRipplesCount = 0; |