|
@@ -1081,6 +1081,7 @@ fun SelectLanguage(
|
|
|
val sheetState = rememberModalBottomSheetState()
|
|
|
val context = LocalContext.current
|
|
|
val basePreferenceHelper = BasePreferenceHelper(context)
|
|
|
+ var selectedLanguage by remember { mutableStateOf(basePreferenceHelper.getLanguage()) }
|
|
|
|
|
|
Row(
|
|
|
modifier = Modifier
|
|
@@ -1189,12 +1190,16 @@ fun SelectLanguage(
|
|
|
.background(Color.Transparent)
|
|
|
.padding(start = 2.dp)
|
|
|
.selectable(
|
|
|
- selected = language == languages[0],
|
|
|
+ selected = language.name == selectedLanguage,
|
|
|
onClick = {
|
|
|
+ selectedLanguage = language.name
|
|
|
+ basePreferenceHelper.saveLanguage(selectedLanguage)
|
|
|
+
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
LocaleList.forLanguageTags(language.code)
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
AppCompatDelegate.setApplicationLocales(
|
|
|
LocaleListCompat.forLanguageTags(
|
|
|
language.code
|
|
@@ -1206,14 +1211,7 @@ fun SelectLanguage(
|
|
|
},
|
|
|
context.resources.displayMetrics
|
|
|
)
|
|
|
-// Log.d(
|
|
|
-// "test_settings_screen",
|
|
|
-// "Click = " + AppCompatDelegate
|
|
|
-// .getApplicationLocales()
|
|
|
-// .toString()
|
|
|
-// )
|
|
|
changeLanguage(context.getString(R.string.settings))
|
|
|
-
|
|
|
}
|
|
|
isLanguageSheetOpen = false
|
|
|
},
|
|
@@ -1229,20 +1227,30 @@ fun SelectLanguage(
|
|
|
) {
|
|
|
// val themeState = isSystemInDarkTheme()
|
|
|
// val isSystemInDarkTheme by remember { mutableStateOf(themeState) }
|
|
|
- RadioButton(selected = language == languages[0],
|
|
|
+ RadioButton(
|
|
|
+ selected = language.name == selectedLanguage,
|
|
|
onClick = {
|
|
|
-// selectedtheme.value = theme
|
|
|
-// basePreferenceHelper.saveTheme(selectedtheme.value)
|
|
|
-
|
|
|
-// if (selectedtheme.value == themesList[0])
|
|
|
-// {
|
|
|
-// Log.d("test_theme", "true: -> $systemTheme")
|
|
|
-// isDarkTheme.value = systemTheme
|
|
|
-// }
|
|
|
-// else {
|
|
|
-// Log.d("test_theme", "false: -> $systemTheme")
|
|
|
-// isDarkTheme.value = selectedtheme.value == themesList[2]
|
|
|
-// }
|
|
|
+ selectedLanguage = language.name
|
|
|
+ basePreferenceHelper.saveLanguage(selectedLanguage)
|
|
|
+
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
+ context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
+ LocaleList.forLanguageTags(language.code)
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ AppCompatDelegate.setApplicationLocales(
|
|
|
+ LocaleListCompat.forLanguageTags(
|
|
|
+ language.code
|
|
|
+ )
|
|
|
+ )
|
|
|
+ context.resources.updateConfiguration(
|
|
|
+ context.resources.configuration.apply {
|
|
|
+ setLocale(Locale.forLanguageTag(language.code))
|
|
|
+ },
|
|
|
+ context.resources.displayMetrics
|
|
|
+ )
|
|
|
+ changeLanguage(context.getString(R.string.settings))
|
|
|
+ }
|
|
|
isLanguageSheetOpen = false
|
|
|
},
|
|
|
colors = RadioButtonDefaults.colors(
|