Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit db14f103 authored by Fabián Kozynski's avatar Fabián Kozynski
Browse files

Fix a11y in brightness slider

Put the clickable (when restricted) inside a `thenIf`. That way, it
won't mark the whole slider as disable when just the click behavior is
disabled.

Also, add the content description for the brightness slider.

Test: manual, talkback, set-user-restriction
Fixes: 412320165
Flag: com.android.systemui.qs_ui_refactor_compose_fragment
Change-Id: I3d660b8507600e87f4d3e2b9c1cbb06026bee7f8
parent 120da50d
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -69,11 +69,15 @@ import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.input.pointer.pointerInteropFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.compose.modifiers.padding
import com.android.compose.modifiers.thenIf
import com.android.compose.theme.LocalAndroidColorScheme
import com.android.compose.ui.graphics.drawInOverlay
import com.android.systemui.Flags
@@ -124,6 +128,7 @@ fun BrightnessSlider(
    val floatValueRange = valueRange.first.toFloat()..valueRange.last.toFloat()
    val isRestricted = restriction is PolicyRestriction.Restricted
    val enabled = !isRestricted
    val contentDescription = stringResource(R.string.accessibility_brightness)
    val interactionSource = remember { MutableInteractionSource() }
    val hapticsViewModel: SliderHapticsViewModel? =
        if (Flags.hapticsForComposeSliders()) {
@@ -202,10 +207,15 @@ fun BrightnessSlider(
            }
        },
        modifier =
            modifier.sysuiResTag("slider").clickable(enabled = isRestricted) {
            modifier
                .sysuiResTag("slider")
                .semantics(mergeDescendants = true) { this.contentDescription = contentDescription }
                .thenIf(isRestricted) {
                    Modifier.clickable {
                        if (restriction is PolicyRestriction.Restricted) {
                            onRestrictedClick(restriction)
                        }
                    }
                },
        interactionSource = interactionSource,
        thumb = {