Improve settings.
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<string name="choose_language_text">Sprache wählen</string>
|
||||
<string name="android_default_text">Android Standard</string>
|
||||
<string name="english">Englisch</string>
|
||||
<string name="german">Detusch</string>
|
||||
<string name="german">Deutsch</string>
|
||||
<string name="light">Hell</string>
|
||||
<string name="dark">Dunkel</string>
|
||||
<string name="settings">Einstellungen</string>
|
||||
@@ -22,5 +22,7 @@
|
||||
<string name="menu_settings">Einstellungen</string>
|
||||
<string name="menu_counter">Counter</string>
|
||||
<string name="submit">Übermitteln</string>
|
||||
<string name="on">Ein</string>
|
||||
<string name="off">Aus</string>
|
||||
|
||||
</resources>
|
||||
@@ -31,4 +31,6 @@
|
||||
<string name="delete">Delete</string>
|
||||
<string name="submit">Submit</string>
|
||||
<string name="title_activity_main">MainActivity</string>
|
||||
<string name="on">On</string>
|
||||
<string name="off">Off</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user