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

Commit 3635082c authored by Florence Yang's avatar Florence Yang
Browse files

Color Change Animation for AnimatableClockView

Creating a simple color fade animation for when theme or region
sampling changes the color of the clock. This replaces the use of
animateAppearOnLockscreen() for those cases by creating a specific animation that only deals with color.

Fixes: 259282866
Test: manual
Change-Id: I279b5e01025a0f7bf5815599ea786a1ab68c06ef
parent b20b3e30
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -237,6 +237,28 @@ class AnimatableClockView @JvmOverloads constructor(
        this.lockScreenColor = lockScreenColor
    }

    fun animateColorChange() {
        logBuffer?.log(tag, DEBUG, "animateColorChange")
        setTextStyle(
            weight = lockScreenWeight,
            textSize = -1f,
            color = null, /* using current color */
            animate = false,
            duration = 0,
            delay = 0,
            onAnimationEnd = null
        )
        setTextStyle(
            weight = lockScreenWeight,
            textSize = -1f,
            color = lockScreenColor,
            animate = true,
            duration = COLOR_ANIM_DURATION,
            delay = 0,
            onAnimationEnd = null
        )
    }

    fun animateAppearOnLockscreen() {
        logBuffer?.log(tag, DEBUG, "animateAppearOnLockscreen")
        setTextStyle(
@@ -350,6 +372,7 @@ class AnimatableClockView @JvmOverloads constructor(
     *
     * By passing -1 to weight, the view preserves its current weight.
     * By passing -1 to textSize, the view preserves its current text size.
     * By passing null to color, the view preserves its current color.
     *
     * @param weight text weight.
     * @param textSize font size.
@@ -611,6 +634,7 @@ class AnimatableClockView @JvmOverloads constructor(
        private const val APPEAR_ANIM_DURATION: Long = 350
        private const val CHARGE_ANIM_DURATION_PHASE_0: Long = 500
        private const val CHARGE_ANIM_DURATION_PHASE_1: Long = 1000
        private const val COLOR_ANIM_DURATION: Long = 400

        // Constants for the animation
        private val MOVE_INTERPOLATOR = Interpolators.EMPHASIZED
+1 −1
Original line number Diff line number Diff line
@@ -143,7 +143,7 @@ class DefaultClockController(
            currentColor = color
            view.setColors(DOZE_COLOR, color)
            if (!animations.dozeState.isActive) {
                view.animateAppearOnLockscreen()
                view.animateColorChange()
            }
        }
    }