Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4dbc9af3 authored by Yein Jo's avatar Yein Jo Committed by Automerger Merge Worker
Browse files

Merge "Remove rippleFill from RippleShader (last one)." into tm-qpr-dev am: b488504c

parents bcddc50a b488504c
Loading
Loading
Loading
Loading
+23 −6
Original line number Diff line number Diff line
@@ -66,11 +66,28 @@ class RippleAnimation(private val config: RippleAnimationConfig) {
    fun isPlaying(): Boolean = animator.isRunning

    private fun applyConfigToShader() {
        rippleShader.setCenter(config.centerX, config.centerY)
        rippleShader.setMaxSize(config.maxWidth, config.maxHeight)
        rippleShader.rippleFill = config.shouldFillRipple
        rippleShader.pixelDensity = config.pixelDensity
        rippleShader.color = ColorUtils.setAlphaComponent(config.color, config.opacity)
        rippleShader.sparkleStrength = config.sparkleStrength
        with(rippleShader) {
            setCenter(config.centerX, config.centerY)
            setMaxSize(config.maxWidth, config.maxHeight)
            pixelDensity = config.pixelDensity
            color = ColorUtils.setAlphaComponent(config.color, config.opacity)
            sparkleStrength = config.sparkleStrength

            assignFadeParams(baseRingFadeParams, config.baseRingFadeParams)
            assignFadeParams(sparkleRingFadeParams, config.sparkleRingFadeParams)
            assignFadeParams(centerFillFadeParams, config.centerFillFadeParams)
        }
    }

    private fun assignFadeParams(
        destFadeParams: RippleShader.FadeParams,
        srcFadeParams: RippleShader.FadeParams?
    ) {
        srcFadeParams?.let {
            destFadeParams.fadeInStart = it.fadeInStart
            destFadeParams.fadeInEnd = it.fadeInEnd
            destFadeParams.fadeOutStart = it.fadeOutStart
            destFadeParams.fadeOutEnd = it.fadeOutEnd
        }
    }
}
+4 −1
Original line number Diff line number Diff line
@@ -20,8 +20,11 @@ data class RippleAnimationConfig(
    val pixelDensity: Float = 1f,
    var color: Int = Color.WHITE,
    val opacity: Int = RIPPLE_DEFAULT_ALPHA,
    val shouldFillRipple: Boolean = false,
    val sparkleStrength: Float = RIPPLE_SPARKLE_STRENGTH,
    // Null means it uses default fade parameter values.
    val baseRingFadeParams: RippleShader.FadeParams? = null,
    val sparkleRingFadeParams: RippleShader.FadeParams? = null,
    val centerFillFadeParams: RippleShader.FadeParams? = null,
    val shouldDistort: Boolean = true
) {
    companion object {
+1 −38
Original line number Diff line number Diff line
@@ -270,38 +270,6 @@ class RippleShader(rippleShape: RippleShape = RippleShape.CIRCLE) :
    var currentHeight: Float = 0f
        private set

    /**
     * True if the ripple should stayed filled in as it expands to give a filled-in circle effect.
     * False for a ring effect.
     *
     * <p>You must reset fade params after changing this.
     *
     * TODO(b/265326983): Remove this and only expose fade params.
     */
    var rippleFill: Boolean = false
        set(value) {
            if (value) {
                baseRingFadeParams.fadeOutStart = 1f
                baseRingFadeParams.fadeOutEnd = 1f

                centerFillFadeParams.fadeInStart = 0f
                centerFillFadeParams.fadeInEnd = 0f
                centerFillFadeParams.fadeOutStart = 1f
                centerFillFadeParams.fadeOutEnd = 1f
            } else {
                // Set back to the original fade parameters.
                // Ideally this should be set by the client as they know the initial value.
                baseRingFadeParams.fadeOutStart = DEFAULT_BASE_RING_FADE_OUT_START
                baseRingFadeParams.fadeOutEnd = DEFAULT_FADE_OUT_END

                centerFillFadeParams.fadeInStart = DEFAULT_FADE_IN_START
                centerFillFadeParams.fadeInEnd = DEFAULT_CENTER_FILL_FADE_IN_END
                centerFillFadeParams.fadeOutStart = DEFAULT_CENTER_FILL_FADE_OUT_START
                centerFillFadeParams.fadeOutEnd = DEFAULT_CENTER_FILL_FADE_OUT_END
            }
            field = value
        }

    /** Parameters that are used to fade in/ out of the sparkle ring. */
    val sparkleRingFadeParams =
        FadeParams(
@@ -324,12 +292,7 @@ class RippleShader(rippleShape: RippleShape = RippleShape.CIRCLE) :
            DEFAULT_FADE_OUT_END
        )

    /**
     * Parameters that are used to fade in/ out of the center fill.
     *
     * <p>Note that if [rippleFill] is set to true, those will be ignored and the center fill will
     * be always full alpha.
     */
    /** Parameters that are used to fade in/ out of the center fill. */
    val centerFillFadeParams =
        FadeParams(
            DEFAULT_FADE_IN_START,
+3 −1
Original line number Diff line number Diff line
@@ -1136,8 +1136,10 @@ public class MediaControlPanel {
                        /* pixelDensity= */ getContext().getResources().getDisplayMetrics().density,
                        mColorSchemeTransition.getAccentPrimary().getCurrentColor(),
                        /* opacity= */ 100,
                        /* shouldFillRipple= */ false,
                        /* sparkleStrength= */ 0f,
                        /* baseRingFadeParams= */ null,
                        /* sparkleRingFadeParams= */ null,
                        /* centerFillFadeParams= */ null,
                        /* shouldDistort= */ false
                )
        );
+24 −2
Original line number Diff line number Diff line
@@ -42,13 +42,35 @@ class RippleAnimationTest : SysuiTestCase() {
                pixelDensity = 2f,
                color = Color.RED,
                opacity = 30,
                shouldFillRipple = true,
                baseRingFadeParams =
                    RippleShader.FadeParams(
                        fadeInStart = 0f,
                        fadeInEnd = 0.3f,
                        fadeOutStart = 0.5f,
                        fadeOutEnd = 1f
                    ),
                sparkleRingFadeParams =
                    RippleShader.FadeParams(
                        fadeInStart = 0.1f,
                        fadeInEnd = 0.2f,
                        fadeOutStart = 0.7f,
                        fadeOutEnd = 0.9f
                    ),
                centerFillFadeParams =
                    RippleShader.FadeParams(
                        fadeInStart = 0f,
                        fadeInEnd = 0.1f,
                        fadeOutStart = 0.2f,
                        fadeOutEnd = 0.3f
                    ),
                sparkleStrength = 0.3f
            )
        val rippleAnimation = RippleAnimation(config)

        with(rippleAnimation.rippleShader) {
            assertThat(rippleFill).isEqualTo(config.shouldFillRipple)
            assertThat(baseRingFadeParams).isEqualTo(config.baseRingFadeParams)
            assertThat(sparkleRingFadeParams).isEqualTo(config.sparkleRingFadeParams)
            assertThat(centerFillFadeParams).isEqualTo(config.centerFillFadeParams)
            assertThat(pixelDensity).isEqualTo(config.pixelDensity)
            assertThat(color).isEqualTo(ColorUtils.setAlphaComponent(config.color, config.opacity))
            assertThat(sparkleStrength).isEqualTo(config.sparkleStrength)