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() {