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

Commit 02b4b661 authored by andrewxu's avatar andrewxu
Browse files

[Flexiglass] Use TileGrid to replace the legacy QS view

This CL replaces the legacy QS view with TileGrid. This CL also adjusts
the paddings of the brightness bar.

Bug: 420960164
Flag: com.android.systemui.scene_container
Test: com.android.systemui.qs.ui.composable.QuickSettingsSceneTest
Change-Id: Ice3b95e4ed9229cfa7b55e8e858e6efdc4a88e3c
parent 0526e664
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import androidx.compose.ui.layout.layoutId
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.unit.IntOffset
@@ -96,7 +97,9 @@ import com.android.systemui.media.dagger.MediaModule
import com.android.systemui.notifications.ui.composable.HeadsUpNotificationSpace
import com.android.systemui.notifications.ui.composable.NotificationScrollingStack
import com.android.systemui.notifications.ui.composable.NotificationStackCutoffGuideline
import com.android.systemui.qs.composefragment.ui.GridAnchor
import com.android.systemui.qs.footer.ui.compose.FooterActionsWithAnimatedVisibility
import com.android.systemui.qs.panels.ui.compose.TileGrid
import com.android.systemui.qs.shared.ui.ElementKeys
import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaLandscapeTopOffset
import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaOffset.InQS
@@ -354,7 +357,11 @@ private fun ContentScope.QuickSettingsScene(
                            CollapsedShadeHeader(viewModel = headerViewModel, isSplitShade = false)
                    }
                    Spacer(modifier = Modifier.height(16.dp))
                    Column(modifier = Modifier.element(ElementKeys.QuickSettingsContent)) {
                    Column(
                        modifier = Modifier
                            .element(ElementKeys.QuickSettingsContent)
                            .padding(horizontal = dimensionResource(id = R.dimen.qs_horizontal_margin))
                    ) {
                        BrightnessSliderContainer(
                            viewModel.qsContainerViewModel.brightnessSliderViewModel,
                            containerColors =
@@ -363,17 +370,17 @@ private fun ContentScope.QuickSettingsScene(
                                    ContainerColors.defaultContainerColor,
                                ),
                            modifier = Modifier.padding(
                                horizontal =
                                    dimensionResource(id = R.dimen.qs_horizontal_margin)
                                vertical = dimensionResource(id = R.dimen.qs_brightness_margin_top),
                            )
                        )
                        GridAnchor()
                        // This view has its own horizontal padding
                        val content: @Composable () -> Unit = {
                            QuickSettings(
                                viewModel.qsSceneAdapter,
                                { viewModel.qsSceneAdapter.qsHeight },
                                isSplitShade = false,
                                modifier = Modifier.layoutId(QSMediaMeasurePolicy.LayoutId.QS),
                            TileGrid(
                                viewModel.qsContainerViewModel.tileGridViewModel,
                                modifier = Modifier
                                    .sysuiResTag("quick_settings_panel")
                                    .layoutId(QSMediaMeasurePolicy.LayoutId.QS),
                            )

                            MediaCarousel(
+6 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.jank.interactionJankMonitor
import com.android.systemui.media.controls.ui.controller.mediaCarouselController
import com.android.systemui.media.controls.ui.view.qsMediaHost
import com.android.systemui.qs.composefragment.dagger.usingMediaInComposeFragment
import com.android.systemui.qs.ui.viewmodel.quickSettingsSceneContentViewModelFactory
import com.android.systemui.qs.ui.viewmodel.quickSettingsUserActionsViewModelFactory
import com.android.systemui.scene.session.shared.SessionStorage
@@ -68,6 +69,8 @@ class QuickSettingsSceneTest : SysuiTestCase() {
            ): T = rememberSession(key, inputs = inputs, init = init)
        }

        kosmos.usingMediaInComposeFragment = true

        val scene = QuickSettingsScene(
            shadeSession = shadeSession,
            notificationStackScrollView = {
@@ -93,5 +96,8 @@ class QuickSettingsSceneTest : SysuiTestCase() {

        // Verify that the brightness slider exists.
        composeTestRule.onNodeWithTag(resIdToTestTag("brightness_slider")).assertExists()

        // Verify that the tile grid exists.
        composeTestRule.onNodeWithTag(resIdToTestTag("quick_settings_panel")).assertExists()
    }
}
 No newline at end of file