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

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

Merge "[Dual Shade] Move NotificationsShade to the Start side on large screens." into main

parents bb4aae31 a840cb19
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.notifications.ui.composable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.layoutId
import com.android.compose.animation.scene.ContentScope
@@ -84,7 +85,11 @@ constructor(
                viewModel.notificationsPlaceholderViewModelFactory.create()
            }

        OverlayShade(modifier = modifier, onScrimClicked = viewModel::onScrimClicked) {
        OverlayShade(
            panelAlignment = Alignment.TopStart,
            modifier = modifier,
            onScrimClicked = viewModel::onScrimClicked,
        ) {
            Column {
                if (viewModel.showHeader) {
                    val burnIn = rememberBurnIn(clockInteractor)
+5 −1
Original line number Diff line number Diff line
@@ -99,7 +99,11 @@ constructor(
        val viewModel =
            rememberViewModel("QuickSettingsShadeOverlay") { contentViewModelFactory.create() }

        OverlayShade(modifier = modifier, onScrimClicked = viewModel::onScrimClicked) {
        OverlayShade(
            panelAlignment = Alignment.TopEnd,
            modifier = modifier,
            onScrimClicked = viewModel::onScrimClicked,
        ) {
            Column {
                ExpandedShadeHeader(
                    viewModelFactory = viewModel.shadeHeaderViewModelFactory,
+6 −5
Original line number Diff line number Diff line
@@ -55,16 +55,17 @@ import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.res.dimensionResource
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.LowestZIndexContentPicker
import com.android.compose.animation.scene.SceneScope
import com.android.compose.animation.scene.effect.rememberOffsetOverscrollEffect
import com.android.compose.windowsizeclass.LocalWindowSizeClass
import com.android.systemui.res.R

/** Renders a lightweight shade UI container, as an overlay. */
@Composable
fun SceneScope.OverlayShade(
fun ContentScope.OverlayShade(
    panelAlignment: Alignment,
    onScrimClicked: () -> Unit,
    modifier: Modifier = Modifier,
    content: @Composable () -> Unit,
@@ -87,7 +88,7 @@ fun SceneScope.OverlayShade(
    ) {
        Scrim(onClicked = onScrimClicked)

        Box(modifier = Modifier.fillMaxSize().panelPadding(), contentAlignment = Alignment.TopEnd) {
        Box(modifier = Modifier.fillMaxSize().panelPadding(), contentAlignment = panelAlignment) {
            Panel(
                modifier =
                    Modifier.element(OverlayShade.Elements.Panel)
@@ -100,7 +101,7 @@ fun SceneScope.OverlayShade(
}

@Composable
private fun SceneScope.Scrim(onClicked: () -> Unit, modifier: Modifier = Modifier) {
private fun ContentScope.Scrim(onClicked: () -> Unit, modifier: Modifier = Modifier) {
    Spacer(
        modifier =
            modifier
@@ -112,7 +113,7 @@ private fun SceneScope.Scrim(onClicked: () -> Unit, modifier: Modifier = Modifie
}

@Composable
private fun SceneScope.Panel(modifier: Modifier = Modifier, content: @Composable () -> Unit) {
private fun ContentScope.Panel(modifier: Modifier = Modifier, content: @Composable () -> Unit) {
    Box(modifier = modifier.clip(OverlayShade.Shapes.RoundedCornerPanel)) {
        Spacer(
            modifier =
+1 −1
Original line number Diff line number Diff line
@@ -241,7 +241,7 @@ class SharedNotificationContainerViewModelTest(flags: FlagsParameterization) : S
            shadeTestUtil.setSplitShade(true)

            val horizontalPosition = checkNotNull(dimens).horizontalPosition
            assertIs<HorizontalPosition.FloatAtEnd>(horizontalPosition)
            assertIs<HorizontalPosition.FloatAtStart>(horizontalPosition)
            assertThat(horizontalPosition.width).isEqualTo(200)
        }

+4 −4
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ class SharedNotificationContainer(context: Context, attrs: AttributeSet?) :
        constraintSet.apply {
            if (SceneContainerFlag.isEnabled) {
                when (horizontalPosition) {
                    is HorizontalPosition.FloatAtEnd ->
                    is HorizontalPosition.FloatAtStart ->
                        constrainWidth(nsslId, horizontalPosition.width)
                    is HorizontalPosition.MiddleToEdge ->
                        setGuidelinePercent(R.id.nssl_guideline, horizontalPosition.ratio)
@@ -83,13 +83,13 @@ class SharedNotificationContainer(context: Context, attrs: AttributeSet?) :
                }
            }

            connect(nsslId, START, startConstraintId, START, marginStart)
            if (
                !SceneContainerFlag.isEnabled ||
                    horizontalPosition !is HorizontalPosition.FloatAtEnd
                    horizontalPosition !is HorizontalPosition.FloatAtStart
            ) {
                connect(nsslId, START, startConstraintId, START, marginStart)
            }
                connect(nsslId, END, PARENT_ID, END, marginEnd)
            }
            connect(nsslId, BOTTOM, PARENT_ID, BOTTOM, marginBottom)
            connect(nsslId, TOP, PARENT_ID, TOP, marginTop)
        }
Loading