|
@@ -48,6 +48,7 @@ import androidx.compose.material3.AlertDialog
|
|
import androidx.compose.material3.BottomSheetDefaults
|
|
import androidx.compose.material3.BottomSheetDefaults
|
|
import androidx.compose.material3.Button
|
|
import androidx.compose.material3.Button
|
|
import androidx.compose.material3.ButtonDefaults
|
|
import androidx.compose.material3.ButtonDefaults
|
|
|
|
+import androidx.compose.material3.CircularProgressIndicator
|
|
import androidx.compose.material3.DockedSearchBar
|
|
import androidx.compose.material3.DockedSearchBar
|
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
|
import androidx.compose.material3.Icon
|
|
import androidx.compose.material3.Icon
|
|
@@ -68,6 +69,7 @@ import androidx.compose.runtime.LaunchedEffect
|
|
import androidx.compose.runtime.MutableState
|
|
import androidx.compose.runtime.MutableState
|
|
import androidx.compose.runtime.getValue
|
|
import androidx.compose.runtime.getValue
|
|
import androidx.compose.runtime.livedata.observeAsState
|
|
import androidx.compose.runtime.livedata.observeAsState
|
|
|
|
+import androidx.compose.runtime.mutableFloatStateOf
|
|
import androidx.compose.runtime.mutableStateOf
|
|
import androidx.compose.runtime.mutableStateOf
|
|
import androidx.compose.runtime.remember
|
|
import androidx.compose.runtime.remember
|
|
import androidx.compose.runtime.rememberCoroutineScope
|
|
import androidx.compose.runtime.rememberCoroutineScope
|
|
@@ -313,6 +315,7 @@ fun Settings(navHostController: NavHostController, activity: ComponentActivity)
|
|
Log.d("smartLocationList", "L:: server = ${it.server_name}")
|
|
Log.d("smartLocationList", "L:: server = ${it.server_name}")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ splashViewModelSplash.mutableLiveDataLanguageStatus.value = false
|
|
}
|
|
}
|
|
|
|
|
|
splashViewModelSplash.mutableLiveDataServerData.value = null
|
|
splashViewModelSplash.mutableLiveDataServerData.value = null
|
|
@@ -1240,40 +1243,103 @@ fun SelectLanguage(
|
|
.padding(top = 15.dp)
|
|
.padding(top = 15.dp)
|
|
.fillMaxSize()
|
|
.fillMaxSize()
|
|
) {
|
|
) {
|
|
- Column(
|
|
|
|
|
|
+ Box(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
.background(Color.Transparent)
|
|
.background(Color.Transparent)
|
|
.fillMaxSize()
|
|
.fillMaxSize()
|
|
.padding(start = 0.dp, top = 10.dp, bottom = 25.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
|
|
|
|
- .fillMaxSize()
|
|
|
|
- .verticalScroll(rememberScrollState())
|
|
|
|
- .padding(top = 0.dp)
|
|
|
|
- ) {
|
|
|
|
- languages.forEach { language ->
|
|
|
|
- Row(
|
|
|
|
- modifier = Modifier
|
|
|
|
- .fillMaxWidth()
|
|
|
|
- .height(80.dp)
|
|
|
|
- .background(
|
|
|
|
- Color.Transparent
|
|
|
|
- )
|
|
|
|
- .padding(start = 2.dp, top = 15.dp)
|
|
|
|
- .selectable(
|
|
|
|
|
|
+ if (splashViewModelSplash.liveDataLanguageStatus.observeAsState().value == true) {
|
|
|
|
+ var progress by remember { mutableFloatStateOf(0.1F) }
|
|
|
|
+
|
|
|
|
+ LaunchedEffect(key1 = Unit) {
|
|
|
|
+ while (true) {
|
|
|
|
+ for (i in 1..100) {
|
|
|
|
+ progress = i.toFloat()/100F
|
|
|
|
+ delay(20)
|
|
|
|
+ }
|
|
|
|
+ progress = 0.1F
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ CircularProgressIndicator(
|
|
|
|
+ progress = { progress },
|
|
|
|
+ modifier = Modifier
|
|
|
|
+ .size(50.dp)
|
|
|
|
+ .align(Alignment.Center)
|
|
|
|
+ ,
|
|
|
|
+ color = colorResource(id = R.color.yellow_text),
|
|
|
|
+ strokeWidth = 5.dp,
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Column() {
|
|
|
|
+ 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
|
|
|
|
+ .fillMaxSize()
|
|
|
|
+ .verticalScroll(rememberScrollState())
|
|
|
|
+ .padding(top = 0.dp)
|
|
|
|
+ ) {
|
|
|
|
+ languages.forEach { language ->
|
|
|
|
+ Row(
|
|
|
|
+ modifier = Modifier
|
|
|
|
+ .fillMaxWidth()
|
|
|
|
+ .height(80.dp)
|
|
|
|
+ .background(
|
|
|
|
+ Color.Transparent
|
|
|
|
+ )
|
|
|
|
+ .padding(start = 2.dp, top = 15.dp)
|
|
|
|
+ .selectable(
|
|
|
|
+ selected = selectedLanguage == language.identifier,
|
|
|
|
+ onClick = {
|
|
|
|
+ selectedLanguage = language.identifier
|
|
|
|
+ basePreferenceHelper.saveLanguage(selectedLanguage)
|
|
|
|
+
|
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
|
+ context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
|
+ LocaleList.forLanguageTags(language.identifier)
|
|
|
|
+ } else {
|
|
|
|
+ AppCompatDelegate.setApplicationLocales(
|
|
|
|
+ LocaleListCompat.forLanguageTags(
|
|
|
|
+ language.identifier
|
|
|
|
+ )
|
|
|
|
+ )
|
|
|
|
+ context.resources.updateConfiguration(
|
|
|
|
+ context.resources.configuration.apply {
|
|
|
|
+ setLocale(Locale.forLanguageTag(language.identifier))
|
|
|
|
+ },
|
|
|
|
+ context.resources.displayMetrics
|
|
|
|
+ )
|
|
|
|
+ changeLanguage(context.getString(R.string.settings))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ splashViewModelSplash.mutableLiveDataLanguageStatus.value = true
|
|
|
|
+ splashViewModelSplash.serverDataApi()
|
|
|
|
+// isLanguageSheetOpen = false
|
|
|
|
+ },
|
|
|
|
+ )
|
|
|
|
+// .indication(
|
|
|
|
+// indication = null,
|
|
|
|
+// interactionSource = remember {
|
|
|
|
+// MutableInteractionSource()
|
|
|
|
+// }
|
|
|
|
+// )
|
|
|
|
+ ,
|
|
|
|
+ verticalAlignment = Alignment.CenterVertically
|
|
|
|
+ ) {
|
|
|
|
+ RadioButton(
|
|
selected = selectedLanguage == language.identifier,
|
|
selected = selectedLanguage == language.identifier,
|
|
onClick = {
|
|
onClick = {
|
|
selectedLanguage = language.identifier
|
|
selectedLanguage = language.identifier
|
|
@@ -1282,7 +1348,8 @@ fun SelectLanguage(
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
LocaleList.forLanguageTags(language.identifier)
|
|
LocaleList.forLanguageTags(language.identifier)
|
|
- } else {
|
|
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
AppCompatDelegate.setApplicationLocales(
|
|
AppCompatDelegate.setApplicationLocales(
|
|
LocaleListCompat.forLanguageTags(
|
|
LocaleListCompat.forLanguageTags(
|
|
language.identifier
|
|
language.identifier
|
|
@@ -1297,87 +1364,51 @@ fun SelectLanguage(
|
|
changeLanguage(context.getString(R.string.settings))
|
|
changeLanguage(context.getString(R.string.settings))
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ splashViewModelSplash.mutableLiveDataLanguageStatus.value = true
|
|
splashViewModelSplash.serverDataApi()
|
|
splashViewModelSplash.serverDataApi()
|
|
-// isLanguageSheetOpen = false
|
|
|
|
- },
|
|
|
|
- )
|
|
|
|
-// .indication(
|
|
|
|
-// indication = null,
|
|
|
|
-// interactionSource = remember {
|
|
|
|
-// MutableInteractionSource()
|
|
|
|
-// }
|
|
|
|
-// )
|
|
|
|
- ,
|
|
|
|
- verticalAlignment = Alignment.CenterVertically
|
|
|
|
- ) {
|
|
|
|
- RadioButton(
|
|
|
|
- selected = selectedLanguage == language.identifier,
|
|
|
|
- onClick = {
|
|
|
|
- selectedLanguage = language.identifier
|
|
|
|
- basePreferenceHelper.saveLanguage(selectedLanguage)
|
|
|
|
-
|
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
|
- context.getSystemService(LocaleManager::class.java).applicationLocales =
|
|
|
|
- LocaleList.forLanguageTags(language.identifier)
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- AppCompatDelegate.setApplicationLocales(
|
|
|
|
- LocaleListCompat.forLanguageTags(
|
|
|
|
- language.identifier
|
|
|
|
- )
|
|
|
|
- )
|
|
|
|
- context.resources.updateConfiguration(
|
|
|
|
- context.resources.configuration.apply {
|
|
|
|
- setLocale(Locale.forLanguageTag(language.identifier))
|
|
|
|
- },
|
|
|
|
- context.resources.displayMetrics
|
|
|
|
- )
|
|
|
|
- changeLanguage(context.getString(R.string.settings))
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- splashViewModelSplash.serverDataApi()
|
|
|
|
// isLanguageSheetOpen = false
|
|
// isLanguageSheetOpen = false
|
|
- },
|
|
|
|
- colors = RadioButtonDefaults.colors(
|
|
|
|
- selectedColor = colorResource(id = R.color.radio_button_blue),
|
|
|
|
- unselectedColor = colorResource(id = R.color.gray_icon),
|
|
|
|
- ),
|
|
|
|
- modifier = Modifier.align(Alignment.CenterVertically)
|
|
|
|
- )
|
|
|
|
- Column(
|
|
|
|
- modifier = Modifier
|
|
|
|
- .fillMaxWidth()
|
|
|
|
- .fillMaxHeight()
|
|
|
|
- .padding(start = 5.dp)
|
|
|
|
- .background(
|
|
|
|
- Color.Transparent
|
|
|
|
- ),
|
|
|
|
- verticalArrangement = Arrangement.Center
|
|
|
|
- ) {
|
|
|
|
- Text(text = language.title,
|
|
|
|
- modifier = Modifier.padding(start = 0.dp),
|
|
|
|
- style = MaterialTheme.typography.customTypography.displayLarge.copy(
|
|
|
|
- fontSize = 16.sp
|
|
|
|
|
|
+ },
|
|
|
|
+ colors = RadioButtonDefaults.colors(
|
|
|
|
+ selectedColor = colorResource(id = R.color.radio_button_blue),
|
|
|
|
+ unselectedColor = colorResource(id = R.color.gray_icon),
|
|
),
|
|
),
|
|
- color = MaterialTheme.colorScheme.primary
|
|
|
|
|
|
+ modifier = Modifier.align(Alignment.CenterVertically)
|
|
)
|
|
)
|
|
- Text(text = language.subTitle,
|
|
|
|
- style = MaterialTheme.typography.bodySmall,
|
|
|
|
- color = MaterialTheme.colorScheme.primary,
|
|
|
|
|
|
+ Column(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
- .padding(top = 2.dp)
|
|
|
|
- .alpha(0.4f),
|
|
|
|
|
|
+ .fillMaxWidth()
|
|
|
|
+ .fillMaxHeight()
|
|
|
|
+ .padding(start = 5.dp)
|
|
|
|
+ .background(
|
|
|
|
+ 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)
|
|
|
|
+ ) {}
|
|
}
|
|
}
|
|
- Surface(
|
|
|
|
- modifier = Modifier
|
|
|
|
- .padding(start = 55.dp)
|
|
|
|
- .height(1.dp)
|
|
|
|
- .fillMaxWidth()
|
|
|
|
- .alpha(0.2F),
|
|
|
|
- color = colorResource(id = R.color.gray_icon)
|
|
|
|
- ) {}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|