From 0add1176db1d50aa9d86c48e1492ac78da35bc9b Mon Sep 17 00:00:00 2001 From: Antoine Jaury Date: Mon, 19 Oct 2026 14:40:03 +0200 Subject: [PATCH] refactor: improve layout for speed preferences --- .../composeResources/values/strings.xml | 2 +- .../player/ui/components/LabeledSlider.kt | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/data/resources/src/commonMain/composeResources/values/strings.xml b/data/resources/src/commonMain/composeResources/values/strings.xml index be5a49d..6011c1d 100644 --- a/data/resources/src/commonMain/composeResources/values/strings.xml +++ b/data/resources/src/commonMain/composeResources/values/strings.xml @@ -27,7 +27,7 @@ %1$d % Réglages de lecture Pause entre les phrases - %1$d s + %1$ds %1$d seconde %1$d secondes diff --git a/feature/records/src/commonMain/kotlin/bzh/ajaury/chombev/player/ui/components/LabeledSlider.kt b/feature/records/src/commonMain/kotlin/bzh/ajaury/chombev/player/ui/components/LabeledSlider.kt index 873d6e7..f7e8f84 100644 --- a/feature/records/src/commonMain/kotlin/bzh/ajaury/chombev/player/ui/components/LabeledSlider.kt +++ b/feature/records/src/commonMain/kotlin/bzh/ajaury/chombev/player/ui/components/LabeledSlider.kt @@ -61,18 +61,23 @@ fun LabeledSlider( ) { Row( modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, + horizontalArrangement = Arrangement.spacedBy(16.dp), verticalAlignment = Alignment.CenterVertically, ) { + // The title takes the remaining width and wraps if needed, so the value always keeps + // its full width on a single line. Text( text = title, style = MaterialTheme.typography.titleMedium, color = MaterialTheme.colorScheme.onSurface.copy(alpha = contentAlpha), + modifier = Modifier.weight(1f), ) Text( text = valueLabel, style = MaterialTheme.typography.titleMedium, color = MaterialTheme.colorScheme.primary.copy(alpha = contentAlpha), + maxLines = 1, + softWrap = false, ) } Slider( @@ -110,6 +115,20 @@ private fun LabeledSliderPreview() { } } +@Preview(widthDp = 200) +@Composable +private fun LabeledSliderLongTitlePreview() { + MaterialTheme { + LabeledSlider( + title = "Break between phrases", + valueLabel = "3 s", + value = 3f, + valueRange = 0f..5f, + steps = 4, + ) + } +} + @Preview @Composable private fun LabeledSliderDisabledPreview() {