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

Commit a67ab230 authored by Danny Burakov's avatar Danny Burakov Committed by Android (Google) Code Review
Browse files

Merge "[bc25] Add a Shade Header to QuickSettingsShadeScene." into main

parents 98f2cbe3 7b2ef5fb
Loading
Loading
Loading
Loading
+50 −20
Original line number Diff line number Diff line
@@ -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
@@ -75,9 +85,31 @@ constructor(
            horizontalArrangement = Arrangement.End,
            lockscreenContent = lockscreenContent,
            modifier = modifier,
        ) {
            Column {
                ExpandedShadeHeader(
                    viewModel = shadeHeaderViewModel,
                    createTintedIconManager = tintedIconManagerFactory::create,
                    createBatteryMeterViewController = batteryMeterViewControllerFactory::create,
                    statusBarIconController = statusBarIconController,
                    modifier = Modifier.padding(QuickSettingsShade.Dimensions.Padding),
                )

                ShadeBody(
                    viewModel = viewModel,
                )
            }
        }
    }
}

@Composable
private fun ShadeBody(
    viewModel: QuickSettingsShadeSceneViewModel,
) {
    val isEditing by viewModel.editModeViewModel.isEditing.collectAsStateWithLifecycle()

    Box {
        // The main Quick Settings grid layout.
        AnimatedVisibility(
            visible = !isEditing,
@@ -97,13 +129,11 @@ constructor(
        ) {
            EditMode(
                viewModel = viewModel.editModeViewModel,
                    modifier =
                        Modifier.fillMaxWidth().padding(QuickSettingsShade.Dimensions.Padding)
                modifier = Modifier.fillMaxWidth().padding(QuickSettingsShade.Dimensions.Padding)
            )
        }
    }
}
}

@Composable
private fun QuickSettingsLayout(