From 51ea31dcd1214e5bafeec19ca84e5077aceecd7c Mon Sep 17 00:00:00 2001 From: burakov Date: Tue, 4 Jun 2024 09:26:23 +0000 Subject: [PATCH] [bc25] Support both horizontal and vertical alignment in dual shade. This is necessary to allow dual shade to be invoked from the bottom on other system UI variants, such as ARC. Test: Manually tested by opening and closing the quick settings shade on a foldable device both in a folded and unfolded configuration. Test: Unit tests build and pass. Bug: 343744476 Flag: com.android.systemui.dual_shade Change-Id: Idf48a30f317c2d318d3ba80d447abbb4f6377f99 --- .../ui/composable/NotificationsShadeScene.kt | 4 ++-- .../systemui/qs/ui/composable/QuickSettingsShadeScene.kt | 2 +- .../android/systemui/shade/ui/composable/OverlayShade.kt | 9 ++++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeScene.kt index edb17273dba1..f62a28c94763 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeScene.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeScene.kt @@ -16,11 +16,11 @@ package com.android.systemui.notifications.ui.composable -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.android.compose.animation.scene.SceneScope @@ -75,7 +75,7 @@ constructor( OverlayShade( modifier = modifier, viewModel = overlayShadeViewModel, - horizontalArrangement = Arrangement.End, + panelAlignment = Alignment.TopEnd, lockscreenContent = lockscreenContent, ) { Column { diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeScene.kt index 4bf90ec69f46..a0d6be9c68dc 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeScene.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeScene.kt @@ -82,7 +82,7 @@ constructor( ) { OverlayShade( viewModel = viewModel.overlayShadeViewModel, - horizontalArrangement = Arrangement.End, + panelAlignment = Alignment.TopEnd, lockscreenContent = lockscreenContent, modifier = modifier, ) { diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt index 6924d432453c..c189d73e2db5 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt @@ -20,11 +20,9 @@ package com.android.systemui.shade.ui.composable import androidx.compose.foundation.background import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.asPaddingValues @@ -43,6 +41,7 @@ import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass import androidx.compose.runtime.Composable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color @@ -64,7 +63,7 @@ import java.util.Optional @Composable fun SceneScope.OverlayShade( viewModel: OverlayShadeViewModel, - horizontalArrangement: Arrangement.Horizontal, + panelAlignment: Alignment, lockscreenContent: Lazy>, modifier: Modifier = Modifier, content: @Composable () -> Unit, @@ -81,9 +80,9 @@ fun SceneScope.OverlayShade( Scrim(onClicked = viewModel::onScrimClicked) - Row( + Box( modifier = Modifier.fillMaxSize().panelPadding(), - horizontalArrangement = horizontalArrangement, + contentAlignment = panelAlignment, ) { Panel( modifier = Modifier.element(OverlayShade.Elements.Panel).panelSize(),