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

Commit eee2b438 authored by Anton Potapov's avatar Anton Potapov Committed by Android (Google) Code Review
Browse files

Merge "Make volume sliders scroll when the panel uses horizontal layout" into main

parents 95c12011 c0e96e64
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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),
+2 −1
Original line number Diff line number Diff line
@@ -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(),
            )
        }
+1 −2
Original line number Diff line number Diff line
@@ -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) {
+17 −9
Original line number Diff line number Diff line
@@ -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)
    val arrangement =
        if (isLargeScreen) {
            Arrangement.spacedBy(20.dp)
        } else {
            if (isPortrait) Arrangement.spacedBy(padding) else Arrangement.spacedBy(4.dp)
        }
    Column(modifier = columnModifier, verticalArrangement = Arrangement.spacedBy(padding)) {
        if (orientation == Configuration.ORIENTATION_PORTRAIT || isLargeScreen) {
            VerticalVolumePanelContent(layout)
    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)
    }