Loading packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +28 −2 Original line number Diff line number Diff line Loading @@ -45,6 +45,10 @@ import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.layout.positionInRoot import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.CustomAccessibilityAction import androidx.compose.ui.semantics.customActions import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.round import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle Loading Loading @@ -265,7 +269,7 @@ constructor( } override fun setCollapseExpandAction(action: Runnable?) { // Nothing to do yet. But this should be wired to a11y viewModel.collapseExpandAccessibilityAction = action } override fun getHeightDiff(): Int { Loading Loading @@ -419,6 +423,9 @@ constructor( layout(placeable.width, placeable.height) { placeable.place(0, 0) } } .padding(top = { qqsPadding }) .collapseExpandSemanticAction( stringResource(id = R.string.accessibility_quick_settings_expand) ) ) Spacer(modifier = Modifier.weight(1f)) } Loading @@ -428,7 +435,12 @@ constructor( private fun QuickSettingsElement() { val qqsPadding by viewModel.qqsHeaderHeight.collectAsStateWithLifecycle() val qsExtraPadding = dimensionResource(R.dimen.qs_panel_padding_top) Column { Column( modifier = Modifier.collapseExpandSemanticAction( stringResource(id = R.string.accessibility_quick_settings_collapse) ) ) { Box(modifier = Modifier.fillMaxSize().weight(1f)) { Column { Spacer(modifier = Modifier.height { qqsPadding + qsExtraPadding.roundToPx() }) Loading @@ -444,6 +456,20 @@ constructor( } } } private fun Modifier.collapseExpandSemanticAction(label: String): Modifier { return viewModel.collapseExpandAccessibilityAction?.let { semantics { customActions = listOf( CustomAccessibilityAction(label) { it.run() true } ) } } ?: this } } private fun View.setBackPressedDispatcher() { Loading packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt +6 −0 Original line number Diff line number Diff line Loading @@ -218,6 +218,12 @@ constructor( } .stateIn(lifecycleScope, SharingStarted.WhileSubscribed(), QSExpansionState.QQS) /** * Accessibility action for collapsing/expanding QS. The provided runnable is responsible for * determining the correct action based on the expansion state. */ var collapseExpandAccessibilityAction: Runnable? = null @AssistedFactory interface Factory { fun create(lifecycleScope: LifecycleCoroutineScope): QSFragmentComposeViewModel Loading Loading
packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +28 −2 Original line number Diff line number Diff line Loading @@ -45,6 +45,10 @@ import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.layout.positionInRoot import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.CustomAccessibilityAction import androidx.compose.ui.semantics.customActions import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.round import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle Loading Loading @@ -265,7 +269,7 @@ constructor( } override fun setCollapseExpandAction(action: Runnable?) { // Nothing to do yet. But this should be wired to a11y viewModel.collapseExpandAccessibilityAction = action } override fun getHeightDiff(): Int { Loading Loading @@ -419,6 +423,9 @@ constructor( layout(placeable.width, placeable.height) { placeable.place(0, 0) } } .padding(top = { qqsPadding }) .collapseExpandSemanticAction( stringResource(id = R.string.accessibility_quick_settings_expand) ) ) Spacer(modifier = Modifier.weight(1f)) } Loading @@ -428,7 +435,12 @@ constructor( private fun QuickSettingsElement() { val qqsPadding by viewModel.qqsHeaderHeight.collectAsStateWithLifecycle() val qsExtraPadding = dimensionResource(R.dimen.qs_panel_padding_top) Column { Column( modifier = Modifier.collapseExpandSemanticAction( stringResource(id = R.string.accessibility_quick_settings_collapse) ) ) { Box(modifier = Modifier.fillMaxSize().weight(1f)) { Column { Spacer(modifier = Modifier.height { qqsPadding + qsExtraPadding.roundToPx() }) Loading @@ -444,6 +456,20 @@ constructor( } } } private fun Modifier.collapseExpandSemanticAction(label: String): Modifier { return viewModel.collapseExpandAccessibilityAction?.let { semantics { customActions = listOf( CustomAccessibilityAction(label) { it.run() true } ) } } ?: this } } private fun View.setBackPressedDispatcher() { Loading
packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt +6 −0 Original line number Diff line number Diff line Loading @@ -218,6 +218,12 @@ constructor( } .stateIn(lifecycleScope, SharingStarted.WhileSubscribed(), QSExpansionState.QQS) /** * Accessibility action for collapsing/expanding QS. The provided runnable is responsible for * determining the correct action based on the expansion state. */ var collapseExpandAccessibilityAction: Runnable? = null @AssistedFactory interface Factory { fun create(lifecycleScope: LifecycleCoroutineScope): QSFragmentComposeViewModel Loading