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