[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
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 edb1727..f62a28c 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 @@
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 4bf90ec..a0d6be9 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 @@
) {
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 6924d43..c189d73 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 @@
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.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 @@
@Composable
fun SceneScope.OverlayShade(
viewModel: OverlayShadeViewModel,
- horizontalArrangement: Arrangement.Horizontal,
+ panelAlignment: Alignment,
lockscreenContent: Lazy<Optional<LockscreenContent>>,
modifier: Modifier = Modifier,
content: @Composable () -> Unit,
@@ -81,9 +80,9 @@
Scrim(onClicked = viewModel::onScrimClicked)
- Row(
+ Box(
modifier = Modifier.fillMaxSize().panelPadding(),
- horizontalArrangement = horizontalArrangement,
+ contentAlignment = panelAlignment,
) {
Panel(
modifier = Modifier.element(OverlayShade.Elements.Panel).panelSize(),