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

Commit aa9d072a authored by Alejandro Nijamkin's avatar Alejandro Nijamkin
Browse files

[flexiglass] ShadeHeaderViewModel is a SysUiViewModel

As per go/sysui-arch:summer-2024

Bug: 354270224
Test: unit tests still pass
Test: manually verified that the shade header works in flexiglass as I
transition between shade and QS scenes
Flag: com.android.systemui.scene_container

Change-Id: I865cf0812c9686291f97e2c3fce35d32890792f7
parent 17223648
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ constructor(
    private val contentViewModelFactory: NotificationsShadeSceneContentViewModel.Factory,
    private val actionsViewModelFactory: NotificationsShadeSceneActionsViewModel.Factory,
    private val overlayShadeViewModelFactory: OverlayShadeViewModel.Factory,
    private val shadeHeaderViewModel: ShadeHeaderViewModel,
    private val shadeHeaderViewModelFactory: ShadeHeaderViewModel.Factory,
    private val notificationsPlaceholderViewModel: NotificationsPlaceholderViewModel,
    private val tintedIconManagerFactory: TintedIconManager.Factory,
    private val batteryMeterViewControllerFactory: BatteryMeterViewController.Factory,
@@ -94,7 +94,7 @@ constructor(
        ) {
            Column {
                ExpandedShadeHeader(
                    viewModel = shadeHeaderViewModel,
                    viewModelFactory = shadeHeaderViewModelFactory,
                    createTintedIconManager = tintedIconManagerFactory::create,
                    createBatteryMeterViewController = batteryMeterViewControllerFactory::create,
                    statusBarIconController = statusBarIconController,
+2 −2
Original line number Diff line number Diff line
@@ -340,7 +340,7 @@ private fun SceneScope.QuickSettingsScene(
                                        fadeOut(tween(customizingAnimationDuration)),
                            ) {
                                ExpandedShadeHeader(
                                    viewModel = viewModel.shadeHeaderViewModel,
                                    viewModelFactory = viewModel.shadeHeaderViewModelFactory,
                                    createTintedIconManager = createTintedIconManager,
                                    createBatteryMeterViewController =
                                        createBatteryMeterViewController,
@@ -350,7 +350,7 @@ private fun SceneScope.QuickSettingsScene(
                            }
                        else ->
                            CollapsedShadeHeader(
                                viewModel = viewModel.shadeHeaderViewModel,
                                viewModelFactory = viewModel.shadeHeaderViewModelFactory,
                                createTintedIconManager = createTintedIconManager,
                                createBatteryMeterViewController = createBatteryMeterViewController,
                                statusBarIconController = statusBarIconController,
+2 −2
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ constructor(
    private val actionsViewModelFactory: QuickSettingsShadeSceneActionsViewModel.Factory,
    private val contentViewModelFactory: QuickSettingsShadeSceneContentViewModel.Factory,
    private val lockscreenContent: Lazy<Optional<LockscreenContent>>,
    private val shadeHeaderViewModel: ShadeHeaderViewModel,
    private val shadeHeaderViewModelFactory: ShadeHeaderViewModel.Factory,
    private val tintedIconManagerFactory: TintedIconManager.Factory,
    private val batteryMeterViewControllerFactory: BatteryMeterViewController.Factory,
    private val statusBarIconController: StatusBarIconController,
@@ -98,7 +98,7 @@ constructor(
        ) {
            Column {
                ExpandedShadeHeader(
                    viewModel = shadeHeaderViewModel,
                    viewModelFactory = shadeHeaderViewModelFactory,
                    createTintedIconManager = tintedIconManagerFactory::create,
                    createBatteryMeterViewController = batteryMeterViewControllerFactory::create,
                    statusBarIconController = statusBarIconController,
+5 −2
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ import com.android.systemui.common.ui.compose.windowinsets.CutoutLocation
import com.android.systemui.common.ui.compose.windowinsets.LocalDisplayCutout
import com.android.systemui.common.ui.compose.windowinsets.LocalScreenCornerRadius
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.privacy.OngoingPrivacyChip
import com.android.systemui.res.R
import com.android.systemui.scene.shared.model.Scenes
@@ -122,12 +123,13 @@ object ShadeHeader {

@Composable
fun SceneScope.CollapsedShadeHeader(
    viewModel: ShadeHeaderViewModel,
    viewModelFactory: ShadeHeaderViewModel.Factory,
    createTintedIconManager: (ViewGroup, StatusBarLocation) -> TintedIconManager,
    createBatteryMeterViewController: (ViewGroup, StatusBarLocation) -> BatteryMeterViewController,
    statusBarIconController: StatusBarIconController,
    modifier: Modifier = Modifier,
) {
    val viewModel = rememberViewModel { viewModelFactory.create() }
    val isDisabled by viewModel.isDisabled.collectAsStateWithLifecycle()
    if (isDisabled) {
        return
@@ -279,12 +281,13 @@ fun SceneScope.CollapsedShadeHeader(

@Composable
fun SceneScope.ExpandedShadeHeader(
    viewModel: ShadeHeaderViewModel,
    viewModelFactory: ShadeHeaderViewModel.Factory,
    createTintedIconManager: (ViewGroup, StatusBarLocation) -> TintedIconManager,
    createBatteryMeterViewController: (ViewGroup, StatusBarLocation) -> BatteryMeterViewController,
    statusBarIconController: StatusBarIconController,
    modifier: Modifier = Modifier,
) {
    val viewModel = rememberViewModel { viewModelFactory.create() }
    val isDisabled by viewModel.isDisabled.collectAsStateWithLifecycle()
    if (isDisabled) {
        return
+2 −2
Original line number Diff line number Diff line
@@ -316,7 +316,7 @@ private fun SceneScope.SingleShade(
                                    },
                        ) {
                            CollapsedShadeHeader(
                                viewModel = viewModel.shadeHeaderViewModel,
                                viewModelFactory = viewModel.shadeHeaderViewModelFactory,
                                createTintedIconManager = createTintedIconManager,
                                createBatteryMeterViewController = createBatteryMeterViewController,
                                statusBarIconController = statusBarIconController,
@@ -515,7 +515,7 @@ private fun SceneScope.SplitShade(
            modifier = Modifier.fillMaxSize(),
        ) {
            CollapsedShadeHeader(
                viewModel = viewModel.shadeHeaderViewModel,
                viewModelFactory = viewModel.shadeHeaderViewModelFactory,
                createTintedIconManager = createTintedIconManager,
                createBatteryMeterViewController = createBatteryMeterViewController,
                statusBarIconController = statusBarIconController,
Loading