diff options
5 files changed, 21 insertions, 9 deletions
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt index 9bb3bac824e9..365567b17ec0 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt @@ -17,7 +17,6 @@ import android.content.Context import android.content.res.Resources import android.graphics.Color import android.graphics.Rect -import android.graphics.RectF import android.icu.text.NumberFormat import android.util.TypedValue import android.view.LayoutInflater @@ -29,6 +28,7 @@ import com.android.systemui.plugins.clocks.AlarmData import com.android.systemui.plugins.clocks.ClockAnimations import com.android.systemui.plugins.clocks.ClockConfig import com.android.systemui.plugins.clocks.ClockController +import com.android.systemui.plugins.clocks.ClockEventListener import com.android.systemui.plugins.clocks.ClockEvents import com.android.systemui.plugins.clocks.ClockFaceConfig import com.android.systemui.plugins.clocks.ClockFaceController @@ -102,7 +102,7 @@ class DefaultClockController( isDarkTheme: Boolean, dozeFraction: Float, foldFraction: Float, - onBoundsChanged: (RectF) -> Unit, + clockListener: ClockEventListener?, ) { largeClock.recomputePadding(null) diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockController.kt index 6dfd2268005f..5acd4468fe92 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockController.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockController.kt @@ -16,13 +16,13 @@ package com.android.systemui.shared.clocks -import android.graphics.RectF import com.android.systemui.animation.GSFAxes import com.android.systemui.customization.R import com.android.systemui.plugins.clocks.AlarmData import com.android.systemui.plugins.clocks.AxisType import com.android.systemui.plugins.clocks.ClockConfig import com.android.systemui.plugins.clocks.ClockController +import com.android.systemui.plugins.clocks.ClockEventListener import com.android.systemui.plugins.clocks.ClockEvents import com.android.systemui.plugins.clocks.ClockFontAxis import com.android.systemui.plugins.clocks.ClockFontAxis.Companion.merge @@ -107,11 +107,11 @@ class FlexClockController(private val clockCtx: ClockContext) : ClockController isDarkTheme: Boolean, dozeFraction: Float, foldFraction: Float, - onBoundsChanged: (RectF) -> Unit, + clockListener: ClockEventListener?, ) { events.onFontAxesChanged(clockCtx.settings.axes) smallClock.run { - layerController.onViewBoundsChanged = onBoundsChanged + layerController.onViewBoundsChanged = { clockListener?.onBoundsChanged(it) } events.onThemeChanged(theme.copy(isDarkTheme = isDarkTheme)) animations.doze(dozeFraction) animations.fold(foldFraction) @@ -119,7 +119,7 @@ class FlexClockController(private val clockCtx: ClockContext) : ClockController } largeClock.run { - layerController.onViewBoundsChanged = onBoundsChanged + layerController.onViewBoundsChanged = { clockListener?.onBoundsChanged(it) } events.onThemeChanged(theme.copy(isDarkTheme = isDarkTheme)) animations.doze(dozeFraction) animations.fold(foldFraction) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shared/clocks/DefaultClockProviderTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shared/clocks/DefaultClockProviderTest.kt index 4f301031e77c..fad66581682f 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shared/clocks/DefaultClockProviderTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shared/clocks/DefaultClockProviderTest.kt @@ -108,7 +108,7 @@ class DefaultClockProviderTest : SysuiTestCase() { verify(mockSmallClockView).setColors(DOZE_COLOR, Color.MAGENTA) verify(mockLargeClockView).setColors(DOZE_COLOR, Color.MAGENTA) - clock.initialize(true, 0f, 0f, {}) + clock.initialize(true, 0f, 0f, null) val expectedColor = 0 verify(mockSmallClockView).setColors(DOZE_COLOR, expectedColor) diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockController.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockController.kt index 4c1f6450dd78..b52db83d513c 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockController.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockController.kt @@ -42,9 +42,13 @@ interface ClockController { isDarkTheme: Boolean, dozeFraction: Float, foldFraction: Float, - onBoundsChanged: (RectF) -> Unit, + clockListener: ClockEventListener?, ) /** Optional method for dumping debug information */ fun dump(pw: PrintWriter) } + +interface ClockEventListener { + fun onBoundsChanged(bounds: RectF) +} diff --git a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt index e827b2d54a19..1549b699eee6 100644 --- a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt +++ b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt @@ -56,6 +56,7 @@ import com.android.systemui.log.core.Logger import com.android.systemui.modes.shared.ModesUi import com.android.systemui.plugins.clocks.AlarmData import com.android.systemui.plugins.clocks.ClockController +import com.android.systemui.plugins.clocks.ClockEventListener import com.android.systemui.plugins.clocks.ClockFaceController import com.android.systemui.plugins.clocks.ClockMessageBuffers import com.android.systemui.plugins.clocks.ClockTickRate @@ -148,7 +149,7 @@ constructor( val clockStr = clock.toString() loggers.forEach { it.d({ "New Clock: $str1" }) { str1 = clockStr } } - clock.initialize(isDarkTheme(), dozeAmount.value, 0f, { onClockBoundsChanged.value = it }) + clock.initialize(isDarkTheme(), dozeAmount.value, 0f, clockListener) if (!regionSamplingEnabled) { updateColors() @@ -312,6 +313,13 @@ constructor( private var zenData: ZenData? = null private var alarmData: AlarmData? = null + private val clockListener = + object : ClockEventListener { + override fun onBoundsChanged(bounds: RectF) { + onClockBoundsChanged.value = bounds + } + } + private val configListener = object : ConfigurationController.ConfigurationListener { override fun onThemeChanged() { |