Improve settings.
This commit is contained in:
@@ -1,12 +1,13 @@
|
|||||||
package me.zobrist.tichucounter.domain
|
package me.zobrist.tichucounter.domain
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import androidx.appcompat.app.AppCompatDelegate.getApplicationLocales
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
enum class Theme { DEFAULT, DARK, LIGHT }
|
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) {
|
class SettingsAdapter @Inject constructor(@ApplicationContext private val context: Context) {
|
||||||
@@ -15,12 +16,19 @@ class SettingsAdapter @Inject constructor(@ApplicationContext private val contex
|
|||||||
|
|
||||||
val language: Language
|
val language: Language
|
||||||
get() {
|
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
|
val theme: Theme
|
||||||
get() {
|
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
|
val keepScreenOn: Boolean
|
||||||
@@ -28,16 +36,22 @@ class SettingsAdapter @Inject constructor(@ApplicationContext private val contex
|
|||||||
return sharedPreferences.getBoolean("keep_screen_on", false)
|
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) {
|
fun setLanguage(language: Language) {
|
||||||
val editor = sharedPreferences.edit()
|
val editor = sharedPreferences.edit()
|
||||||
editor.putInt(Language::class.simpleName, language.ordinal)
|
editor.putString(Language::class.simpleName, language.name)
|
||||||
editor.commit()
|
editor.commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setTheme(theme: Theme) {
|
fun setTheme(theme: Theme) {
|
||||||
val editor = sharedPreferences.edit()
|
val editor = sharedPreferences.edit()
|
||||||
editor.putInt(Theme::class.simpleName, theme.ordinal)
|
editor.putString(Theme::class.simpleName, theme.name)
|
||||||
editor.commit()
|
editor.commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import me.zobrist.tichucounter.ui.AppTheme
|
|||||||
|
|
||||||
|
|
||||||
val languageMap = mapOf(
|
val languageMap = mapOf(
|
||||||
Language.DEFAULT to R.string.android_default_text,
|
|
||||||
Language.ENGLISH to R.string.english,
|
Language.ENGLISH to R.string.english,
|
||||||
Language.GERMAN to R.string.german
|
Language.GERMAN to R.string.german
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<string name="choose_language_text">Sprache wählen</string>
|
<string name="choose_language_text">Sprache wählen</string>
|
||||||
<string name="android_default_text">Android Standard</string>
|
<string name="android_default_text">Android Standard</string>
|
||||||
<string name="english">Englisch</string>
|
<string name="english">Englisch</string>
|
||||||
<string name="german">Detusch</string>
|
<string name="german">Deutsch</string>
|
||||||
<string name="light">Hell</string>
|
<string name="light">Hell</string>
|
||||||
<string name="dark">Dunkel</string>
|
<string name="dark">Dunkel</string>
|
||||||
<string name="settings">Einstellungen</string>
|
<string name="settings">Einstellungen</string>
|
||||||
@@ -22,5 +22,7 @@
|
|||||||
<string name="menu_settings">Einstellungen</string>
|
<string name="menu_settings">Einstellungen</string>
|
||||||
<string name="menu_counter">Counter</string>
|
<string name="menu_counter">Counter</string>
|
||||||
<string name="submit">Übermitteln</string>
|
<string name="submit">Übermitteln</string>
|
||||||
|
<string name="on">Ein</string>
|
||||||
|
<string name="off">Aus</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -31,4 +31,6 @@
|
|||||||
<string name="delete">Delete</string>
|
<string name="delete">Delete</string>
|
||||||
<string name="submit">Submit</string>
|
<string name="submit">Submit</string>
|
||||||
<string name="title_activity_main">MainActivity</string>
|
<string name="title_activity_main">MainActivity</string>
|
||||||
|
<string name="on">On</string>
|
||||||
|
<string name="off">Off</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user