AnalogClock: add option to show tick marks (#1334)

* AnalogClock: add option to show tick marks

* Refactor as data class with settings in WatchFaceSelector.kt
This commit is contained in:
shtrophic
2025-07-04 12:01:08 +02:00
committed by GitHub
parent 31a1580db9
commit 8cf2d625a7
7 changed files with 50 additions and 8 deletions
@@ -878,6 +878,7 @@
<string name="clock_style_empty">No clock</string>
<string name="clock_style_custom">Custom widget</string>
<string name="clock_variant_outlined">Outlined</string>
<string name="clock_variant_analog_ticks">Ticks</string>
<string name="menu_show_filters">Show filters</string>
<string name="menu_hide_filters">Hide filters</string>
<string name="search_filter_tools">Tools</string>
@@ -41,6 +41,7 @@ data class LauncherSettingsData internal constructor(
@SerialName("clockWidgetStyle2")
internal val clockWidgetStyle: ClockWidgetStyleEnum = ClockWidgetStyleEnum.Digital1,
val clockWidgetDigital1: ClockWidgetStyle.Digital1 = ClockWidgetStyle.Digital1(),
val clockWidgetAnalog: ClockWidgetStyle.Analog = ClockWidgetStyle.Analog(),
val clockWidgetCustom: ClockWidgetStyle.Custom = ClockWidgetStyle.Custom(),
val clockWidgetColors: ClockWidgetColors = ClockWidgetColors.Auto,
val clockWidgetShowSeconds: Boolean = false,
@@ -249,7 +250,9 @@ sealed interface ClockWidgetStyle {
@Serializable
@SerialName("analog")
data object Analog : ClockWidgetStyle
data class Analog(
val showTicks: Boolean = false
) : ClockWidgetStyle
@Serializable
@SerialName("binary")
@@ -84,7 +84,7 @@ class ClockWidgetSettings internal constructor(
ClockWidgetStyleEnum.Digital1 -> it.clockWidgetDigital1
ClockWidgetStyleEnum.Digital2 -> ClockWidgetStyle.Digital2
ClockWidgetStyleEnum.Orbit -> ClockWidgetStyle.Orbit
ClockWidgetStyleEnum.Analog -> ClockWidgetStyle.Analog
ClockWidgetStyleEnum.Analog -> it.clockWidgetAnalog
ClockWidgetStyleEnum.Binary -> ClockWidgetStyle.Binary
ClockWidgetStyleEnum.Segment -> ClockWidgetStyle.Segment
ClockWidgetStyleEnum.Empty -> ClockWidgetStyle.Empty
@@ -95,6 +95,9 @@ class ClockWidgetSettings internal constructor(
val digital1: Flow<ClockWidgetStyle.Digital1>
get() = launcherDataStore.data.map { it.clockWidgetDigital1 }
val analog: Flow<ClockWidgetStyle.Analog>
get() = launcherDataStore.data.map { it.clockWidgetAnalog }
val custom: Flow<ClockWidgetStyle.Custom>
get() = launcherDataStore.data.map { it.clockWidgetCustom }
@@ -102,8 +105,9 @@ class ClockWidgetSettings internal constructor(
launcherDataStore.update {
it.copy(
clockWidgetStyle = clockStyle.enumValue,
clockWidgetDigital1 = if (clockStyle is ClockWidgetStyle.Digital1) clockStyle else it.clockWidgetDigital1,
clockWidgetCustom = if (clockStyle is ClockWidgetStyle.Custom) clockStyle else it.clockWidgetCustom,
clockWidgetDigital1 = clockStyle as? ClockWidgetStyle.Digital1 ?: it.clockWidgetDigital1,
clockWidgetAnalog = clockStyle as? ClockWidgetStyle.Analog ?: it.clockWidgetAnalog,
clockWidgetCustom = clockStyle as? ClockWidgetStyle.Custom ?: it.clockWidgetCustom,
)
}
}