Add: Language preference

This commit is contained in:
machiav3lli 2021-11-16 23:47:40 +01:00
parent 72c7603bdf
commit 606372bc14
3 changed files with 15 additions and 0 deletions

View File

@ -3,6 +3,8 @@ package com.looker.droidify.content
import android.content.Context
import android.content.SharedPreferences
import android.content.res.Configuration
import com.looker.droidify.Common.PREFS_LANGUAGE
import com.looker.droidify.Common.PREFS_LANGUAGE_DEFAULT
import com.looker.droidify.R
import com.looker.droidify.entity.ProductItem
import com.looker.droidify.utility.extension.android.Android
@ -20,6 +22,7 @@ object Preferences {
val subject = _subject.asSharedFlow()
private val keys = sequenceOf(
Key.Language,
Key.AutoSync,
Key.IncompatibleVersions,
Key.ListAnimation,
@ -122,6 +125,7 @@ object Preferences {
}
sealed class Key<T>(val name: String, val default: Value<T>) {
object Language : Key<String>(PREFS_LANGUAGE, Value.StringValue(PREFS_LANGUAGE_DEFAULT))
object AutoSync : Key<Preferences.AutoSync>(
"auto_sync",
Value.EnumerationValue(Preferences.AutoSync.Wifi)

View File

@ -28,6 +28,9 @@ import com.looker.droidify.BuildConfig
import com.looker.droidify.R
import com.looker.droidify.content.Preferences
import com.looker.droidify.databinding.PreferenceItemBinding
import com.looker.droidify.utility.Utils.getLocaleOfCode
import com.looker.droidify.utility.Utils.languagesList
import com.looker.droidify.utility.Utils.translateLocale
import com.looker.droidify.utility.extension.resources.*
import com.topjohnwu.superuser.Shell
import kotlinx.coroutines.flow.collect
@ -67,6 +70,13 @@ class SettingsFragment : ScreenFragment() {
ViewGroup.LayoutParams.WRAP_CONTENT
)
preferences.addCategory(requireContext().getString(R.string.prefs_language_title)) {
addList(
Preferences.Key.Language,
context.getString(R.string.prefs_language_title),
languagesList
) { translateLocale(context.getLocaleOfCode(it)) }
}
preferences.addCategory(getString(R.string.updates)) {
addEnumeration(
Preferences.Key.AutoSync,

View File

@ -173,4 +173,5 @@
<string name="waiting_to_start_download">Waiting to start download</string>
<string name="whats_new">What\'s New</string>
<string name="website">Website</string>
<string name="prefs_language_title">Langugage</string>
</resources>