Changes to plugin events to better match AnimatableClockView

Bug: 229771520
Test: Interface change, no test
Change-Id: Id25a9efc4bb2410f03634b8f8ab3ed301af07bf9
(cherry picked from commit 12e7465fe2)
Merged-In: Id25a9efc4bb2410f03634b8f8ab3ed301af07bf9
This commit is contained in:
Hawkwood Glazier
2022-05-27 15:30:55 +00:00
parent 842e2c7ab1
commit 9ccf492ff7

View File

@@ -13,11 +13,14 @@
*/
package com.android.systemui.shared.clocks
import com.android.systemui.plugins.Plugin
import com.android.systemui.plugins.annotations.ProvidesInterface
import android.annotation.FloatRange
import android.graphics.drawable.Drawable
import android.view.View
import com.android.internal.colorextraction.ColorExtractor
import com.android.systemui.plugins.Plugin
import com.android.systemui.plugins.annotations.ProvidesInterface
import java.io.PrintWriter
import java.util.Locale
import java.util.TimeZone
/** Identifies a clock design */
typealias ClockId = String
@@ -51,15 +54,57 @@ interface Clock {
/** A large version of the clock, appropriate when a bigger viewport is available */
val largeClock: View
/** Callback to update the clock view to the current time */
/** Events that clocks may need to respond to */
val events: ClockEvents
/** Triggers for various animations */
val animation: ClockAnimation
/** Optional method for dumping debug information */
fun dump(pw: PrintWriter) { }
}
/** Events that should call when various rendering parameters change */
interface ClockEvents {
/** Call every time tick */
fun onTimeTick()
/** Sets the level of the AOD transition */
fun setAodFraction(@FloatRange(from = 0.0, to = 1.0) fraction: Float)
/** Call whenever timezone changes */
fun onTimeZoneChanged(timeZone: TimeZone) { }
/** Call whenever the text time format changes (12hr vs 24hr) */
fun onTimeFormatChanged(is24Hr: Boolean) { }
/** Call whenever the locale changes */
fun onLocaleChanged(locale: Locale) { }
/** Call whenever font settings change */
fun onFontSettingChanged() { }
/** Call whenever the color pallete should update */
fun onColorPaletteChanged(palette: ColorExtractor.GradientColors) { }
}
/** Methods which trigger various clock animations */
interface ClockAnimation {
/** Initializes the doze & fold animation positions. Defaults to neither folded nor dozing. */
fun initialize(dozeFraction: Float, foldFraction: Float) { }
/** Runs an enter animation (if any) */
fun enter() { }
/** Sets how far into AOD the device currently is. */
fun doze(fraction: Float) { }
/** Sets how far into the folding animation the device is. */
fun fold(fraction: Float) { }
/** Runs the battery animation (if any). */
fun charge() { }
}
/** Some data about a clock design */
data class ClockMetadata(
val clockId: ClockId,
val name: String
)
)