Merge "Fix ripple alpha." into tm-qpr-dev am: a0833fb1d0
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19768872 Change-Id: I96228369213b1856fd05684deaf7f678c6ca3f18 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -200,8 +200,7 @@ class WiredChargingRippleController @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateRippleColor() {
|
private fun updateRippleColor() {
|
||||||
rippleView.setColor(
|
rippleView.setColor(Utils.getColorAttr(context, android.R.attr.colorAccent).defaultColor)
|
||||||
Utils.getColorAttr(context, android.R.attr.colorAccent).defaultColor)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ChargingRippleCommand : Command {
|
inner class ChargingRippleCommand : Command {
|
||||||
|
|||||||
@@ -30,13 +30,12 @@ import android.widget.FrameLayout;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.core.graphics.ColorUtils;
|
|
||||||
|
|
||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.animation.Interpolators;
|
import com.android.systemui.animation.Interpolators;
|
||||||
import com.android.systemui.ripple.RippleShader.RippleShape;
|
import com.android.systemui.ripple.RippleShader.RippleShape;
|
||||||
import com.android.systemui.ripple.RippleView;
|
import com.android.systemui.ripple.RippleView;
|
||||||
|
import com.android.systemui.ripple.RippleViewKt;
|
||||||
|
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
|
|
||||||
@@ -143,16 +142,15 @@ final class WirelessChargingLayout extends FrameLayout {
|
|||||||
|
|
||||||
mRippleView = findViewById(R.id.wireless_charging_ripple);
|
mRippleView = findViewById(R.id.wireless_charging_ripple);
|
||||||
mRippleView.setupShader(rippleShape);
|
mRippleView.setupShader(rippleShape);
|
||||||
|
int color = Utils.getColorAttr(mRippleView.getContext(),
|
||||||
|
android.R.attr.colorAccent).getDefaultColor();
|
||||||
if (mRippleView.getRippleShape() == RippleShape.ROUNDED_BOX) {
|
if (mRippleView.getRippleShape() == RippleShape.ROUNDED_BOX) {
|
||||||
mRippleView.setDuration(ROUNDED_BOX_RIPPLE_ANIMATION_DURATION);
|
mRippleView.setDuration(ROUNDED_BOX_RIPPLE_ANIMATION_DURATION);
|
||||||
mRippleView.setSparkleStrength(0.22f);
|
mRippleView.setSparkleStrength(0.22f);
|
||||||
int color = Utils.getColorAttr(mRippleView.getContext(),
|
mRippleView.setColor(color, 28);
|
||||||
android.R.attr.colorAccent).getDefaultColor();
|
|
||||||
mRippleView.setColor(ColorUtils.setAlphaComponent(color, 28));
|
|
||||||
} else {
|
} else {
|
||||||
mRippleView.setDuration(CIRCLE_RIPPLE_ANIMATION_DURATION);
|
mRippleView.setDuration(CIRCLE_RIPPLE_ANIMATION_DURATION);
|
||||||
mRippleView.setColor(Utils.getColorAttr(mRippleView.getContext(),
|
mRippleView.setColor(color, RippleViewKt.RIPPLE_DEFAULT_ALPHA);
|
||||||
android.R.attr.colorAccent).getDefaultColor());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OnAttachStateChangeListener listener = new OnAttachStateChangeListener() {
|
OnAttachStateChangeListener listener = new OnAttachStateChangeListener() {
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import android.view.View
|
|||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.view.accessibility.AccessibilityManager
|
import android.view.accessibility.AccessibilityManager
|
||||||
import androidx.core.graphics.ColorUtils
|
|
||||||
import com.android.settingslib.Utils
|
import com.android.settingslib.Utils
|
||||||
import com.android.systemui.R
|
import com.android.systemui.R
|
||||||
import com.android.systemui.dagger.SysUISingleton
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
@@ -209,8 +208,7 @@ class MediaTttChipControllerReceiver @Inject constructor(
|
|||||||
// Center the ripple on the bottom of the screen in the middle.
|
// Center the ripple on the bottom of the screen in the middle.
|
||||||
rippleView.setCenter(width * 0.5f, height.toFloat())
|
rippleView.setCenter(width * 0.5f, height.toFloat())
|
||||||
val color = Utils.getColorAttrDefaultColor(context, R.attr.wallpaperTextColorAccent)
|
val color = Utils.getColorAttrDefaultColor(context, R.attr.wallpaperTextColorAccent)
|
||||||
val colorWithAlpha = ColorUtils.setAlphaComponent(color, 70)
|
rippleView.setColor(color, 70)
|
||||||
rippleView.setColor(colorWithAlpha)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class RippleShader internal constructor(rippleShape: RippleShape = RippleShape.C
|
|||||||
float rippleInsideAlpha = (1.-inside) * in_fadeFill;
|
float rippleInsideAlpha = (1.-inside) * in_fadeFill;
|
||||||
float rippleRingAlpha = (1.-sparkleRing) * in_fadeRing;
|
float rippleRingAlpha = (1.-sparkleRing) * in_fadeRing;
|
||||||
float rippleAlpha = max(rippleInsideAlpha, rippleRingAlpha) * in_color.a;
|
float rippleAlpha = max(rippleInsideAlpha, rippleRingAlpha) * in_color.a;
|
||||||
vec4 ripple = in_color * rippleAlpha;
|
vec4 ripple = vec4(in_color.rgb, 1.0) * rippleAlpha;
|
||||||
return mix(ripple, vec4(sparkle), sparkle * in_sparkle_strength);
|
return mix(ripple, vec4(sparkle), sparkle * in_sparkle_strength);
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
@@ -84,7 +84,7 @@ class RippleShader internal constructor(rippleShape: RippleShape = RippleShape.C
|
|||||||
float rippleInsideAlpha = (1.-inside) * in_fadeFill;
|
float rippleInsideAlpha = (1.-inside) * in_fadeFill;
|
||||||
float rippleRingAlpha = (1.-sparkleRing) * in_fadeRing;
|
float rippleRingAlpha = (1.-sparkleRing) * in_fadeRing;
|
||||||
float rippleAlpha = max(rippleInsideAlpha, rippleRingAlpha) * in_color.a;
|
float rippleAlpha = max(rippleInsideAlpha, rippleRingAlpha) * in_color.a;
|
||||||
vec4 ripple = in_color * rippleAlpha;
|
vec4 ripple = vec4(in_color.rgb, 1.0) * rippleAlpha;
|
||||||
return mix(ripple, vec4(sparkle), sparkle * in_sparkle_strength);
|
return mix(ripple, vec4(sparkle), sparkle * in_sparkle_strength);
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
@@ -100,7 +100,7 @@ class RippleShader internal constructor(rippleShape: RippleShape = RippleShape.C
|
|||||||
float rippleInsideAlpha = (1.-inside) * in_fadeFill;
|
float rippleInsideAlpha = (1.-inside) * in_fadeFill;
|
||||||
float rippleRingAlpha = (1.-sparkleRing) * in_fadeRing;
|
float rippleRingAlpha = (1.-sparkleRing) * in_fadeRing;
|
||||||
float rippleAlpha = max(rippleInsideAlpha, rippleRingAlpha) * in_color.a;
|
float rippleAlpha = max(rippleInsideAlpha, rippleRingAlpha) * in_color.a;
|
||||||
vec4 ripple = in_color * rippleAlpha;
|
vec4 ripple = vec4(in_color.rgb, 1.0) * rippleAlpha;
|
||||||
return mix(ripple, vec4(sparkle), sparkle * in_sparkle_strength);
|
return mix(ripple, vec4(sparkle), sparkle * in_sparkle_strength);
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -25,10 +25,12 @@ import android.graphics.Canvas
|
|||||||
import android.graphics.Paint
|
import android.graphics.Paint
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import androidx.core.graphics.ColorUtils
|
||||||
import com.android.systemui.ripple.RippleShader.RippleShape
|
import com.android.systemui.ripple.RippleShader.RippleShape
|
||||||
|
|
||||||
private const val RIPPLE_SPARKLE_STRENGTH: Float = 0.3f
|
private const val RIPPLE_SPARKLE_STRENGTH: Float = 0.3f
|
||||||
private const val RIPPLE_DEFAULT_COLOR: Int = 0xffffffff.toInt()
|
private const val RIPPLE_DEFAULT_COLOR: Int = 0xffffffff.toInt()
|
||||||
|
const val RIPPLE_DEFAULT_ALPHA: Int = 45
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A generic expanding ripple effect.
|
* A generic expanding ripple effect.
|
||||||
@@ -111,9 +113,12 @@ open class RippleView(context: Context?, attrs: AttributeSet?) : View(context, a
|
|||||||
rippleInProgress = true
|
rippleInProgress = true
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set the color to be used for the ripple. */
|
/** Set the color to be used for the ripple.
|
||||||
fun setColor(color: Int) {
|
*
|
||||||
rippleShader.color = color
|
* The alpha value of the color will be applied to the ripple. The alpha range is [0-100].
|
||||||
|
*/
|
||||||
|
fun setColor(color: Int, alpha: Int = RIPPLE_DEFAULT_ALPHA) {
|
||||||
|
rippleShader.color = ColorUtils.setAlphaComponent(color, alpha)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -107,11 +107,11 @@ class WiredChargingRippleControllerTest : SysuiTestCase() {
|
|||||||
|
|
||||||
reset(rippleView)
|
reset(rippleView)
|
||||||
captor.value.onThemeChanged()
|
captor.value.onThemeChanged()
|
||||||
verify(rippleView).setColor(ArgumentMatchers.anyInt())
|
verify(rippleView).setColor(ArgumentMatchers.anyInt(), ArgumentMatchers.anyInt())
|
||||||
|
|
||||||
reset(rippleView)
|
reset(rippleView)
|
||||||
captor.value.onUiModeChanged()
|
captor.value.onUiModeChanged()
|
||||||
verify(rippleView).setColor(ArgumentMatchers.anyInt())
|
verify(rippleView).setColor(ArgumentMatchers.anyInt(), ArgumentMatchers.anyInt())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user