Merge "Changes to plugin events to better match AnimatableClockView" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-07-27 17:14:56 +00:00
committed by Android (Google) Code Review

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