Remove default impls from clock plugins

This appears to prevent crashes from dynamic loading failures when
building and deploying sysui & wpp from sysui studio instead of building
through soong.

Bug: 279049213
Test: Deployed wpp & sysui from sysui studio
Change-Id: I6225f9529898ef8c6f4953957fb83cf0cd2abda0
This commit is contained in:
Hawkwood Glazier
2023-05-25 22:58:12 +00:00
parent 8278c862d3
commit 24ec252394
2 changed files with 23 additions and 26 deletions

View File

@@ -33,6 +33,7 @@ import com.android.systemui.plugins.ClockFaceConfig
import com.android.systemui.plugins.ClockFaceController import com.android.systemui.plugins.ClockFaceController
import com.android.systemui.plugins.ClockFaceEvents import com.android.systemui.plugins.ClockFaceEvents
import com.android.systemui.plugins.ClockSettings import com.android.systemui.plugins.ClockSettings
import com.android.systemui.plugins.WeatherData
import java.io.PrintWriter import java.io.PrintWriter
import java.util.Locale import java.util.Locale
import java.util.TimeZone import java.util.TimeZone
@@ -227,6 +228,8 @@ class DefaultClockController(
clocks.forEach { it.refreshFormat() } clocks.forEach { it.refreshFormat() }
} }
override fun onWeatherDataChanged(data: WeatherData) {}
} }
open inner class DefaultClockAnimations( open inner class DefaultClockAnimations(
@@ -273,6 +276,8 @@ class DefaultClockController(
// the top margin change in recomputePadding to make clock be centered // the top margin change in recomputePadding to make clock be centered
view.translationY = 0.5f * view.bottom * (1 - swipingFraction) view.translationY = 0.5f * view.bottom * (1 - swipingFraction)
} }
override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {}
} }
inner class LargeClockAnimations( inner class LargeClockAnimations(

View File

@@ -74,18 +74,10 @@ interface ClockController {
resources: Resources, resources: Resources,
dozeFraction: Float, dozeFraction: Float,
foldFraction: Float, foldFraction: Float,
) { )
events.onColorPaletteChanged(resources)
smallClock.animations.doze(dozeFraction)
largeClock.animations.doze(dozeFraction)
smallClock.animations.fold(foldFraction)
largeClock.animations.fold(foldFraction)
smallClock.events.onTimeTick()
largeClock.events.onTimeTick()
}
/** Optional method for dumping debug information */ /** Optional method for dumping debug information */
fun dump(pw: PrintWriter) {} fun dump(pw: PrintWriter)
} }
/** Interface for a specific clock face version rendered by the clock */ /** Interface for a specific clock face version rendered by the clock */
@@ -109,37 +101,37 @@ interface ClockFaceController {
/** Events that should call when various rendering parameters change */ /** Events that should call when various rendering parameters change */
interface ClockEvents { interface ClockEvents {
/** Call whenever timezone changes */ /** Call whenever timezone changes */
fun onTimeZoneChanged(timeZone: TimeZone) {} fun onTimeZoneChanged(timeZone: TimeZone)
/** Call whenever the text time format changes (12hr vs 24hr) */ /** Call whenever the text time format changes (12hr vs 24hr) */
fun onTimeFormatChanged(is24Hr: Boolean) {} fun onTimeFormatChanged(is24Hr: Boolean)
/** Call whenever the locale changes */ /** Call whenever the locale changes */
fun onLocaleChanged(locale: Locale) {} fun onLocaleChanged(locale: Locale)
/** Call whenever the color palette should update */ /** Call whenever the color palette should update */
fun onColorPaletteChanged(resources: Resources) {} fun onColorPaletteChanged(resources: Resources)
/** Call if the seed color has changed and should be updated */ /** Call if the seed color has changed and should be updated */
fun onSeedColorChanged(seedColor: Int?) {} fun onSeedColorChanged(seedColor: Int?)
/** Call whenever the weather data should update */ /** Call whenever the weather data should update */
fun onWeatherDataChanged(data: WeatherData) {} fun onWeatherDataChanged(data: WeatherData)
} }
/** Methods which trigger various clock animations */ /** Methods which trigger various clock animations */
interface ClockAnimations { interface ClockAnimations {
/** Runs an enter animation (if any) */ /** Runs an enter animation (if any) */
fun enter() {} fun enter()
/** Sets how far into AOD the device currently is. */ /** Sets how far into AOD the device currently is. */
fun doze(fraction: Float) {} fun doze(fraction: Float)
/** Sets how far into the folding animation the device is. */ /** Sets how far into the folding animation the device is. */
fun fold(fraction: Float) {} fun fold(fraction: Float)
/** Runs the battery animation (if any). */ /** Runs the battery animation (if any). */
fun charge() {} fun charge()
/** /**
* Runs when the clock's position changed during the move animation. * Runs when the clock's position changed during the move animation.
@@ -150,32 +142,32 @@ interface ClockAnimations {
* @param fraction fraction of the clock movement. 0 means it is at the beginning, and 1 means * @param fraction fraction of the clock movement. 0 means it is at the beginning, and 1 means
* it finished moving. * it finished moving.
*/ */
fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {} fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float)
/** /**
* Runs when swiping clock picker, swipingFraction: 1.0 -> clock is scaled up in the preview, * Runs when swiping clock picker, swipingFraction: 1.0 -> clock is scaled up in the preview,
* 0.0 -> clock is scaled down in the shade; previewRatio is previewSize / screenSize * 0.0 -> clock is scaled down in the shade; previewRatio is previewSize / screenSize
*/ */
fun onPickerCarouselSwiping(swipingFraction: Float) {} fun onPickerCarouselSwiping(swipingFraction: Float)
} }
/** Events that have specific data about the related face */ /** Events that have specific data about the related face */
interface ClockFaceEvents { interface ClockFaceEvents {
/** Call every time tick */ /** Call every time tick */
fun onTimeTick() {} fun onTimeTick()
/** /**
* Region Darkness specific to the clock face. * Region Darkness specific to the clock face.
* - isRegionDark = dark theme -> clock should be light * - isRegionDark = dark theme -> clock should be light
* - !isRegionDark = light theme -> clock should be dark * - !isRegionDark = light theme -> clock should be dark
*/ */
fun onRegionDarknessChanged(isRegionDark: Boolean) {} fun onRegionDarknessChanged(isRegionDark: Boolean)
/** /**
* Call whenever font settings change. Pass in a target font size in pixels. The specific clock * Call whenever font settings change. Pass in a target font size in pixels. The specific clock
* design is allowed to ignore this target size on a case-by-case basis. * design is allowed to ignore this target size on a case-by-case basis.
*/ */
fun onFontSettingChanged(fontSizePx: Float) {} fun onFontSettingChanged(fontSizePx: Float)
/** /**
* Target region information for the clock face. For small clock, this will match the bounds of * Target region information for the clock face. For small clock, this will match the bounds of
@@ -184,7 +176,7 @@ interface ClockFaceEvents {
* render within the centered targetRect to avoid obstructing other elements. The specified * render within the centered targetRect to avoid obstructing other elements. The specified
* targetRegion is relative to the parent view. * targetRegion is relative to the parent view.
*/ */
fun onTargetRegionChanged(targetRegion: Rect?) {} fun onTargetRegionChanged(targetRegion: Rect?)
} }
/** Tick rates for clocks */ /** Tick rates for clocks */