summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/java/android/graphics/drawable/RippleDrawable.java21
-rw-r--r--graphics/java/android/graphics/drawable/RippleForeground.java4
2 files changed, 13 insertions, 12 deletions
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java
index bfa6ce5d36c5..74cad1aaa057 100644
--- a/graphics/java/android/graphics/drawable/RippleDrawable.java
+++ b/graphics/java/android/graphics/drawable/RippleDrawable.java
@@ -881,7 +881,7 @@ public class RippleDrawable extends LayerDrawable {
mAddRipple = false;
if (mRunningAnimations.size() > 0 && !addRipple) {
// update paint when view is invalidated
- getRipplePaint();
+ updateRipplePaint();
}
drawContent(canvas);
drawPatternedBackground(canvas, cx, cy);
@@ -940,7 +940,7 @@ public class RippleDrawable extends LayerDrawable {
startBackgroundAnimation();
}
if (mBackgroundOpacity == 0) return;
- Paint p = getRipplePaint();
+ Paint p = updateRipplePaint();
float newOpacity = mBackgroundOpacity;
final int origAlpha = p.getAlpha();
final int alpha = Math.min((int) (origAlpha * newOpacity + 0.5f), 255);
@@ -968,7 +968,7 @@ public class RippleDrawable extends LayerDrawable {
@NonNull
private RippleAnimationSession.AnimationProperties<Float, Paint> createAnimationProperties(
float x, float y, float cx, float cy, float w, float h) {
- Paint p = new Paint(getRipplePaint());
+ Paint p = new Paint(updateRipplePaint());
float radius = getComputedRadius();
RippleAnimationSession.AnimationProperties<Float, Paint> properties;
RippleShader shader = new RippleShader();
@@ -1108,11 +1108,6 @@ public class RippleDrawable extends LayerDrawable {
drawContent(mMaskCanvas);
}
mMaskCanvas.restoreToCount(saveCount);
- if (mState.mRippleStyle == STYLE_PATTERNED) {
- for (int i = 0; i < mRunningAnimations.size(); i++) {
- mRunningAnimations.get(i).getProperties().getShader().setShader(mMaskShader);
- }
- }
}
private int getMaskType() {
@@ -1169,7 +1164,7 @@ public class RippleDrawable extends LayerDrawable {
final float y = mHotspotBounds.exactCenterY();
canvas.translate(x, y);
- final Paint p = getRipplePaint();
+ final Paint p = updateRipplePaint();
if (background != null && background.isVisible()) {
background.draw(canvas, p);
@@ -1194,7 +1189,7 @@ public class RippleDrawable extends LayerDrawable {
}
@UnsupportedAppUsage
- Paint getRipplePaint() {
+ Paint updateRipplePaint() {
if (mRipplePaint == null) {
mRipplePaint = new Paint();
mRipplePaint.setAntiAlias(true);
@@ -1215,6 +1210,12 @@ public class RippleDrawable extends LayerDrawable {
mMaskMatrix.setTranslate(bounds.left - x, bounds.top - y);
}
mMaskShader.setLocalMatrix(mMaskMatrix);
+
+ if (mState.mRippleStyle == STYLE_PATTERNED) {
+ for (int i = 0; i < mRunningAnimations.size(); i++) {
+ mRunningAnimations.get(i).getProperties().getShader().setShader(mMaskShader);
+ }
+ }
}
// Grab the color for the current state and cut the alpha channel in
diff --git a/graphics/java/android/graphics/drawable/RippleForeground.java b/graphics/java/android/graphics/drawable/RippleForeground.java
index 0f376957c8ff..1655fba93878 100644
--- a/graphics/java/android/graphics/drawable/RippleForeground.java
+++ b/graphics/java/android/graphics/drawable/RippleForeground.java
@@ -252,7 +252,7 @@ class RippleForeground extends RippleComponent {
mPropX = CanvasProperty.createFloat(getCurrentX());
mPropY = CanvasProperty.createFloat(getCurrentY());
mPropRadius = CanvasProperty.createFloat(getCurrentRadius());
- final Paint paint = mOwner.getRipplePaint();
+ final Paint paint = mOwner.updateRipplePaint();
mPropPaint = CanvasProperty.createPaint(paint);
final RenderNodeAnimator radius = new RenderNodeAnimator(mPropRadius, mTargetRadius);
@@ -290,7 +290,7 @@ class RippleForeground extends RippleComponent {
opacity.setInterpolator(LINEAR_INTERPOLATOR);
opacity.addListener(mAnimationListener);
opacity.setStartDelay(computeFadeOutDelay());
- opacity.setStartValue(mOwner.getRipplePaint().getAlpha());
+ opacity.setStartValue(mOwner.updateRipplePaint().getAlpha());
mPendingHwAnimators.add(opacity);
invalidateSelf();
}