mirror of
https://github.com/ankidroid/Anki-Android.git
synced 2024-09-20 03:52:15 +02:00
fix: backend language not being set if changed to "System language"
`Locale.getDefault()` returns the app current language, so `getSystemLocale()` is used instead Note that probably because of a platform bug, `getSystemLocale()` returns the app language as well on API 33, which *may* be fixed later because we are using an AppCompat alpha version
This commit is contained in:
parent
999aa686cd
commit
461d2390e8
@ -22,6 +22,7 @@ import androidx.annotation.StringRes
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.core.os.ConfigurationCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.ichi2.anki.AnkiDroidApp
|
||||
import net.ankiweb.rsdroid.BackendFactory
|
||||
import java.text.DateFormat
|
||||
import java.util.*
|
||||
@ -206,13 +207,16 @@ object LanguageUtil {
|
||||
fun getSystemLocale(): Locale = getLocaleCompat(Resources.getSystem())!!
|
||||
|
||||
/** If locale is not provided, the current locale will be used. */
|
||||
fun setDefaultBackendLanguages(languageTag: String = SYSTEM_LANGUAGE_TAG) {
|
||||
val locale = if (languageTag == SYSTEM_LANGUAGE_TAG) {
|
||||
Locale.getDefault()
|
||||
fun setDefaultBackendLanguages(languageTag: String? = null) {
|
||||
val langCode = languageTag ?: AnkiDroidApp.getSharedPrefs(AnkiDroidApp.instance)
|
||||
.getString("language", SYSTEM_LANGUAGE_TAG)!!
|
||||
|
||||
val localeLanguage = if (langCode == SYSTEM_LANGUAGE_TAG) {
|
||||
getSystemLocale().language
|
||||
} else {
|
||||
Locale.forLanguageTag(languageTag)
|
||||
langCode
|
||||
}
|
||||
BackendFactory.defaultLanguages = listOf(languageTagToBackendCode(locale.language))
|
||||
BackendFactory.defaultLanguages = listOf(languageTagToBackendCode(localeLanguage))
|
||||
}
|
||||
|
||||
private fun languageTagToBackendCode(languageTag: String): String {
|
||||
|
Loading…
Reference in New Issue
Block a user