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
This commit is contained in:
Florence Yang
2022-11-23 00:43:47 +00:00
parent b20b3e3024
commit 3635082c95
2 changed files with 25 additions and 1 deletions

View File

@@ -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

View File

@@ -143,7 +143,7 @@ class DefaultClockController(
currentColor = color
view.setColors(DOZE_COLOR, color)
if (!animations.dozeState.isActive) {
view.animateAppearOnLockscreen()
view.animateColorChange()
}
}
}