From 5121e27f8933114faca2b6c6817e11ae2577c951 Mon Sep 17 00:00:00 2001 From: Jay Aliomer Date: Wed, 5 May 2021 15:39:48 -0400 Subject: [PATCH] Update ripple mask when invalidated When a child drawable is updated, the invalidated mask needs to reflect on the animation paint Fixes: 187290156 Test: visual Change-Id: I30065027f73f646c887933648d8e296ec651c299 --- graphics/java/android/graphics/drawable/RippleDrawable.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java index 24d7780f54735..75f8a9eabb7a5 100644 --- a/graphics/java/android/graphics/drawable/RippleDrawable.java +++ b/graphics/java/android/graphics/drawable/RippleDrawable.java @@ -864,6 +864,10 @@ public class RippleDrawable extends LayerDrawable { boolean shouldExit = mExitingAnimation; mRippleActive = false; mExitingAnimation = false; + if (mRunningAnimations.size() > 0 && !shouldAnimate) { + // update paint when view is invalidated + getRipplePaint(); + } drawContent(canvas); drawPatternedBackground(canvas, cx, cy); if (shouldAnimate && mRunningAnimations.size() <= MAX_RIPPLES) {