Commit b2917ad3 authored by wanglei's avatar wanglei

...

parent bc77dcde
...@@ -104,5 +104,13 @@ object ConstObject { ...@@ -104,5 +104,13 @@ object ConstObject {
field = value field = value
AppPreferences.getInstance().put("haveSelectLanguage", value, true) 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( ...@@ -5,6 +5,7 @@ data class LanguageBean(
val language: String val language: String
) { ) {
var isSelect: Boolean = false var isSelect: Boolean = false
var isFollowSystem: Boolean = false
companion object { companion object {
const val English = "English" const val English = "English"
......
...@@ -55,7 +55,7 @@ class MyApplication : Application() { ...@@ -55,7 +55,7 @@ class MyApplication : Application() {
} }
private fun initSystemLanguage() { private fun initSystemLanguage() {
val systemLanguage = getSystemLanguage(context) val systemLanguage = getSystemLanguage()
val supportLanguage = listOf( val supportLanguage = listOf(
Locale.ENGLISH.language, Locale.ENGLISH.language,
......
...@@ -40,17 +40,20 @@ class SetLanguageActivity : BaseActivity<ActivitySetLanguageBinding>() { ...@@ -40,17 +40,20 @@ class SetLanguageActivity : BaseActivity<ActivitySetLanguageBinding>() {
onBackPressedDispatcher.onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
binding.tvOk.setOnClickListener { 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) { if (changeLanguageSp != selectLanguage) {
changeLanguageSp = selectLanguage changeLanguageSp = selectLanguage
} }
ConstObject.selectFollowLanguage = item?.isFollowSystem == true
onBackPressedDispatcher.onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
} }
private fun initData() { private fun initData() {
val list = listOf( 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.English, Locale.ENGLISH.language),
LanguageBean(LanguageBean.简体中文, Locale.PRC.language), LanguageBean(LanguageBean.简体中文, Locale.PRC.language),
LanguageBean(LanguageBean.português, Locale("pt", "BR").language), LanguageBean(LanguageBean.português, Locale("pt", "BR").language),
...@@ -68,10 +71,10 @@ class SetLanguageActivity : BaseActivity<ActivitySetLanguageBinding>() { ...@@ -68,10 +71,10 @@ class SetLanguageActivity : BaseActivity<ActivitySetLanguageBinding>() {
LanguageBean(LanguageBean.繁體中文, Locale("zh", "TW").language), LanguageBean(LanguageBean.繁體中文, Locale("zh", "TW").language),
LanguageBean(LanguageBean.Türk, Locale("tr", "TR").language), LanguageBean(LanguageBean.Türk, Locale("tr", "TR").language),
) )
if (ConstObject.haveSelectLanguage) { if (!ConstObject.haveSelectLanguage || ConstObject.selectFollowLanguage) {
list.findLast { it.language == appLanguageSp }?.isSelect = true
} else {
list.first().isSelect = true list.first().isSelect = true
} else {
list.findLast { it.language == appLanguageSp }?.isSelect = true
} }
adapter.submitList(list) adapter.submitList(list)
......
...@@ -5,14 +5,11 @@ import java.util.Locale ...@@ -5,14 +5,11 @@ import java.util.Locale
object LanguageUtils { object LanguageUtils {
fun getSystemLanguage(context: Context): String { fun getSystemLanguage(): String {
// 获取当前系统的Locale return Locale.getDefault().language
val locale = context.resources.configuration.locales.get(0)
// 获取语言代码,例如"en"
return locale.language
} }
fun getSystemLanguageDefault(context: Context): String { fun getSystemLanguageDefault(): String {
val supportLanguage = listOf( val supportLanguage = listOf(
Locale.ENGLISH.language, Locale.ENGLISH.language,
Locale.PRC.language, Locale.PRC.language,
...@@ -31,7 +28,7 @@ object LanguageUtils { ...@@ -31,7 +28,7 @@ object LanguageUtils {
Locale("zh", "TW").language, Locale("zh", "TW").language,
Locale("tr", "TR").language Locale("tr", "TR").language
) )
var systemLanguage = getSystemLanguage(context) var systemLanguage = getSystemLanguage()
if (!supportLanguage.contains(systemLanguage)) { if (!supportLanguage.contains(systemLanguage)) {
systemLanguage = Locale.ENGLISH.language 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