diff --git a/src/main/kotlin/com/looker/droidify/content/Preferences.kt b/src/main/kotlin/com/looker/droidify/content/Preferences.kt index 8a077506..769ecd43 100644 --- a/src/main/kotlin/com/looker/droidify/content/Preferences.kt +++ b/src/main/kotlin/com/looker/droidify/content/Preferences.kt @@ -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(val name: String, val default: Value) { + object Language : Key(PREFS_LANGUAGE, Value.StringValue(PREFS_LANGUAGE_DEFAULT)) object AutoSync : Key( "auto_sync", Value.EnumerationValue(Preferences.AutoSync.Wifi) diff --git a/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt b/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt index e3ae5cc4..bf65482b 100644 --- a/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt +++ b/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt @@ -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, diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 37fb2500..7e206f4e 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -173,4 +173,5 @@ Waiting to start download What\'s New Website + Langugage \ No newline at end of file