diff --git a/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt b/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt index 9d3d636..2b1eca8 100644 --- a/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt +++ b/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt @@ -1,12 +1,13 @@ package me.zobrist.tichucounter.domain import android.content.Context +import androidx.appcompat.app.AppCompatDelegate.getApplicationLocales import androidx.preference.PreferenceManager import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject enum class Theme { DEFAULT, DARK, LIGHT } -enum class Language { DEFAULT, GERMAN, ENGLISH } +enum class Language(val value: String) { ENGLISH("en"), GERMAN("de") } class SettingsAdapter @Inject constructor(@ApplicationContext private val context: Context) { @@ -15,12 +16,19 @@ class SettingsAdapter @Inject constructor(@ApplicationContext private val contex val language: Language get() { - return Language.values()[sharedPreferences.getInt(Language::class.simpleName, 0)] + var setting = sharedPreferences.getString(Language::class.simpleName, null) + if(setting == null) + { + setCurrentLanguage() + setting = sharedPreferences.getString(Language::class.simpleName, Language.ENGLISH.name) + } + return enumValueOf(setting!!) } val theme: Theme get() { - return Theme.values()[sharedPreferences.getInt(Theme::class.simpleName, 0)] + val setting = sharedPreferences.getString(Theme::class.simpleName, Theme.DEFAULT.name) + return enumValueOf(setting!!) } val keepScreenOn: Boolean @@ -28,16 +36,22 @@ class SettingsAdapter @Inject constructor(@ApplicationContext private val contex return sharedPreferences.getBoolean("keep_screen_on", false) } - + private fun setCurrentLanguage() { + var setting = when(getApplicationLocales()[0].toString()) { + "de" -> Language.GERMAN + else -> Language.ENGLISH + } + setLanguage(setting) + } fun setLanguage(language: Language) { val editor = sharedPreferences.edit() - editor.putInt(Language::class.simpleName, language.ordinal) + editor.putString(Language::class.simpleName, language.name) editor.commit() } fun setTheme(theme: Theme) { val editor = sharedPreferences.edit() - editor.putInt(Theme::class.simpleName, theme.ordinal) + editor.putString(Theme::class.simpleName, theme.name) editor.commit() } diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/settings/SettingsView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/settings/SettingsView.kt index 8181ae3..d668944 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/settings/SettingsView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/settings/SettingsView.kt @@ -25,7 +25,6 @@ import me.zobrist.tichucounter.ui.AppTheme val languageMap = mapOf( - Language.DEFAULT to R.string.android_default_text, Language.ENGLISH to R.string.english, Language.GERMAN to R.string.german ) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 64ca69d..540bc48 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -11,7 +11,7 @@ Sprache wählen Android Standard Englisch - Detusch + Deutsch Hell Dunkel Einstellungen @@ -22,5 +22,7 @@ Einstellungen Counter Übermitteln + Ein + Aus \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 16c438b..0356480 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -31,4 +31,6 @@ Delete Submit MainActivity + On + Off \ No newline at end of file