diff --git a/app/src/main/java/foundation/e/parentalcontrol/ui/buttons/Slider.kt b/app/src/main/java/foundation/e/parentalcontrol/ui/buttons/Slider.kt index 91aea16c328a0eeecef37def183484eab6f8beed..87185ca5ebca87e0506063aa75ee8e694380b7e0 100644 --- a/app/src/main/java/foundation/e/parentalcontrol/ui/buttons/Slider.kt +++ b/app/src/main/java/foundation/e/parentalcontrol/ui/buttons/Slider.kt @@ -59,7 +59,9 @@ import kotlin.math.roundToInt private val HORIZONTAL_PADDING = 32.dp private val THUMB_WIDTH = 4.dp -private val THUMB_HEIGHT = 40.dp +private val THUMB_HEIGHT = 44.dp + +private val SLIDER_HEIGHT = 12.dp private val TEXT_PADDING = 10.dp @OptIn(ExperimentalMaterial3Api::class) @@ -70,6 +72,7 @@ fun SliderWithStep(steps: Int, value: Float, onValueChange: (Float) -> Unit) { var textBubbleWidth by remember { mutableIntStateOf(0) } val density = LocalDensity.current val e_accent = colorResource(foundation.e.elib.R.color.e_accent) + val e_alpha_accent = colorResource(foundation.e.elib.R.color.e_alpha_accent) val clearZoneColor = if (isSystemInDarkTheme()) Color.Black else Color.White @@ -80,7 +83,7 @@ fun SliderWithStep(steps: Int, value: Float, onValueChange: (Float) -> Unit) { val max = ScreenTimes.NINE_HOURS.value.toFloat() val disable = ScreenTimes.DISABLE.value.toFloat() val paddingPx = with(density) { HORIZONTAL_PADDING.toPx() } - if (sliderPosition == disable) { + if (sliderPosition == min || sliderPosition == disable) { -paddingPx } else if (sliderPosition == max) { (sliderWidth - textBubbleWidth + paddingPx).toFloat() @@ -111,13 +114,15 @@ fun SliderWithStep(steps: Int, value: Float, onValueChange: (Float) -> Unit) { } Box(modifier = Modifier.fillMaxWidth().height(THUMB_HEIGHT)) { - Canvas(modifier = Modifier.fillMaxWidth().height(10.dp).align(Alignment.Center)) { + Canvas( + modifier = Modifier.fillMaxWidth().height(SLIDER_HEIGHT).align(Alignment.Center) + ) { // Draw a small element on the left - val leftPart = 2 * THUMB_WIDTH.toPx() + val leftPart = SLIDER_HEIGHT.toPx() // Full track drawRoundRect( - color = Color.LightGray, + color = e_alpha_accent, topLeft = Offset(0f, 0f), size = Size(size.width, size.height), cornerRadius = CornerRadius(size.height / 2, size.height / 2) @@ -157,7 +162,7 @@ fun SliderWithStep(steps: Int, value: Float, onValueChange: (Float) -> Unit) { }, colors = sliderColor(), thumb = { - Canvas(modifier = Modifier.size(32.dp)) { + Canvas(modifier = Modifier.size(HORIZONTAL_PADDING)) { val rectWidth = THUMB_WIDTH.toPx() val rectHeight = THUMB_HEIGHT.toPx() val left = (size.width - rectWidth) / 2 @@ -166,8 +171,8 @@ fun SliderWithStep(steps: Int, value: Float, onValueChange: (Float) -> Unit) { // Clear around the thumb drawRoundRect( color = clearZoneColor, - topLeft = Offset(left - rectWidth / 2, top), - size = Size(rectWidth * 2, rectHeight), + topLeft = Offset(left - 1.5f * rectWidth, top), + size = Size(rectWidth * 4, rectHeight), cornerRadius = CornerRadius(rectWidth, rectWidth) ) // draw the thumb @@ -207,7 +212,6 @@ fun sliderColor(): SliderColors { @Composable private fun displayText(sliderPosition: Int): String { return when (sliderPosition) { - ScreenTimes.DISABLE.value -> stringResource(R.string.allowed_screen_time_no) ScreenTimes.ZERO_HOUR.value -> stringResource(R.string.slider_0) ScreenTimes.ONE_HOUR.value -> stringResource(R.string.slider_1) ScreenTimes.TWO_HOURS.value -> stringResource(R.string.slider_2) @@ -218,6 +222,6 @@ private fun displayText(sliderPosition: Int): String { ScreenTimes.SEVEN_HOURS.value -> stringResource(R.string.slider_7) ScreenTimes.EIGHT_HOURS.value -> stringResource(R.string.slider_8) ScreenTimes.NINE_HOURS.value -> stringResource(R.string.slider_9) - else -> stringResource(R.string.allowed_screen_time_no) + else -> stringResource(R.string.slider_0) } } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 99111a0bc63ec724baf84f72e0068a49e37fa6f9..c467f6b0b26e2b4312fbeb96cb83cbe873109ccc 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -90,7 +90,7 @@ Keine Anwendung gefunden Deaktivieren deaktiviert - 0 Stunde + Keine Bildschirmzeit 1 Stunde 2 Stunden 3 Stunden diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 70a0f779e685cc8e9b40a0da48ab2e9e487ca66e..e1a9d1123c1c827ab407cfb1da33c864a1a9b3cf 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -93,7 +93,7 @@ No se encontró ninguna aplicación Desactivar desactivado - 0 hora + Sin tiempo de pantalla 1 hora 2 horas 3 horas diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ecabe6b1f14b354318463a2cec4e759caf245035..b2a0a1b28dd73d1e1e71ff9c689ee5a86ec895d6 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -94,7 +94,7 @@ Aucune application trouvée Désactiver Désactivé - 0 heure + Pas de temps d\'écran 1 heure 2 heures 3 heures diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 247dca8337d22e8cae53a4a5b969e8ef49bffd4d..6b980129c49c4d4977b83eb3760a02d764557cd9 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -91,7 +91,7 @@ Nessuna applicazione trovata Disabilita disattivato - 0 ora + Nessun tempo sullo schermo 1 ora 2 ore 3 ore diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 19afb075cd4e0087a1281c298e4fe30dedab78df..502aac16507024bd481f951d4bb575150cefd471 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -83,7 +83,7 @@ Skip Disable Disabled - 0 hour + No screen time 1 hour 2 hours 3 hours