summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Anton Potapov <apotapov@google.com> 2024-02-26 13:55:34 +0000
committer Anton Potapov <apotapov@google.com> 2024-02-26 14:05:20 +0000
commitc0e96e642a2d3e391e6bd2f03c53f00b0a855eb0 (patch)
tree541122504c6ecaaf52db375a21c55b641ae37bc8
parent9327855e3a2b48b795c5d7c2f2bd656e2cc42484 (diff)
Make volume sliders scroll when the panel uses horizontal layout
- remove expanding when using horizontal layout; - fix max vertical height; Flag: aconfig new_volume_panel STAGING Test: vertical and portrait on phone and tablet Fixes: 326897352 Change-Id: I1f2c86535924d61d35ee4bf7afcb2765a9ecc9f1
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/ColumnVolumeSliders.kt6
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlidersComponent.kt3
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/HorizontalVolumePanelContent.kt3
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VolumePanelRoot.kt26
4 files changed, 24 insertions, 14 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/ColumnVolumeSliders.kt b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/ColumnVolumeSliders.kt
index a197a4b0fd55..ddc9252a5a4a 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/ColumnVolumeSliders.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/ColumnVolumeSliders.kt
@@ -36,6 +36,8 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.IconButtonDefaults
@@ -66,9 +68,9 @@ fun ColumnVolumeSliders(
modifier: Modifier = Modifier,
) {
require(viewModels.isNotEmpty())
- var isExpanded: Boolean by remember { mutableStateOf(false) }
+ var isExpanded: Boolean by remember(isExpandable) { mutableStateOf(!isExpandable) }
val transition = updateTransition(isExpanded, label = "CollapsableSliders")
- Column(modifier = modifier) {
+ Column(modifier = modifier.verticalScroll(rememberScrollState())) {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(8.dp),
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlidersComponent.kt b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlidersComponent.kt
index 6213dc5f63c9..1ca18deeaac2 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlidersComponent.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlidersComponent.kt
@@ -26,6 +26,7 @@ import com.android.systemui.volume.panel.component.volume.slider.ui.viewmodel.Sl
import com.android.systemui.volume.panel.component.volume.ui.viewmodel.AudioVolumeComponentViewModel
import com.android.systemui.volume.panel.ui.composable.ComposeVolumePanelUiComponent
import com.android.systemui.volume.panel.ui.composable.VolumePanelComposeScope
+import com.android.systemui.volume.panel.ui.composable.isPortrait
import javax.inject.Inject
class VolumeSlidersComponent
@@ -50,7 +51,7 @@ constructor(
ColumnVolumeSliders(
viewModels = sliderViewModels,
sliderColors = PlatformSliderDefaults.defaultPlatformSliderColors(),
- isExpandable = true,
+ isExpandable = isPortrait,
modifier = modifier.fillMaxWidth(),
)
}
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/HorizontalVolumePanelContent.kt b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/HorizontalVolumePanelContent.kt
index 0a651c898aba..a838a99524a3 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/HorizontalVolumePanelContent.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/HorizontalVolumePanelContent.kt
@@ -21,7 +21,6 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -56,7 +55,7 @@ fun VolumePanelComposeScope.HorizontalVolumePanelContent(
}
}
Row(
- modifier = Modifier.fillMaxWidth().wrapContentHeight(),
+ modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(spacing),
) {
for (component in layout.footerComponents) {
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VolumePanelRoot.kt b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VolumePanelRoot.kt
index 8a1e6a8b74f4..8a9ebc918be6 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VolumePanelRoot.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/ui/composable/VolumePanelRoot.kt
@@ -16,7 +16,6 @@
package com.android.systemui.volume.panel.ui.composable
-import android.content.res.Configuration
import androidx.compose.foundation.clickable
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Arrangement
@@ -111,15 +110,24 @@ private fun VolumePanelComposeScope.Components(
layout: ComponentsLayout,
modifier: Modifier = Modifier
) {
- var columnModifier = modifier.widthIn(max = 800.dp)
- if (!isLargeScreen && orientation != Configuration.ORIENTATION_PORTRAIT) {
- columnModifier = columnModifier.heightIn(max = 332.dp)
- }
- Column(modifier = columnModifier, verticalArrangement = Arrangement.spacedBy(padding)) {
- if (orientation == Configuration.ORIENTATION_PORTRAIT || isLargeScreen) {
- VerticalVolumePanelContent(layout)
+ val arrangement =
+ if (isLargeScreen) {
+ Arrangement.spacedBy(20.dp)
+ } else {
+ if (isPortrait) Arrangement.spacedBy(padding) else Arrangement.spacedBy(4.dp)
+ }
+ Column(
+ modifier = modifier.widthIn(max = 800.dp),
+ verticalArrangement = arrangement,
+ ) {
+ val contentModifier = Modifier
+ if (isPortrait || isLargeScreen) {
+ VerticalVolumePanelContent(modifier = contentModifier, layout = layout)
} else {
- HorizontalVolumePanelContent(layout)
+ HorizontalVolumePanelContent(
+ modifier = contentModifier.heightIn(max = 212.dp),
+ layout = layout
+ )
}
BottomBar(layout = layout, modifier = Modifier)
}