Loading packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt +26 −5 Original line number Diff line number Diff line Loading @@ -26,16 +26,19 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredHeight import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.systemGestureExclusion import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.boundsInWindow import androidx.compose.ui.layout.onPlaced Loading @@ -59,6 +62,7 @@ import com.android.systemui.qs.panels.ui.compose.EditMode import com.android.systemui.qs.panels.ui.compose.TileDetails import com.android.systemui.qs.panels.ui.compose.TileGrid import com.android.systemui.qs.panels.ui.compose.toolbar.Toolbar import com.android.systemui.qs.ui.composable.QuickSettingsShade.systemGestureExclusionInShade import com.android.systemui.qs.ui.viewmodel.QuickSettingsContainerViewModel import com.android.systemui.qs.ui.viewmodel.QuickSettingsShadeOverlayActionsViewModel import com.android.systemui.qs.ui.viewmodel.QuickSettingsShadeOverlayContentViewModel Loading Loading @@ -254,9 +258,7 @@ fun ContentScope.QuickSettingsLayout( BrightnessSliderContainer( viewModel = viewModel.brightnessSliderViewModel, containerColor = OverlayShade.Colors.PanelBackground, modifier = Modifier.fillMaxWidth() .height(QuickSettingsShade.Dimensions.BrightnessSliderHeight), modifier = Modifier.systemGestureExclusionInShade().fillMaxWidth(), ) Box { Loading @@ -280,6 +282,25 @@ object QuickSettingsShade { object Dimensions { val Padding = 16.dp val ToolbarHeight = 48.dp val BrightnessSliderHeight = 64.dp } /** * Applies system gesture exclusion to a component adding [Dimensions.Padding] to left and * right. */ @Composable fun Modifier.systemGestureExclusionInShade(): Modifier { val density = LocalDensity.current return systemGestureExclusion { layoutCoordinates -> val sidePadding = with(density) { Dimensions.Padding.toPx() } Rect( offset = Offset(x = -sidePadding, y = 0f), size = Size( width = layoutCoordinates.size.width.toFloat() + 2 * sidePadding, height = layoutCoordinates.size.height.toFloat(), ), ) } } } packages/SystemUI/src/com/android/systemui/brightness/ui/compose/BrightnessSlider.kt +8 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ 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.ui.graphics.drawInOverlay import com.android.systemui.Flags import com.android.systemui.biometrics.Utils.toBitmap Loading Loading @@ -348,7 +349,13 @@ fun BrightnessSliderContainer( DisposableEffect(Unit) { onDispose { viewModel.setIsDragging(false) } } Box(modifier = modifier.fillMaxWidth().sysuiResTag("brightness_slider")) { Box( modifier = modifier .padding(vertical = { SliderBackgroundFrameSize.height.roundToPx() }) .fillMaxWidth() .sysuiResTag("brightness_slider") ) { BrightnessSlider( gammaValue = gamma, valueRange = viewModel.minBrightness.value..viewModel.maxBrightness.value, Loading packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +2 −5 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredHeightIn Loading Loading @@ -128,6 +127,7 @@ import com.android.systemui.qs.panels.ui.compose.QuickQuickSettings import com.android.systemui.qs.panels.ui.compose.TileGrid import com.android.systemui.qs.shared.ui.ElementKeys import com.android.systemui.qs.ui.composable.QuickSettingsShade import com.android.systemui.qs.ui.composable.QuickSettingsShade.systemGestureExclusionInShade import com.android.systemui.qs.ui.composable.QuickSettingsTheme import com.android.systemui.res.R import com.android.systemui.util.LifecycleFragment Loading Loading @@ -716,10 +716,7 @@ constructor( BrightnessSliderContainer( viewModel = containerViewModel.brightnessSliderViewModel, modifier = Modifier.fillMaxWidth() .height( QuickSettingsShade.Dimensions.BrightnessSliderHeight ), Modifier.systemGestureExclusionInShade().fillMaxWidth(), ) } val TileGrid = Loading packages/SystemUI/src/com/android/systemui/settings/brightness/ComposeDialogComposableProvider.kt +1 −6 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.systemui.settings.brightness import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView Loading @@ -26,7 +25,6 @@ import com.android.compose.theme.PlatformTheme import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer import com.android.systemui.brightness.ui.viewmodel.BrightnessSliderViewModel import com.android.systemui.lifecycle.rememberViewModel import com.android.systemui.qs.ui.composable.QuickSettingsShade object ComposeDialogComposableProvider { Loading @@ -46,10 +44,7 @@ private fun BrightnessSliderForDialog( rememberViewModel(traceName = "BrightnessDialog.viewModel") { brightnessSliderViewModelFactory.create(false) } BrightnessSliderContainer( viewModel = viewModel, Modifier.fillMaxWidth().height(QuickSettingsShade.Dimensions.BrightnessSliderHeight), ) BrightnessSliderContainer(viewModel = viewModel, Modifier.fillMaxWidth()) } class ComposableProvider( Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt +26 −5 Original line number Diff line number Diff line Loading @@ -26,16 +26,19 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredHeight import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.systemGestureExclusion import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.boundsInWindow import androidx.compose.ui.layout.onPlaced Loading @@ -59,6 +62,7 @@ import com.android.systemui.qs.panels.ui.compose.EditMode import com.android.systemui.qs.panels.ui.compose.TileDetails import com.android.systemui.qs.panels.ui.compose.TileGrid import com.android.systemui.qs.panels.ui.compose.toolbar.Toolbar import com.android.systemui.qs.ui.composable.QuickSettingsShade.systemGestureExclusionInShade import com.android.systemui.qs.ui.viewmodel.QuickSettingsContainerViewModel import com.android.systemui.qs.ui.viewmodel.QuickSettingsShadeOverlayActionsViewModel import com.android.systemui.qs.ui.viewmodel.QuickSettingsShadeOverlayContentViewModel Loading Loading @@ -254,9 +258,7 @@ fun ContentScope.QuickSettingsLayout( BrightnessSliderContainer( viewModel = viewModel.brightnessSliderViewModel, containerColor = OverlayShade.Colors.PanelBackground, modifier = Modifier.fillMaxWidth() .height(QuickSettingsShade.Dimensions.BrightnessSliderHeight), modifier = Modifier.systemGestureExclusionInShade().fillMaxWidth(), ) Box { Loading @@ -280,6 +282,25 @@ object QuickSettingsShade { object Dimensions { val Padding = 16.dp val ToolbarHeight = 48.dp val BrightnessSliderHeight = 64.dp } /** * Applies system gesture exclusion to a component adding [Dimensions.Padding] to left and * right. */ @Composable fun Modifier.systemGestureExclusionInShade(): Modifier { val density = LocalDensity.current return systemGestureExclusion { layoutCoordinates -> val sidePadding = with(density) { Dimensions.Padding.toPx() } Rect( offset = Offset(x = -sidePadding, y = 0f), size = Size( width = layoutCoordinates.size.width.toFloat() + 2 * sidePadding, height = layoutCoordinates.size.height.toFloat(), ), ) } } }
packages/SystemUI/src/com/android/systemui/brightness/ui/compose/BrightnessSlider.kt +8 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ 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.ui.graphics.drawInOverlay import com.android.systemui.Flags import com.android.systemui.biometrics.Utils.toBitmap Loading Loading @@ -348,7 +349,13 @@ fun BrightnessSliderContainer( DisposableEffect(Unit) { onDispose { viewModel.setIsDragging(false) } } Box(modifier = modifier.fillMaxWidth().sysuiResTag("brightness_slider")) { Box( modifier = modifier .padding(vertical = { SliderBackgroundFrameSize.height.roundToPx() }) .fillMaxWidth() .sysuiResTag("brightness_slider") ) { BrightnessSlider( gammaValue = gamma, valueRange = viewModel.minBrightness.value..viewModel.maxBrightness.value, Loading
packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +2 −5 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredHeightIn Loading Loading @@ -128,6 +127,7 @@ import com.android.systemui.qs.panels.ui.compose.QuickQuickSettings import com.android.systemui.qs.panels.ui.compose.TileGrid import com.android.systemui.qs.shared.ui.ElementKeys import com.android.systemui.qs.ui.composable.QuickSettingsShade import com.android.systemui.qs.ui.composable.QuickSettingsShade.systemGestureExclusionInShade import com.android.systemui.qs.ui.composable.QuickSettingsTheme import com.android.systemui.res.R import com.android.systemui.util.LifecycleFragment Loading Loading @@ -716,10 +716,7 @@ constructor( BrightnessSliderContainer( viewModel = containerViewModel.brightnessSliderViewModel, modifier = Modifier.fillMaxWidth() .height( QuickSettingsShade.Dimensions.BrightnessSliderHeight ), Modifier.systemGestureExclusionInShade().fillMaxWidth(), ) } val TileGrid = Loading
packages/SystemUI/src/com/android/systemui/settings/brightness/ComposeDialogComposableProvider.kt +1 −6 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.systemui.settings.brightness import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView Loading @@ -26,7 +25,6 @@ import com.android.compose.theme.PlatformTheme import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer import com.android.systemui.brightness.ui.viewmodel.BrightnessSliderViewModel import com.android.systemui.lifecycle.rememberViewModel import com.android.systemui.qs.ui.composable.QuickSettingsShade object ComposeDialogComposableProvider { Loading @@ -46,10 +44,7 @@ private fun BrightnessSliderForDialog( rememberViewModel(traceName = "BrightnessDialog.viewModel") { brightnessSliderViewModelFactory.create(false) } BrightnessSliderContainer( viewModel = viewModel, Modifier.fillMaxWidth().height(QuickSettingsShade.Dimensions.BrightnessSliderHeight), ) BrightnessSliderContainer(viewModel = viewModel, Modifier.fillMaxWidth()) } class ComposableProvider( Loading