From 7b08444096e6344b9a1c5c888580251b2444c5ab Mon Sep 17 00:00:00 2001 From: Jay Aliomer Date: Tue, 17 Jan 2023 18:07:15 +0000 Subject: [PATCH] Remove alpha clamping from ripple drawable Bug: 261482468 Test: manual testing with the settings app Change-Id: I9b2b00d5ed5d8283e6698d397fb2736cb7a9bb09 --- core/res/res/values/colors_material.xml | 4 ++-- .../android/graphics/drawable/RippleDrawable.java | 14 +++----------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/core/res/res/values/colors_material.xml b/core/res/res/values/colors_material.xml index ea6e1f182fbff..a99ba152510e9 100644 --- a/core/res/res/values/colors_material.xml +++ b/core/res/res/values/colors_material.xml @@ -72,8 +72,8 @@ .7 0.60 - 0.10 - 0.10 + 0.5 + 0.5 0.10 diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java index 417a27d0f5061..7e2cac15f672d 100644 --- a/graphics/java/android/graphics/drawable/RippleDrawable.java +++ b/graphics/java/android/graphics/drawable/RippleDrawable.java @@ -23,7 +23,6 @@ import static java.lang.annotation.ElementType.PARAMETER; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.animation.ValueAnimator; -import android.annotation.ColorInt; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -983,9 +982,9 @@ public class RippleDrawable extends LayerDrawable { RippleShader shader = new RippleShader(); // Grab the color for the current state and cut the alpha channel in // half so that the ripple and background together yield full alpha. - final int color = clampAlpha(mMaskColorFilter == null + final int color = mMaskColorFilter == null ? mState.mColor.getColorForState(getState(), Color.BLACK) - : mMaskColorFilter.getColor()); + : mMaskColorFilter.getColor(); final int effectColor = mState.mEffectColor.getColorForState(getState(), Color.MAGENTA); final float noisePhase = AnimationUtils.currentAnimationTimeMillis(); shader.setColor(color, effectColor); @@ -1008,13 +1007,6 @@ public class RippleDrawable extends LayerDrawable { return properties; } - private int clampAlpha(@ColorInt int color) { - if (Color.alpha(color) < 128) { - return (color & 0x00FFFFFF) | 0x80000000; - } - return color; - } - @Override public void invalidateSelf() { invalidateSelf(true); @@ -1229,7 +1221,7 @@ public class RippleDrawable extends LayerDrawable { // Grab the color for the current state and cut the alpha channel in // half so that the ripple and background together yield full alpha. - final int color = clampAlpha(mState.mColor.getColorForState(getState(), Color.BLACK)); + final int color = mState.mColor.getColorForState(getState(), Color.BLACK); final Paint p = mRipplePaint; if (mMaskColorFilter != null) {