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

Commit 67386121 authored by Jordan Demeulenaere's avatar Jordan Demeulenaere
Browse files

Use Element instead of Modifier.element() in QS

Bug: 389985793
Test: Manual, tried the transition between Collapsed => Expanded => QS
Flag: com.android.systemui.qs_ui_refactor_compose_fragment
Change-Id: I401819174d288f5824517cc551cee933d86faabe
parent edd0b451
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -115,11 +115,9 @@ fun ContentScope.FooterActionsWithAnimatedVisibility(
        QuickSettingsTheme {
            // This view has its own horizontal padding
            // TODO(b/321716470) This should use a lifecycle tied to the scene.
            FooterActions(
                viewModel = viewModel,
                qsVisibilityLifecycleOwner = lifecycleOwner,
                modifier = Modifier.element(QuickSettings.Elements.FooterActions),
            )
            Element(QuickSettings.Elements.FooterActions, Modifier) {
                FooterActions(viewModel = viewModel, qsVisibilityLifecycleOwner = lifecycleOwner)
            }
        }
    }
}
+15 −17
Original line number Diff line number Diff line
@@ -312,20 +312,18 @@ constructor(
        SceneTransitionLayout(state = sceneState, modifier = Modifier.fillMaxSize()) {
            scene(QuickSettings) {
                LaunchedEffect(Unit) { viewModel.onQSOpen() }
                QuickSettingsElement(Modifier.element(QuickSettings.rootElementKey))
                Element(QuickSettings.rootElementKey, Modifier) { QuickSettingsElement() }
            }

            scene(QuickQuickSettings) {
                LaunchedEffect(Unit) { viewModel.onQQSOpen() }
                // Cannot pass the element modifier in because the top element has a `testTag`
                // and this would overwrite it.
                Box(Modifier.element(QuickQuickSettings.rootElementKey)) {
                    QuickQuickSettingsElement()
                }
                Element(QuickQuickSettings.rootElementKey, Modifier) { QuickQuickSettingsElement() }
            }

            scene(SceneKeys.EditMode) {
                EditModeElement(Modifier.element(SceneKeys.EditMode.rootElementKey))
                Element(SceneKeys.EditMode.rootElementKey, Modifier) { EditModeElement() }
            }
        }
    }
@@ -660,10 +658,7 @@ constructor(
                )
        ) {
            if (viewModel.isQsEnabled) {
                Box(
                    modifier =
                        Modifier.element(ElementKeys.QuickSettingsContent).fillMaxSize().weight(1f)
                ) {
                Element(ElementKeys.QuickSettingsContent, modifier = Modifier.weight(1f)) {
                    DisposableEffect(Unit) {
                        lifecycleScope.launch { scrollState.scrollTo(0) }
                        onDispose { lifecycleScope.launch { scrollState.scrollTo(0) } }
@@ -671,7 +666,8 @@ constructor(

                    Column(
                        modifier =
                            Modifier.onPlaced { coordinates ->
                            Modifier.fillMaxSize()
                                .onPlaced { coordinates ->
                                    val positionOnScreen = coordinates.positionOnScreen()
                                    val left = positionOnScreen.x
                                    val right = left + coordinates.size.width
@@ -748,17 +744,19 @@ constructor(
                    }
                }
                QuickSettingsTheme {
                    Element(
                        ElementKeys.FooterActions,
                        Modifier.sysuiResTag(ResIdTags.qsFooterActions),
                    ) {
                        FooterActions(
                            viewModel = viewModel.footerActionsViewModel,
                            qsVisibilityLifecycleOwner = this@QSFragmentCompose,
                        modifier =
                            Modifier.sysuiResTag(ResIdTags.qsFooterActions)
                                .element(ElementKeys.FooterActions),
                        )
                    }
                }
            }
        }
    }

    @Composable
    private fun EditModeElement(modifier: Modifier = Modifier) {
+1 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.systemui.qs.composefragment.ui

import androidx.compose.foundation.layout.Spacer
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.android.compose.animation.scene.ContentScope
@@ -29,5 +28,5 @@ import com.android.systemui.qs.shared.ui.ElementKeys
@Composable
fun ContentScope.GridAnchor(modifier: Modifier = Modifier) {
    // The size of this anchor does not matter, as the tiles don't change size on expansion.
    Spacer(modifier.element(ElementKeys.GridAnchor))
    Element(ElementKeys.GridAnchor, modifier) {}
}
+13 −11
Original line number Diff line number Diff line
@@ -71,17 +71,19 @@ fun ContentScope.QuickQuickSettings(
            val it = sizedTiles[spanIndex]
            val column = cellIndex % columns
            cellIndex += it.width
            Element(it.tile.spec.toElementKey(spanIndex), Modifier) {
                Tile(
                    tile = it.tile,
                    iconOnly = it.isIcon,
                modifier = Modifier.element(it.tile.spec.toElementKey(spanIndex)),
                    squishiness = { squishiness },
                    coroutineScope = scope,
                    bounceableInfo = bounceables.bounceableInfo(it, spanIndex, column, columns),
                tileHapticsViewModelFactoryProvider = viewModel.tileHapticsViewModelFactoryProvider,
                    tileHapticsViewModelFactoryProvider =
                        viewModel.tileHapticsViewModelFactoryProvider,
                    // There should be no QuickQuickSettings when the details view is enabled.
                    detailsViewModel = null,
                )
            }
        }
    }
}
+11 −10
Original line number Diff line number Diff line
@@ -99,10 +99,10 @@ constructor(
            val it = sizedTiles[spanIndex]
            val column = cellIndex % columns
            cellIndex += it.width
            Element(it.tile.spec.toElementKey(spanIndex), Modifier) {
                Tile(
                    tile = it.tile,
                    iconOnly = iconTilesViewModel.isIconTile(it.tile.spec),
                modifier = Modifier.element(it.tile.spec.toElementKey(spanIndex)),
                    squishiness = { squishiness },
                    tileHapticsViewModelFactoryProvider = tileHapticsViewModelFactoryProvider,
                    coroutineScope = scope,
@@ -111,6 +111,7 @@ constructor(
                )
            }
        }
    }

    @Composable
    override fun EditTileGrid(