Add clock widget preference migration, remove OnePlus variant

This commit is contained in:
MM20 2024-03-29 16:53:45 +01:00
parent 2cd4097b1d
commit 4ce4812317
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
6 changed files with 37 additions and 36 deletions

View File

@ -77,7 +77,6 @@ fun WatchFaceSelector(
mapOf(
ClockStyle.DigitalClock1 to 0,
ClockStyle.DigitalClock1_Outlined to 0,
ClockStyle.DigitalClock1_OnePlus to 0,
ClockStyle.DigitalClock2 to 1,
ClockStyle.AnalogClock to 2,
ClockStyle.OrbitClock to 3,
@ -258,7 +257,6 @@ fun getClockstyleName(context: Context, style: ClockWidgetStyle): String {
return when (style) {
ClockStyle.DigitalClock1,
ClockStyle.DigitalClock1_Outlined,
ClockStyle.DigitalClock1_OnePlus -> context.getString(R.string.clock_style_digital1)
ClockStyle.DigitalClock2 -> context.getString(R.string.clock_style_digital2)
ClockStyle.OrbitClock -> context.getString(R.string.clock_style_orbit)
ClockStyle.BinaryClock -> context.getString(R.string.clock_style_binary)
@ -279,7 +277,6 @@ fun getVariantName(context: Context, style: ClockWidgetStyle): String {
ClockStyle.SegmentClock,
ClockStyle.EmptyClock -> context.getString(R.string.clock_variant_standard)
ClockStyle.DigitalClock1_Outlined -> context.getString(R.string.clock_variant_outlined)
ClockStyle.DigitalClock1_OnePlus -> "OnePlus"
else -> ""
}
@ -289,7 +286,6 @@ fun getVariantName(context: Context, style: ClockWidgetStyle): String {
object ClockStyle {
val DigitalClock1 = ClockWidgetStyle.Digital1()
val DigitalClock1_Outlined = ClockWidgetStyle.Digital1(outlined = true)
val DigitalClock1_OnePlus = ClockWidgetStyle.Digital1(variant = ClockWidgetStyle.Digital1.Variant.OnePlus)
val DigitalClock2 = ClockWidgetStyle.Digital2
val OrbitClock = ClockWidgetStyle.Orbit
val AnalogClock = ClockWidgetStyle.Analog

View File

@ -84,32 +84,11 @@ fun DigitalClock1(
Column(
verticalArrangement = Arrangement.Center
) {
if (style.variant == ClockWidgetStyle.Digital1.Variant.OnePlus) {
val hour = formattedString.substring(0, 2)
Text(
modifier = modifier,
text = buildAnnotatedString {
hour.forEach {
if (it == '1') {
withStyle(style = SpanStyle(color = Color(0xFFC41442))) {
append(it)
}
} else {
append(it)
}
}
append(formattedString.substring(2))
},
style = textStyle
)
}
else {
Text(
modifier = modifier,
text = formattedString,
style = textStyle,
)
}
if (verticalLayout && showSeconds) {
Text(

View File

@ -2,6 +2,7 @@ package de.mm20.launcher2.preferences
import android.content.Context
import de.mm20.launcher2.preferences.migrations.Migration1
import de.mm20.launcher2.preferences.migrations.Migration2
import de.mm20.launcher2.settings.BaseSettings
internal class LauncherDataStore(
@ -11,7 +12,10 @@ internal class LauncherDataStore(
context,
fileName = "settings.json",
serializer = LauncherSettingsDataSerializer,
migrations = listOf(Migration1(legacyDataStore)),
migrations = listOf(
Migration1(legacyDataStore),
Migration2(),
),
) {
val data

View File

@ -4,11 +4,10 @@ import android.content.Context
import de.mm20.launcher2.preferences.search.LocationSearchSettings
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.util.UUID
@Serializable
data class LauncherSettingsData(
val schemaVersion: Int = 1,
val schemaVersion: Int = 2,
val uiColorScheme: ColorScheme = ColorScheme.System,
val uiTheme: ThemeDescriptor = ThemeDescriptor.Default,
@ -186,12 +185,14 @@ sealed interface ClockWidgetStyle {
@SerialName("digital1")
data class Digital1(
val outlined: Boolean = false,
@Deprecated("Variant.MDY has been replaced with LauncherSettingsData.clockWidgetUseThemeColor")
val variant: Variant = Variant.Default,
) : ClockWidgetStyle {
@Serializable
@Deprecated("No longer in use")
enum class Variant {
Default,
OnePlus,
MDY,
}
}

View File

@ -76,7 +76,7 @@ class Migration1(
LegacySettings.ClockWidgetSettings.ClockStyle.AnalogClock -> ClockWidgetStyle.Analog
LegacySettings.ClockWidgetSettings.ClockStyle.EmptyClock -> ClockWidgetStyle.Empty
LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock1_MDY -> ClockWidgetStyle.Digital1(
variant = ClockWidgetStyle.Digital1.Variant.Default
variant = ClockWidgetStyle.Digital1.Variant.MDY
)
LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock1_Outlined -> ClockWidgetStyle.Digital1(
@ -84,7 +84,7 @@ class Migration1(
)
LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock1_OnePlus -> ClockWidgetStyle.Digital1(
variant = ClockWidgetStyle.Digital1.Variant.OnePlus
variant = ClockWidgetStyle.Digital1.Variant.Default
)
else -> ClockWidgetStyle.Digital1()

View File

@ -0,0 +1,21 @@
package de.mm20.launcher2.preferences.migrations
import androidx.datastore.core.DataMigration
import de.mm20.launcher2.preferences.ClockWidgetStyle.Digital1
import de.mm20.launcher2.preferences.LauncherSettingsData
class Migration2 : DataMigration<LauncherSettingsData> {
override suspend fun cleanUp() {
}
override suspend fun shouldMigrate(currentData: LauncherSettingsData): Boolean {
return currentData.schemaVersion < 2
}
override suspend fun migrate(currentData: LauncherSettingsData): LauncherSettingsData {
return currentData.copy(
schemaVersion = 2,
clockWidgetUseThemeColor = (currentData.clockWidgetStyle as? Digital1)?.variant == Digital1.Variant.MDY
)
}
}