Refactor Clock theme handling
Bug: 364680879
Test: Presubmits & manually checked clock colors
Flag: NONE Non-user facing interface change
Change-Id: I9f08156e69842af71e78d343dda2e931850fa852
diff --git a/src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt b/src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt
index 1f73727..b68edd9 100644
--- a/src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt
@@ -122,18 +122,24 @@
)
override fun updateColorForAllClocks(@ColorInt seedColor: Int?) {
- clockControllers.values.forEach { it.events.onSeedColorChanged(seedColor = seedColor) }
+ clockControllers.values.forEach {
+ it.largeClock.run { events.onThemeChanged(theme.copy(seedColor = seedColor)) }
+ it.smallClock.run { events.onThemeChanged(theme.copy(seedColor = seedColor)) }
+ }
}
override fun updateColor(clockId: String, @ColorInt seedColor: Int?) {
- getController(clockId).events.onSeedColorChanged(seedColor)
+ getController(clockId).let {
+ it.largeClock.run { events.onThemeChanged(theme.copy(seedColor = seedColor)) }
+ it.smallClock.run { events.onThemeChanged(theme.copy(seedColor = seedColor)) }
+ }
}
override fun updateRegionDarkness() {
val isRegionDark = isLockscreenWallpaperDark()
clockControllers.values.forEach {
- it.largeClock.events.onRegionDarknessChanged(isRegionDark)
- it.smallClock.events.onRegionDarknessChanged(isRegionDark)
+ it.largeClock.run { events.onThemeChanged(theme.copy(isDarkTheme = isRegionDark)) }
+ it.smallClock.run { events.onThemeChanged(theme.copy(isDarkTheme = isRegionDark)) }
}
}
@@ -180,13 +186,12 @@
}
private fun initClockController(clockId: String): ClockController {
+ val isWallpaperDark = isLockscreenWallpaperDark()
val controller =
- registry.createExampleClock(clockId).also { it?.initialize(resources, 0f, 0f) }
+ registry.createExampleClock(clockId).also { it?.initialize(isWallpaperDark, 0f, 0f) }
checkNotNull(controller)
- val isWallpaperDark = isLockscreenWallpaperDark()
// Initialize large clock
- controller.largeClock.events.onRegionDarknessChanged(isWallpaperDark)
controller.largeClock.events.onFontSettingChanged(
resources
.getDimensionPixelSize(
@@ -197,7 +202,6 @@
controller.largeClock.events.onTargetRegionChanged(getLargeClockRegion())
// Initialize small clock
- controller.smallClock.events.onRegionDarknessChanged(isWallpaperDark)
controller.smallClock.events.onFontSettingChanged(
resources
.getDimensionPixelSize(
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
index 3249024..d2acb16 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
@@ -1,6 +1,5 @@
package com.android.customization.picker.clock.ui
-import android.content.res.Resources
import android.view.View
import androidx.lifecycle.LifecycleOwner
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
@@ -29,7 +28,7 @@
override val events: ClockEvents
get() = TODO("Not yet implemented")
- override fun initialize(resources: Resources, dozeFraction: Float, foldFraction: Float) =
+ override fun initialize(isDarkTheme: Boolean, dozeFraction: Float, foldFraction: Float) =
TODO("Not yet implemented")
override fun dump(pw: PrintWriter) = TODO("Not yet implemented")