Loading packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt +2 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.UserAction import com.android.compose.animation.scene.UserActionResult import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.animation.scene.mechanics.TileRevealFlag import com.android.compose.lifecycle.LaunchedEffectWithLifecycle import com.android.compose.modifiers.thenIf import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer Loading Loading @@ -392,6 +393,7 @@ private fun ContentScope.QuickSettingsLayout( TileGrid( viewModel = qsContainerViewModel.tileGridViewModel, modifier = Modifier.fillMaxWidth(), enableRevealEffect = TileRevealFlag.isEnabled, ) // TODO(b/428805936): Double check this padding. Loading packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt +5 −0 Original line number Diff line number Diff line Loading @@ -51,10 +51,13 @@ import androidx.compose.ui.unit.dp import com.android.compose.animation.scene.ContentScope import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.LowestZIndexContentPicker import com.android.compose.animation.scene.mechanics.TileRevealFlag import com.android.compose.animation.scene.mechanics.rememberGestureContext import com.android.compose.modifiers.thenIf import com.android.compose.windowsizeclass.LocalWindowSizeClass import com.android.mechanics.behavior.VerticalExpandContainerSpec import com.android.mechanics.behavior.verticalExpandContainerBackground import com.android.mechanics.compose.modifier.motionDriver import com.android.systemui.res.R import com.android.systemui.shade.ui.ShadeColors.shadePanel import com.android.systemui.shade.ui.ShadeColors.shadePanelScrimBehind Loading Loading @@ -86,12 +89,14 @@ fun ContentScope.OverlayShade( Modifier.fillMaxSize().panelContainerPadding(isFullWidth, alignmentOnWideScreens), contentAlignment = if (isFullWidth) Alignment.TopCenter else alignmentOnWideScreens, ) { val gestureContext = rememberGestureContext() Panel( enableTransparency = enableTransparency, spec = panelSpec, modifier = Modifier.overscroll(verticalOverscrollEffect) .element(panelElement) .thenIf(TileRevealFlag.isEnabled) { Modifier.motionDriver(gestureContext) } .panelWidth(isFullWidth) .onPlaced { coordinates -> val bounds = coordinates.boundsInWindow() Loading packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/mechanics/GestureContextUtils.kt +12 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.compose.animation.scene.mechanics import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import com.android.compose.animation.scene.ContentScope import com.android.compose.animation.scene.SceneTransitionLayout import com.android.mechanics.GestureContext Loading @@ -41,3 +43,13 @@ fun ContentScope.gestureContextOrDefault( get() = layoutState.currentTransition?.gestureContext } } @Composable fun ContentScope.rememberGestureContext( defaultDragOffset: Float = 0f, defaultDirection: InputDirection = InputDirection.Max, ): GestureContext { return remember(defaultDragOffset, defaultDirection) { gestureContextOrDefault(defaultDragOffset, defaultDirection) } } packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/GridLayout.kt +2 −5 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.qs.panels.ui.compose import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.android.compose.animation.scene.ContentScope import com.android.compose.animation.scene.ElementKey import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel import com.android.systemui.qs.panels.ui.viewmodel.PaginatableViewModel import com.android.systemui.qs.panels.ui.viewmodel.TileViewModel Loading @@ -33,16 +32,14 @@ interface GridLayout { * * @param listening can be used to compose the grid but limit when tiles should be listening. It * should be a function tracking a snapshot state. * @param revealEffectContainer The [ElementKey] of the container driving the reveal animation. * During expansion, tiles use this container's height to compute their own, creating a * synchronized reveal effect. When `null`, the effect is disabled. * @param enableRevealEffect If `true`, the tiles will animate using the reveal animation. */ @Composable fun ContentScope.TileGrid( tiles: List<TileViewModel>, modifier: Modifier, listening: () -> Boolean, revealEffectContainer: ElementKey?, enableRevealEffect: Boolean, ) @Composable Loading packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/PaginatedGridLayout.kt +2 −3 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ import androidx.compose.ui.res.integerResource import androidx.compose.ui.unit.Velocity import androidx.compose.ui.unit.dp import com.android.compose.animation.scene.ContentScope import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.padding import com.android.systemui.common.ui.compose.PagerDots Loading Loading @@ -70,7 +69,7 @@ constructor( tiles: List<TileViewModel>, modifier: Modifier, listening: () -> Boolean, revealEffectContainer: ElementKey?, enableRevealEffect: Boolean, ) { val viewModel = rememberViewModel(traceName = "PaginatedGridLayout-TileGrid") { Loading Loading @@ -147,7 +146,7 @@ constructor( tiles = page, modifier = Modifier, listening = listening, revealEffectContainer = null, enableRevealEffect = false, ) } } Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt +2 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.UserAction import com.android.compose.animation.scene.UserActionResult import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.animation.scene.mechanics.TileRevealFlag import com.android.compose.lifecycle.LaunchedEffectWithLifecycle import com.android.compose.modifiers.thenIf import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer Loading Loading @@ -392,6 +393,7 @@ private fun ContentScope.QuickSettingsLayout( TileGrid( viewModel = qsContainerViewModel.tileGridViewModel, modifier = Modifier.fillMaxWidth(), enableRevealEffect = TileRevealFlag.isEnabled, ) // TODO(b/428805936): Double check this padding. Loading
packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt +5 −0 Original line number Diff line number Diff line Loading @@ -51,10 +51,13 @@ import androidx.compose.ui.unit.dp import com.android.compose.animation.scene.ContentScope import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.LowestZIndexContentPicker import com.android.compose.animation.scene.mechanics.TileRevealFlag import com.android.compose.animation.scene.mechanics.rememberGestureContext import com.android.compose.modifiers.thenIf import com.android.compose.windowsizeclass.LocalWindowSizeClass import com.android.mechanics.behavior.VerticalExpandContainerSpec import com.android.mechanics.behavior.verticalExpandContainerBackground import com.android.mechanics.compose.modifier.motionDriver import com.android.systemui.res.R import com.android.systemui.shade.ui.ShadeColors.shadePanel import com.android.systemui.shade.ui.ShadeColors.shadePanelScrimBehind Loading Loading @@ -86,12 +89,14 @@ fun ContentScope.OverlayShade( Modifier.fillMaxSize().panelContainerPadding(isFullWidth, alignmentOnWideScreens), contentAlignment = if (isFullWidth) Alignment.TopCenter else alignmentOnWideScreens, ) { val gestureContext = rememberGestureContext() Panel( enableTransparency = enableTransparency, spec = panelSpec, modifier = Modifier.overscroll(verticalOverscrollEffect) .element(panelElement) .thenIf(TileRevealFlag.isEnabled) { Modifier.motionDriver(gestureContext) } .panelWidth(isFullWidth) .onPlaced { coordinates -> val bounds = coordinates.boundsInWindow() Loading
packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/mechanics/GestureContextUtils.kt +12 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.compose.animation.scene.mechanics import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import com.android.compose.animation.scene.ContentScope import com.android.compose.animation.scene.SceneTransitionLayout import com.android.mechanics.GestureContext Loading @@ -41,3 +43,13 @@ fun ContentScope.gestureContextOrDefault( get() = layoutState.currentTransition?.gestureContext } } @Composable fun ContentScope.rememberGestureContext( defaultDragOffset: Float = 0f, defaultDirection: InputDirection = InputDirection.Max, ): GestureContext { return remember(defaultDragOffset, defaultDirection) { gestureContextOrDefault(defaultDragOffset, defaultDirection) } }
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/GridLayout.kt +2 −5 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.qs.panels.ui.compose import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.android.compose.animation.scene.ContentScope import com.android.compose.animation.scene.ElementKey import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel import com.android.systemui.qs.panels.ui.viewmodel.PaginatableViewModel import com.android.systemui.qs.panels.ui.viewmodel.TileViewModel Loading @@ -33,16 +32,14 @@ interface GridLayout { * * @param listening can be used to compose the grid but limit when tiles should be listening. It * should be a function tracking a snapshot state. * @param revealEffectContainer The [ElementKey] of the container driving the reveal animation. * During expansion, tiles use this container's height to compute their own, creating a * synchronized reveal effect. When `null`, the effect is disabled. * @param enableRevealEffect If `true`, the tiles will animate using the reveal animation. */ @Composable fun ContentScope.TileGrid( tiles: List<TileViewModel>, modifier: Modifier, listening: () -> Boolean, revealEffectContainer: ElementKey?, enableRevealEffect: Boolean, ) @Composable Loading
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/PaginatedGridLayout.kt +2 −3 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ import androidx.compose.ui.res.integerResource import androidx.compose.ui.unit.Velocity import androidx.compose.ui.unit.dp import com.android.compose.animation.scene.ContentScope import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.padding import com.android.systemui.common.ui.compose.PagerDots Loading Loading @@ -70,7 +69,7 @@ constructor( tiles: List<TileViewModel>, modifier: Modifier, listening: () -> Boolean, revealEffectContainer: ElementKey?, enableRevealEffect: Boolean, ) { val viewModel = rememberViewModel(traceName = "PaginatedGridLayout-TileGrid") { Loading Loading @@ -147,7 +146,7 @@ constructor( tiles = page, modifier = Modifier, listening = listening, revealEffectContainer = null, enableRevealEffect = false, ) } } Loading