diff options
| author | 2024-06-03 14:12:23 +0000 | |
|---|---|---|
| committer | 2024-06-03 14:38:15 +0000 | |
| commit | 7b2ef5fba8a64825f34b10f3ef37f96b18aacbb4 (patch) | |
| tree | 9ddf2175ed426777b6bbfae6713fde28aeb7ab92 | |
| parent | a48576b607a5805c245b513a6205c73ea0012101 (diff) | |
[bc25] Add a Shade Header to QuickSettingsShadeScene.
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: 344008947
Flag: com.android.systemui.dual_shade
Change-Id: I3d33dd691978dc65ee9605a43a4eac71a7c3300c
| -rw-r--r-- | packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeScene.kt | 70 |
1 files changed, 50 insertions, 20 deletions
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 7deaddae805d..4bf90ec69f46 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 @@ -23,6 +23,7 @@ import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -39,6 +40,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.SceneScope import com.android.compose.animation.scene.UserAction import com.android.compose.animation.scene.UserActionResult +import com.android.systemui.battery.BatteryMeterViewController import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.ui.composable.LockscreenContent @@ -47,7 +49,11 @@ import com.android.systemui.qs.panels.ui.compose.TileGrid import com.android.systemui.qs.ui.viewmodel.QuickSettingsShadeSceneViewModel import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.ui.composable.ComposableScene +import com.android.systemui.shade.ui.composable.ExpandedShadeHeader import com.android.systemui.shade.ui.composable.OverlayShade +import com.android.systemui.shade.ui.viewmodel.ShadeHeaderViewModel +import com.android.systemui.statusbar.phone.ui.StatusBarIconController +import com.android.systemui.statusbar.phone.ui.TintedIconManager import dagger.Lazy import java.util.Optional import javax.inject.Inject @@ -59,6 +65,10 @@ class QuickSettingsShadeScene constructor( private val viewModel: QuickSettingsShadeSceneViewModel, private val lockscreenContent: Lazy<Optional<LockscreenContent>>, + private val shadeHeaderViewModel: ShadeHeaderViewModel, + private val tintedIconManagerFactory: TintedIconManager.Factory, + private val batteryMeterViewControllerFactory: BatteryMeterViewController.Factory, + private val statusBarIconController: StatusBarIconController, ) : ComposableScene { override val key = Scenes.QuickSettingsShade @@ -76,31 +86,51 @@ constructor( lockscreenContent = lockscreenContent, modifier = modifier, ) { - val isEditing by viewModel.editModeViewModel.isEditing.collectAsStateWithLifecycle() + Column { + ExpandedShadeHeader( + viewModel = shadeHeaderViewModel, + createTintedIconManager = tintedIconManagerFactory::create, + createBatteryMeterViewController = batteryMeterViewControllerFactory::create, + statusBarIconController = statusBarIconController, + modifier = Modifier.padding(QuickSettingsShade.Dimensions.Padding), + ) - // The main Quick Settings grid layout. - AnimatedVisibility( - visible = !isEditing, - enter = QuickSettingsShade.Transitions.QuickSettingsLayoutEnter, - exit = QuickSettingsShade.Transitions.QuickSettingsLayoutExit, - ) { - QuickSettingsLayout( + ShadeBody( viewModel = viewModel, ) } + } + } +} - // The Quick Settings Editor layout. - AnimatedVisibility( - visible = isEditing, - enter = QuickSettingsShade.Transitions.QuickSettingsEditorEnter, - exit = QuickSettingsShade.Transitions.QuickSettingsEditorExit, - ) { - EditMode( - viewModel = viewModel.editModeViewModel, - modifier = - Modifier.fillMaxWidth().padding(QuickSettingsShade.Dimensions.Padding) - ) - } +@Composable +private fun ShadeBody( + viewModel: QuickSettingsShadeSceneViewModel, +) { + val isEditing by viewModel.editModeViewModel.isEditing.collectAsStateWithLifecycle() + + Box { + // The main Quick Settings grid layout. + AnimatedVisibility( + visible = !isEditing, + enter = QuickSettingsShade.Transitions.QuickSettingsLayoutEnter, + exit = QuickSettingsShade.Transitions.QuickSettingsLayoutExit, + ) { + QuickSettingsLayout( + viewModel = viewModel, + ) + } + + // The Quick Settings Editor layout. + AnimatedVisibility( + visible = isEditing, + enter = QuickSettingsShade.Transitions.QuickSettingsEditorEnter, + exit = QuickSettingsShade.Transitions.QuickSettingsEditorExit, + ) { + EditMode( + viewModel = viewModel.editModeViewModel, + modifier = Modifier.fillMaxWidth().padding(QuickSettingsShade.Dimensions.Padding) + ) } } } |