|
@@ -22,6 +22,7 @@ import androidx.compose.foundation.gestures.detectTapGestures
|
|
|
import androidx.compose.foundation.isSystemInDarkTheme
|
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
|
import androidx.compose.foundation.layout.Box
|
|
|
+import androidx.compose.foundation.layout.BoxScope
|
|
|
import androidx.compose.foundation.layout.Column
|
|
|
import androidx.compose.foundation.layout.ColumnScope
|
|
|
import androidx.compose.foundation.layout.Row
|
|
@@ -249,7 +250,9 @@ fun Settings(navHostController: NavHostController, activity: ComponentActivity)
|
|
|
}
|
|
|
)
|
|
|
|
|
|
- SelectLanguage(icon = Icons.Default.Language, text = context.getString(R.string.language)) {
|
|
|
+ SelectLanguage(
|
|
|
+ icon = Icons.Default.Language,
|
|
|
+ text = context.getString(R.string.language)) {
|
|
|
settingsString = it
|
|
|
}
|
|
|
|
|
@@ -1175,51 +1178,58 @@ fun SelectLanguage(
|
|
|
.padding(top = 15.dp)
|
|
|
.fillMaxSize()
|
|
|
) {
|
|
|
- Box(
|
|
|
+ Column(
|
|
|
modifier = Modifier
|
|
|
.background(Color.Transparent)
|
|
|
.fillMaxSize()
|
|
|
- .padding(start = 0.dp, top = 10.dp, bottom = 10.dp),
|
|
|
+ .padding(start = 0.dp, top = 10.dp, bottom = 25.dp),
|
|
|
) {
|
|
|
+ AddTextSettingsLanguage(
|
|
|
+ text = context.getString(R.string.select_language),
|
|
|
+ size = 18.sp,
|
|
|
+ color = MaterialTheme.colorScheme.primary,
|
|
|
+ bottomPadding = 20.dp,
|
|
|
+ startPadding = 16.dp,
|
|
|
+ style = MaterialTheme.typography.customTypography.displayLarge.copy(
|
|
|
+ color = MaterialTheme.colorScheme.primary
|
|
|
+ ),
|
|
|
+ )
|
|
|
Column(
|
|
|
verticalArrangement = Arrangement.Top,
|
|
|
horizontalAlignment = Alignment.Start,
|
|
|
- modifier = Modifier.verticalScroll(rememberScrollState())
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxSize()
|
|
|
+ .verticalScroll(rememberScrollState())
|
|
|
+ .padding(top = 0.dp)
|
|
|
) {
|
|
|
- AddTextSettings(
|
|
|
- text = context.getString(R.string.language),
|
|
|
- size = 18.sp,
|
|
|
- color = MaterialTheme.colorScheme.primary,
|
|
|
- bottomPadding = 20.dp,
|
|
|
- startPadding = 16.dp,
|
|
|
- style = MaterialTheme.typography.titleSmall,
|
|
|
- )
|
|
|
languages.forEach { language ->
|
|
|
-
|
|
|
Row(
|
|
|
modifier = Modifier
|
|
|
.fillMaxWidth()
|
|
|
- .background(Color.Transparent)
|
|
|
- .padding(start = 2.dp)
|
|
|
+ .height(80.dp)
|
|
|
+ .background(
|
|
|
+ if (language.title == selectedLanguage) Color.Transparent
|
|
|
+ else Color.Transparent
|
|
|
+ )
|
|
|
+ .padding(start = 2.dp, top = 15.dp)
|
|
|
.selectable(
|
|
|
- selected = language.name == selectedLanguage,
|
|
|
+ selected = language.title == selectedLanguage,
|
|
|
onClick = {
|
|
|
- selectedLanguage = language.name
|
|
|
+ selectedLanguage = language.title
|
|
|
basePreferenceHelper.saveLanguage(selectedLanguage)
|
|
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
- LocaleList.forLanguageTags(language.code)
|
|
|
- }
|
|
|
- else {
|
|
|
+ LocaleList.forLanguageTags(language.identifier)
|
|
|
+ } else {
|
|
|
AppCompatDelegate.setApplicationLocales(
|
|
|
LocaleListCompat.forLanguageTags(
|
|
|
- language.code
|
|
|
+ language.identifier
|
|
|
)
|
|
|
)
|
|
|
context.resources.updateConfiguration(
|
|
|
context.resources.configuration.apply {
|
|
|
- setLocale(Locale.forLanguageTag(language.code))
|
|
|
+ setLocale(Locale.forLanguageTag(language.identifier))
|
|
|
},
|
|
|
context.resources.displayMetrics
|
|
|
)
|
|
@@ -1239,27 +1249,25 @@ fun SelectLanguage(
|
|
|
,
|
|
|
verticalAlignment = Alignment.CenterVertically
|
|
|
) {
|
|
|
-// val themeState = isSystemInDarkTheme()
|
|
|
-// val isSystemInDarkTheme by remember { mutableStateOf(themeState) }
|
|
|
RadioButton(
|
|
|
- selected = language.name == selectedLanguage,
|
|
|
+ selected = language.title == selectedLanguage,
|
|
|
onClick = {
|
|
|
- selectedLanguage = language.name
|
|
|
+ selectedLanguage = language.title
|
|
|
basePreferenceHelper.saveLanguage(selectedLanguage)
|
|
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
- LocaleList.forLanguageTags(language.code)
|
|
|
+ LocaleList.forLanguageTags(language.identifier)
|
|
|
}
|
|
|
else {
|
|
|
AppCompatDelegate.setApplicationLocales(
|
|
|
LocaleListCompat.forLanguageTags(
|
|
|
- language.code
|
|
|
+ language.identifier
|
|
|
)
|
|
|
)
|
|
|
context.resources.updateConfiguration(
|
|
|
context.resources.configuration.apply {
|
|
|
- setLocale(Locale.forLanguageTag(language.code))
|
|
|
+ setLocale(Locale.forLanguageTag(language.identifier))
|
|
|
},
|
|
|
context.resources.displayMetrics
|
|
|
)
|
|
@@ -1272,14 +1280,46 @@ fun SelectLanguage(
|
|
|
colors = RadioButtonDefaults.colors(
|
|
|
selectedColor = colorResource(id = R.color.radio_button_blue),
|
|
|
unselectedColor = colorResource(id = R.color.gray_icon),
|
|
|
- )
|
|
|
- )
|
|
|
- Text(text = language.name,
|
|
|
- modifier = Modifier.padding(start = 12.dp),
|
|
|
- style = MaterialTheme.typography.bodySmall,
|
|
|
- color = MaterialTheme.colorScheme.primary
|
|
|
+ ),
|
|
|
+ modifier = Modifier.align(Alignment.CenterVertically)
|
|
|
)
|
|
|
+ Column(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .fillMaxHeight()
|
|
|
+ .padding(start = 5.dp)
|
|
|
+ .background(
|
|
|
+ if (language.title == selectedLanguage) Color.Transparent
|
|
|
+ else Color.Transparent
|
|
|
+ ),
|
|
|
+ verticalArrangement = Arrangement.Center
|
|
|
+ ) {
|
|
|
+ Text(text = language.title,
|
|
|
+ modifier = Modifier.padding(start = 0.dp),
|
|
|
+ style = MaterialTheme.typography.customTypography.displayLarge.copy(
|
|
|
+ fontSize = 16.sp
|
|
|
+ ),
|
|
|
+ color = MaterialTheme.colorScheme.primary
|
|
|
+ )
|
|
|
+ Text(text = language.subTitle,
|
|
|
+ style = MaterialTheme.typography.bodySmall,
|
|
|
+ color = MaterialTheme.colorScheme.primary,
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(top = 2.dp)
|
|
|
+ .alpha(0.4f),
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
+ Surface(
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(start = 55.dp)
|
|
|
+ .height(1.dp)
|
|
|
+ .fillMaxWidth()
|
|
|
+ .alpha(0.2F),
|
|
|
+ color = colorResource(id = R.color.gray_icon)
|
|
|
+ ) {}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1648,6 +1688,25 @@ fun ColumnScope.AddTextSettings(
|
|
|
)
|
|
|
}
|
|
|
|
|
|
+@Composable
|
|
|
+fun ColumnScope.AddTextSettingsLanguage(
|
|
|
+ text: String,
|
|
|
+ size: TextUnit,
|
|
|
+ color: Color,
|
|
|
+ bottomPadding: Dp = 0.dp,
|
|
|
+ startPadding: Dp = 0.dp,
|
|
|
+ style: TextStyle,
|
|
|
+) {
|
|
|
+ Text(
|
|
|
+ text = text,
|
|
|
+ style = style,
|
|
|
+ color = color,
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(bottom = bottomPadding, start = startPadding)
|
|
|
+ .align(Alignment.CenterHorizontally)
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
@Preview
|
|
|
@Composable
|
|
|
fun SettingsPreview() {
|