Commit b2917ad3 authored by wanglei's avatar wanglei

...

parent bc77dcde
......@@ -104,5 +104,13 @@ object ConstObject {
field = value
AppPreferences.getInstance().put("haveSelectLanguage", value, true)
}
var selectFollowLanguage = false
get() {
return AppPreferences.getInstance().getBoolean("selectFollowLanguage", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("selectFollowLanguage", value, true)
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ data class LanguageBean(
val language: String
) {
var isSelect: Boolean = false
var isFollowSystem: Boolean = false
companion object {
const val English = "English"
......
......@@ -55,7 +55,7 @@ class MyApplication : Application() {
}
private fun initSystemLanguage() {
val systemLanguage = getSystemLanguage(context)
val systemLanguage = getSystemLanguage()
val supportLanguage = listOf(
Locale.ENGLISH.language,
......
......@@ -40,17 +40,20 @@ class SetLanguageActivity : BaseActivity<ActivitySetLanguageBinding>() {
onBackPressedDispatcher.onBackPressed()
}
binding.tvOk.setOnClickListener {
val selectLanguage = adapter.items.find { it.isSelect }?.language ?: Locale.ENGLISH.language
val item = adapter.items.find { it.isSelect }
val selectLanguage = item?.language ?: Locale.ENGLISH.language
if (changeLanguageSp != selectLanguage) {
changeLanguageSp = selectLanguage
}
ConstObject.selectFollowLanguage = item?.isFollowSystem == true
onBackPressedDispatcher.onBackPressed()
}
}
private fun initData() {
val list = listOf(
LanguageBean(this.getString(R.string.follow_system), getSystemLanguageDefault(this)),
LanguageBean(this.getString(R.string.follow_system), getSystemLanguageDefault()).apply { isFollowSystem = true },
LanguageBean(LanguageBean.English, Locale.ENGLISH.language),
LanguageBean(LanguageBean.简体中文, Locale.PRC.language),
LanguageBean(LanguageBean.português, Locale("pt", "BR").language),
......@@ -68,10 +71,10 @@ class SetLanguageActivity : BaseActivity<ActivitySetLanguageBinding>() {
LanguageBean(LanguageBean.繁體中文, Locale("zh", "TW").language),
LanguageBean(LanguageBean.Türk, Locale("tr", "TR").language),
)
if (ConstObject.haveSelectLanguage) {
list.findLast { it.language == appLanguageSp }?.isSelect = true
} else {
if (!ConstObject.haveSelectLanguage || ConstObject.selectFollowLanguage) {
list.first().isSelect = true
} else {
list.findLast { it.language == appLanguageSp }?.isSelect = true
}
adapter.submitList(list)
......
......@@ -5,14 +5,11 @@ import java.util.Locale
object LanguageUtils {
fun getSystemLanguage(context: Context): String {
// 获取当前系统的Locale
val locale = context.resources.configuration.locales.get(0)
// 获取语言代码,例如"en"
return locale.language
fun getSystemLanguage(): String {
return Locale.getDefault().language
}
fun getSystemLanguageDefault(context: Context): String {
fun getSystemLanguageDefault(): String {
val supportLanguage = listOf(
Locale.ENGLISH.language,
Locale.PRC.language,
......@@ -31,7 +28,7 @@ object LanguageUtils {
Locale("zh", "TW").language,
Locale("tr", "TR").language
)
var systemLanguage = getSystemLanguage(context)
var systemLanguage = getSystemLanguage()
if (!supportLanguage.contains(systemLanguage)) {
systemLanguage = Locale.ENGLISH.language
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment