From 5d8c9c05513fa70c295423c677bca3507be47f35 Mon Sep 17 00:00:00 2001 From: Avently <7953703+avently@users.noreply.github.com> Date: Tue, 22 Oct 2024 17:31:38 +0700 Subject: [PATCH] faster update and better layout --- .../views/usersettings/Appearance.android.kt | 6 +++--- .../common/views/usersettings/Appearance.kt | 16 ++++++---------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/usersettings/Appearance.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/usersettings/Appearance.android.kt index 886e886d37..6d8d6ef765 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/usersettings/Appearance.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/usersettings/Appearance.android.kt @@ -119,11 +119,11 @@ fun AppearanceScope.AppearanceLayout( SectionDividerSpaced() BarsAlphaSection(MR.strings.appearance_in_app_bars_alpha, appPrefs.inAppBarsAlpha, 0.9f) - SectionDividerSpaced() - SectionSpacer() + + SectionDividerSpaced(maxTopPadding = true) BarsAlphaSection(MR.strings.appearance_nav_bar_alpha, appPrefs.navBarAlpha, 0.6f) - SectionDividerSpaced() + SectionDividerSpaced(maxTopPadding = true) ProfileImageSection() SectionDividerSpaced(maxTopPadding = true) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/Appearance.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/Appearance.kt index bc4a6b4306..9a10d7f7d7 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/Appearance.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/Appearance.kt @@ -173,34 +173,30 @@ object AppearanceScope { @Composable fun BarsAlphaSection(sectionTitle: StringResource, pref: SharedPreference, defaultValue: Float) { - val barsAlpha = remember { mutableStateOf(pref.get()) } + val prefValue = remember { pref.state }.value SectionView(stringResource(sectionTitle).uppercase(), contentPadding = PaddingValues(horizontal = DEFAULT_PADDING)) { Row(Modifier.padding(top = 10.dp), verticalAlignment = Alignment.CenterVertically) { Box(Modifier.size(60.dp) .background(MaterialTheme.colors.surface, RoundedCornerShape(percent = 22)) .clip(RoundedCornerShape(percent = 22)) .clickable { - barsAlpha.value = defaultValue - pref.set(barsAlpha.value) + pref.set(defaultValue) }, contentAlignment = Alignment.Center) { - Text("${barsAlpha.value}", - color = if (barsAlpha.value == defaultValue) MaterialTheme.colors.primary else MaterialTheme.colors.onBackground, + Text("$prefValue", + color = if (prefValue == defaultValue) MaterialTheme.colors.primary else MaterialTheme.colors.onBackground, fontSize = 12.sp, maxLines = 1 ) } Spacer(Modifier.width(10.dp)) Slider( - barsAlpha.value, + prefValue, valueRange = 0f..1f, steps = 11, onValueChange = { val diff = it % 0.1f - barsAlpha.value = String.format(Locale.US, "%.1f", it + (if (diff >= 0.05f) -diff + 0.1f else -diff)).toFloatOrNull() ?: 1f - }, - onValueChangeFinished = { - pref.set(barsAlpha.value) + pref.set(String.format(Locale.US, "%.1f", it + (if (diff >= 0.05f) -diff + 0.1f else -diff)).toFloatOrNull() ?: 1f) }, colors = SliderDefaults.colors( activeTickColor = Color.Transparent,