From e99337b29fd2c233fd03d5bb3044fd365af29f92 Mon Sep 17 00:00:00 2001 From: Lorenzo Vainigli Date: Sat, 17 Jun 2023 12:56:05 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Labels=20of=20theme=20mode=20cho?= =?UTF-8?q?ice=20lacked=20reference=20to=20string=20resources?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/PreferencesProvider.kt | 21 +++++++++--------- .../view/activity/InfoActivity.kt | 6 ++--- .../view/activity/InsertActivity.kt | 6 ++--- .../view/activity/MainActivity.kt | 6 ++--- .../view/activity/SettingsActivity.kt | 22 ++++++------------- 5 files changed, 27 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/model/PreferencesProvider.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/model/PreferencesProvider.kt index f09ffc4..94bd504 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/model/PreferencesProvider.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/model/PreferencesProvider.kt @@ -2,6 +2,7 @@ package com.lorenzovainigli.foodexpirationdates.model import android.content.Context import androidx.activity.ComponentActivity +import com.lorenzovainigli.foodexpirationdates.R import java.lang.Exception import java.text.DateFormat import java.text.SimpleDateFormat @@ -15,7 +16,7 @@ class PreferencesProvider { private const val keyDateFormat = "date_format" private const val keyNotificationTimeHour = "notification_time_hour" private const val keyNotificationTimeMinute = "notification_time_minute" - private const val darkTheme = "dark_theme" + private const val themeMode = "theme_mode" private const val dynamicColors = "dynamic_colors" private val availLocaleDateFormats = arrayOf(DateFormat.SHORT, DateFormat.MEDIUM) private val availOtherDateFormats = @@ -28,10 +29,10 @@ class PreferencesProvider { "d/MM", "d/MM/yyyy" ) - enum class OnOffSystem(val label: String) { - ON("On"), - SYSTEM("System"), - OFF("Off") + enum class ThemeMode(val label: Int) { + LIGHT(R.string.light), + SYSTEM(R.string.system), + DARK(R.string.dark) } fun getAvailLocaleDateFormats(): List { @@ -72,19 +73,19 @@ class PreferencesProvider { .putInt(keyNotificationTimeMinute, minute).apply() } - fun getDarkTheme(context: Context): Int { + fun getThemeMode(context: Context): Int { try { return context.getSharedPreferences(sharedPrefsName, ComponentActivity.MODE_PRIVATE) - .getInt(darkTheme, OnOffSystem.SYSTEM.ordinal) + .getInt(themeMode, ThemeMode.SYSTEM.ordinal) } catch (e: Exception){ e.printStackTrace() } - return OnOffSystem.SYSTEM.ordinal + return ThemeMode.SYSTEM.ordinal } - fun setDarkTheme(context: Context, darkThemeSetting: OnOffSystem) { + fun setThemeMode(context: Context, themeMode: ThemeMode) { return context.getSharedPreferences(sharedPrefsName, ComponentActivity.MODE_PRIVATE) - .edit().putInt(darkTheme, darkThemeSetting.ordinal).apply() + .edit().putInt(this.themeMode, themeMode.ordinal).apply() } fun getDynamicColors(context: Context): Boolean { diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/InfoActivity.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/InfoActivity.kt index c6d622b..3698287 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/InfoActivity.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/InfoActivity.kt @@ -51,9 +51,9 @@ class InfoActivity : ComponentActivity() { val activity = (LocalContext.current as? Activity) val uriHandler = LocalUriHandler.current FoodExpirationDatesTheme( - darkTheme = when (PreferencesProvider.getDarkTheme(context)){ - PreferencesProvider.Companion.OnOffSystem.ON.ordinal -> true - PreferencesProvider.Companion.OnOffSystem.OFF.ordinal -> false + darkTheme = when (PreferencesProvider.getThemeMode(context)){ + PreferencesProvider.Companion.ThemeMode.LIGHT.ordinal -> false + PreferencesProvider.Companion.ThemeMode.DARK.ordinal -> true else -> isSystemInDarkTheme() }, dynamicColor = PreferencesProvider.getDynamicColors(context) diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/InsertActivity.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/InsertActivity.kt index 23e3638..b71398a 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/InsertActivity.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/InsertActivity.kt @@ -65,9 +65,9 @@ class InsertActivity : ComponentActivity() { ) { val context = LocalContext.current FoodExpirationDatesTheme( - darkTheme = when (PreferencesProvider.getDarkTheme(context)){ - PreferencesProvider.Companion.OnOffSystem.ON.ordinal -> true - PreferencesProvider.Companion.OnOffSystem.OFF.ordinal -> false + darkTheme = when (PreferencesProvider.getThemeMode(context)){ + PreferencesProvider.Companion.ThemeMode.LIGHT.ordinal -> false + PreferencesProvider.Companion.ThemeMode.DARK.ordinal -> true else -> isSystemInDarkTheme() }, dynamicColor = PreferencesProvider.getDynamicColors(context) diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/MainActivity.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/MainActivity.kt index 1f4b38e..21846fb 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/MainActivity.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/MainActivity.kt @@ -89,9 +89,9 @@ class MainActivity : ComponentActivity() { ) { val context = LocalContext.current FoodExpirationDatesTheme( - darkTheme = when (PreferencesProvider.getDarkTheme(context)){ - PreferencesProvider.Companion.OnOffSystem.ON.ordinal -> true - PreferencesProvider.Companion.OnOffSystem.OFF.ordinal -> false + darkTheme = when (PreferencesProvider.getThemeMode(context)){ + PreferencesProvider.Companion.ThemeMode.LIGHT.ordinal -> false + PreferencesProvider.Companion.ThemeMode.DARK.ordinal -> true else -> isSystemInDarkTheme() }, dynamicColor = PreferencesProvider.getDynamicColors(context) diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/SettingsActivity.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/SettingsActivity.kt index 1dba97f..ff2eb4a 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/SettingsActivity.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/activity/SettingsActivity.kt @@ -94,15 +94,15 @@ class SettingsActivity : ComponentActivity() { mutableStateOf(false) } var darkThemeState by remember { - mutableStateOf(PreferencesProvider.getDarkTheme(context)) + mutableStateOf(PreferencesProvider.getThemeMode(context)) } var dynamicColorsState by remember { mutableStateOf(PreferencesProvider.getDynamicColors(context)) } FoodExpirationDatesTheme( darkTheme = when (darkThemeState) { - PreferencesProvider.Companion.OnOffSystem.ON.ordinal -> true - PreferencesProvider.Companion.OnOffSystem.OFF.ordinal -> false + PreferencesProvider.Companion.ThemeMode.LIGHT.ordinal -> false + PreferencesProvider.Companion.ThemeMode.DARK.ordinal -> true else -> isSystemInDarkTheme() }, dynamicColor = dynamicColorsState @@ -208,7 +208,7 @@ class SettingsActivity : ComponentActivity() { SettingsItem( label = stringResource(R.string.theme) ){ - PreferencesProvider.Companion.OnOffSystem.values().forEach { + PreferencesProvider.Companion.ThemeMode.values().forEach { Spacer( modifier = Modifier .fillMaxHeight() @@ -217,11 +217,7 @@ class SettingsActivity : ComponentActivity() { if (it.ordinal == darkThemeState) { Button(onClick = {}) { Text( - text = when (it){ - PreferencesProvider.Companion.OnOffSystem.OFF -> "Light" - PreferencesProvider.Companion.OnOffSystem.ON -> "Dark" - else -> it.label - } + text = getString(it.label) ) } } @@ -229,15 +225,11 @@ class SettingsActivity : ComponentActivity() { OutlinedButton( onClick = { darkThemeState = it.ordinal - PreferencesProvider.setDarkTheme(context, it) + PreferencesProvider.setThemeMode(context, it) }, ) { Text( - text = when (it){ - PreferencesProvider.Companion.OnOffSystem.OFF -> "Light" - PreferencesProvider.Companion.OnOffSystem.ON -> "Dark" - else -> it.label - } + text = getString(it.label) ) } }