From b5d2e149e5708b8ebbbe15728435d4368bf7eeab Mon Sep 17 00:00:00 2001 From: frankpreel Date: Mon, 26 May 2025 17:50:10 +0200 Subject: [PATCH 1/5] fix: The slider in the Screen time management screen does not follow the mock-up REF: https://gitlab.e.foundation/e/os/backlog/-/issues/3317 --- .../e/parentalcontrol/ui/buttons/Slider.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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 91aea16..2d1fdf9 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 @@ -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 -- GitLab From 28351077b5da44422655b78a4cde60ed94e30553 Mon Sep 17 00:00:00 2001 From: Nishith Khanna Date: Tue, 27 May 2025 13:35:16 +0530 Subject: [PATCH 2/5] Remove 0 hour and make no screen time set as default --- .../java/foundation/e/parentalcontrol/ui/buttons/Slider.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 2d1fdf9..25f8417 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 @@ -81,9 +81,8 @@ fun SliderWithStep(steps: Int, value: Float, onValueChange: (Float) -> Unit) { derivedStateOf { val min = ScreenTimes.ZERO_HOUR.value.toFloat() 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) { -paddingPx } else if (sliderPosition == max) { (sliderWidth - textBubbleWidth + paddingPx).toFloat() @@ -212,8 +211,7 @@ 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.ZERO_HOUR.value -> stringResource(R.string.allowed_screen_time_no) ScreenTimes.ONE_HOUR.value -> stringResource(R.string.slider_1) ScreenTimes.TWO_HOURS.value -> stringResource(R.string.slider_2) ScreenTimes.THREE_HOURS.value -> stringResource(R.string.slider_3) -- GitLab From 68d55906e7300fcab4f20f1050ae249cc4fb6513 Mon Sep 17 00:00:00 2001 From: frankpreel Date: Tue, 27 May 2025 10:32:11 +0200 Subject: [PATCH 3/5] Reverse previous commit, and just change the wording fot 0h --- .../java/foundation/e/parentalcontrol/ui/buttons/Slider.kt | 6 ++++-- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 6 files changed, 9 insertions(+), 7 deletions(-) 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 25f8417..2d1fdf9 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 @@ -81,8 +81,9 @@ fun SliderWithStep(steps: Int, value: Float, onValueChange: (Float) -> Unit) { derivedStateOf { val min = ScreenTimes.ZERO_HOUR.value.toFloat() val max = ScreenTimes.NINE_HOURS.value.toFloat() + val disable = ScreenTimes.DISABLE.value.toFloat() val paddingPx = with(density) { HORIZONTAL_PADDING.toPx() } - if (sliderPosition == min) { + if (sliderPosition == disable) { -paddingPx } else if (sliderPosition == max) { (sliderWidth - textBubbleWidth + paddingPx).toFloat() @@ -211,7 +212,8 @@ fun sliderColor(): SliderColors { @Composable private fun displayText(sliderPosition: Int): String { return when (sliderPosition) { - ScreenTimes.ZERO_HOUR.value -> stringResource(R.string.allowed_screen_time_no) + 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) ScreenTimes.THREE_HOURS.value -> stringResource(R.string.slider_3) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 99111a0..c467f6b 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 70a0f77..e1a9d11 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 ecabe6b..b2a0a1b 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 247dca8..6b98012 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 19afb07..502aac1 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 -- GitLab From 4f92dbc89843940586229ccd4a3d14d1f4093c69 Mon Sep 17 00:00:00 2001 From: frankpreel Date: Tue, 27 May 2025 10:32:11 +0200 Subject: [PATCH 4/5] Reverse previous commit, and just change the wording fot 0h --- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 99111a0..c467f6b 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 70a0f77..e1a9d11 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 ecabe6b..b2a0a1b 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 247dca8..6b98012 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 19afb07..502aac1 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 -- GitLab From f0158d1b5227b0044a8f57f5ecd7c57c267cac29 Mon Sep 17 00:00:00 2001 From: frankpreel Date: Tue, 27 May 2025 11:21:20 +0200 Subject: [PATCH 5/5] No screen time displayed whatever the status (0 or not set) --- .../java/foundation/e/parentalcontrol/ui/buttons/Slider.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 2d1fdf9..87185ca 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 @@ -83,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() @@ -212,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) @@ -223,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) } } -- GitLab