Skip to content

Commit

Permalink
πŸ› Labels of theme mode choice lacked reference to string resources
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenzovngl committed Jun 17, 2023
1 parent f42edd3 commit e99337b
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 =
Expand All @@ -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<String> {
Expand Down Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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()
Expand All @@ -217,27 +217,19 @@ 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)
)
}
}
if(it.ordinal != darkThemeState){
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)
)
}
}
Expand Down

0 comments on commit e99337b

Please sign in to comment.