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

Commit d86396f4 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "TileGrid now includes an optional revealEffectContainer parameter" into main

parents 2a85664a fc01d58a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ 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.shared.model.SizedTile
import com.android.systemui.qs.panels.shared.model.TileRow
import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel
@@ -37,6 +38,7 @@ interface GridLayout {
        tiles: List<TileViewModel>,
        modifier: Modifier,
        listening: () -> Boolean,
        revealEffectContainer: ElementKey? = null,
    )

    @Composable
+2 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ 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
@@ -70,6 +71,7 @@ constructor(
        tiles: List<TileViewModel>,
        modifier: Modifier,
        listening: () -> Boolean,
        revealEffectContainer: ElementKey?,
    ) {
        val viewModel =
            rememberViewModel(traceName = "PaginatedGridLayout-TileGrid") {
+15 −2
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.android.compose.animation.scene.ContentScope
import com.android.systemui.qs.panels.ui.viewmodel.TileGridViewModel
import com.android.systemui.qs.ui.composable.QuickSettingsShade
import com.android.systemui.scene.shared.flag.SceneContainerFlag

@Composable
fun ContentScope.TileGrid(
@@ -29,6 +31,17 @@ fun ContentScope.TileGrid(
) {
    val gridLayout = viewModel.gridLayout
    val tiles = viewModel.tileViewModels

    with(gridLayout) { TileGrid(tiles, modifier, listening) }
    with(gridLayout) {
        TileGrid(
            tiles = tiles,
            modifier = modifier,
            listening = listening,
            revealEffectContainer =
                if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) {
                    null
                } else {
                    QuickSettingsShade.Elements.Panel
                },
        )
    }
}
+5 −4
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.util.fastMap
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.compose.animation.scene.ContentScope
import com.android.compose.animation.scene.ElementKey
import com.android.mechanics.compose.modifier.verticalTactileSurfaceReveal
import com.android.mechanics.spec.builder.rememberMotionBuilderContext
import com.android.systemui.dagger.SysUISingleton
@@ -73,6 +74,7 @@ constructor(
        tiles: List<TileViewModel>,
        modifier: Modifier,
        listening: () -> Boolean,
        revealEffectContainer: ElementKey?,
    ) {
        val viewModel =
            rememberViewModel(traceName = "InfiniteGridLayout.TileGrid") {
@@ -109,7 +111,6 @@ constructor(
        val scope = rememberCoroutineScope()
        val spans by remember(sizedTiles) { derivedStateOf { sizedTiles.fastMap { it.width } } }

        val isDualShade = viewModel.isDualShade
        val motionBuilderContext = rememberMotionBuilderContext()
        val marginBottom =
            with(LocalDensity.current) { QuickSettingsShade.Dimensions.Padding.toPx() }
@@ -144,17 +145,17 @@ constructor(
                    isVisible = listening,
                    requestToggleTextFeedback = textFeedbackViewModel::requestShowFeedback,
                    modifier =
                        if (isDualShade) {
                        if (revealEffectContainer != null) {
                            Modifier.verticalTactileSurfaceReveal(
                                contentScope = this@TileGrid,
                                motionBuilderContext = motionBuilderContext,
                                container = QuickSettingsShade.Elements.Panel,
                                container = revealEffectContainer,
                                deltaY = -marginBottom,
                            )
                        } else {
                            Modifier
                        },
                    verticalFadeContentReveal = isDualShade,
                    revealEffectContainer = revealEffectContainer,
                )
            }
        }
+4 −4
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ import com.android.compose.animation.Expandable
import com.android.compose.animation.bounceable
import com.android.compose.animation.rememberExpandableController
import com.android.compose.animation.scene.ContentScope
import com.android.compose.animation.scene.ElementKey
import com.android.compose.modifiers.thenIf
import com.android.compose.theme.LocalAndroidColorScheme
import com.android.mechanics.compose.modifier.verticalFadeContentReveal
@@ -101,7 +102,6 @@ import com.android.systemui.qs.panels.ui.viewmodel.toIconProvider
import com.android.systemui.qs.panels.ui.viewmodel.toUiState
import com.android.systemui.qs.pipeline.shared.TileSpec
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.qs.ui.composable.QuickSettingsShade
import com.android.systemui.qs.ui.compose.borderOnFocus
import com.android.systemui.res.R
import kotlinx.coroutines.CoroutineScope
@@ -143,7 +143,7 @@ fun ContentScope.Tile(
    isVisible: () -> Boolean = { true },
    requestToggleTextFeedback: (TileSpec) -> Unit = {},
    detailsViewModel: DetailsViewModel?,
    verticalFadeContentReveal: Boolean = false,
    revealEffectContainer: ElementKey? = null,
) {
    trace(tile.traceName) {
        val currentBounceableInfo by rememberUpdatedState(bounceableInfo)
@@ -252,11 +252,11 @@ fun ContentScope.Tile(
                iconOnly = iconOnly,
                isDualTarget = isDualTarget,
                modifier =
                    if (verticalFadeContentReveal) {
                    if (revealEffectContainer != null) {
                        Modifier.verticalFadeContentReveal(
                            contentScope = this,
                            motionBuilderContext = rememberMotionBuilderContext(),
                            container = QuickSettingsShade.Elements.Panel,
                            container = revealEffectContainer,
                        )
                    } else {
                        Modifier
Loading