diff --git a/app/src/main/java/com/github/libretube/preferences/MainSettings.kt b/app/src/main/java/com/github/libretube/preferences/MainSettings.kt index 66d7503d1..65c89abda 100644 --- a/app/src/main/java/com/github/libretube/preferences/MainSettings.kt +++ b/app/src/main/java/com/github/libretube/preferences/MainSettings.kt @@ -12,7 +12,6 @@ import com.github.libretube.activities.SettingsActivity import com.github.libretube.dialogs.RequireRestartDialog import com.github.libretube.dialogs.UpdateDialog import com.github.libretube.update.UpdateChecker -import com.github.libretube.util.ThemeHelper import com.google.android.material.snackbar.Snackbar import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -37,7 +36,8 @@ class MainSettings : PreferenceFragmentCompat() { val language = findPreference("language") language?.setOnPreferenceChangeListener { _, _ -> - ThemeHelper.restartMainActivity(requireContext()) + val restartDialog = RequireRestartDialog() + restartDialog.show(childFragmentManager, "RequireRestartDialog") true } diff --git a/app/src/main/java/com/github/libretube/util/LocaleHelper.kt b/app/src/main/java/com/github/libretube/util/LocaleHelper.kt index a5ce2e973..a638c37b0 100644 --- a/app/src/main/java/com/github/libretube/util/LocaleHelper.kt +++ b/app/src/main/java/com/github/libretube/util/LocaleHelper.kt @@ -12,15 +12,16 @@ object LocaleHelper { fun updateLanguage(context: Context) { val languageName = PreferenceHelper.getString(PreferenceKeys.LANGUAGE, "sys") if (languageName == "sys") updateLocaleConf(context, Locale.getDefault()) - else if ("$languageName".length < 3) { - val locale = Locale(languageName.toString()) - updateLocaleConf(context, locale) - } else if ("$languageName".length > 3) { + else if (languageName?.contains("-") == true) { + val languageParts = languageName.split("-") val locale = Locale( - languageName?.substring(0, 2).toString(), - languageName?.substring(4, 6).toString() + languageParts[0], + languageParts[1] ) updateLocaleConf(context, locale) + } else { + val locale = Locale(languageName.toString()) + updateLocaleConf(context, locale) } } diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index 71fab768f..a3346533f 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -462,10 +462,13 @@ Arabic Azerbaijani Basque + Catalan Chinese (simplified) + Chinese (traditional) Czech Danish English + Filipino Finnish French German @@ -486,10 +489,14 @@ Polish Portuguese Portuguese (Brazil) + Romanian Russian + Slovak Sorani Spanish + Thai Turkish + Turkmen Ukrainian @@ -498,10 +505,13 @@ ar az eu - zh + ca + zh-Hans + zh-Hant cs da en + fil fi fr de @@ -522,10 +532,14 @@ pl pt pt-rBR + ro ru + sk ckb es + th tr + tk uk