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

Commit 4f667c4e authored by Ale Nijamkin's avatar Ale Nijamkin Committed by Android (Google) Code Review
Browse files

Merge changes I9d880122,I138795d4 into main

* changes:
  [flexiglass] Scene class hierarchy changes
  [flexiglass] Structured concurrency fixes
parents 9a983115 32183dd8
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneActionsViewModel
import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.ui.composable.ComposableScene
@@ -56,7 +57,7 @@ constructor(
    private val actionsViewModelFactory: BouncerSceneActionsViewModel.Factory,
    private val contentViewModelFactory: BouncerSceneContentViewModel.Factory,
    private val dialogFactory: BouncerDialogFactory,
) : ComposableScene {
) : ExclusiveActivatable(), ComposableScene {
    override val key = Scenes.Bouncer

    private val actionsViewModel: BouncerSceneActionsViewModel by lazy {
@@ -66,7 +67,7 @@ constructor(
    override val destinationScenes: Flow<Map<UserAction, UserActionResult>> =
        actionsViewModel.actions

    override suspend fun activate(): Nothing {
    override suspend fun onActivated(): Nothing {
        actionsViewModel.activate()
    }

+7 −1
Original line number Diff line number Diff line
@@ -27,10 +27,12 @@ import com.android.systemui.communal.ui.view.layout.sections.CommunalAppWidgetSe
import com.android.systemui.communal.ui.viewmodel.CommunalViewModel
import com.android.systemui.communal.widgets.WidgetInteractionHandler
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.ui.composable.ComposableScene
import com.android.systemui.statusbar.phone.SystemUIDialogFactory
import javax.inject.Inject
import kotlinx.coroutines.awaitCancellation
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
@@ -44,7 +46,7 @@ constructor(
    private val dialogFactory: SystemUIDialogFactory,
    private val interactionHandler: WidgetInteractionHandler,
    private val widgetSection: CommunalAppWidgetSection,
) : ComposableScene {
) : ExclusiveActivatable(), ComposableScene {
    override val key = Scenes.Communal

    override val destinationScenes: Flow<Map<UserAction, UserActionResult>> =
@@ -55,6 +57,10 @@ constructor(
            )
            .asStateFlow()

    override suspend fun onActivated(): Nothing {
        awaitCancellation()
    }

    @Composable
    override fun SceneScope.Content(modifier: Modifier) {
        CommunalHub(
+3 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.compose.animation.scene.UserActionResult
import com.android.compose.animation.scene.animateSceneFloatAsState
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.keyguard.ui.viewmodel.LockscreenSceneActionsViewModel
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.qs.ui.composable.QuickSettings
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.ui.composable.ComposableScene
@@ -39,7 +40,7 @@ class LockscreenScene
constructor(
    actionsViewModelFactory: LockscreenSceneActionsViewModel.Factory,
    private val lockscreenContent: Lazy<LockscreenContent>,
) : ComposableScene {
) : ExclusiveActivatable(), ComposableScene {
    override val key = Scenes.Lockscreen

    private val actionsViewModel: LockscreenSceneActionsViewModel by lazy {
@@ -49,7 +50,7 @@ constructor(
    override val destinationScenes: Flow<Map<UserAction, UserActionResult>> =
        actionsViewModel.actions

    override suspend fun activate(): Nothing {
    override suspend fun onActivated(): Nothing {
        actionsViewModel.activate()
    }

+3 −2
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.compose.animation.scene.UserActionResult
import com.android.systemui.battery.BatteryMeterViewController
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.keyguard.ui.composable.LockscreenContent
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.notifications.ui.viewmodel.NotificationsShadeSceneActionsViewModel
import com.android.systemui.scene.session.ui.composable.SaveableSession
@@ -61,7 +62,7 @@ constructor(
    private val shadeSession: SaveableSession,
    private val stackScrollView: Lazy<NotificationScrollView>,
    private val lockscreenContent: Lazy<Optional<LockscreenContent>>,
) : ComposableScene {
) : ExclusiveActivatable(), ComposableScene {

    override val key = Scenes.NotificationsShade

@@ -72,7 +73,7 @@ constructor(
    override val destinationScenes: Flow<Map<UserAction, UserActionResult>> =
        actionsViewModel.actions

    override suspend fun activate(): Nothing {
    override suspend fun onActivated(): Nothing {
        actionsViewModel.activate()
    }

+3 −2
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ import com.android.systemui.common.ui.compose.windowinsets.LocalDisplayCutout
import com.android.systemui.common.ui.compose.windowinsets.LocalRawScreenHeight
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.media.controls.ui.composable.MediaCarousel
import com.android.systemui.media.controls.ui.controller.MediaCarouselController
@@ -129,7 +130,7 @@ constructor(
    private val statusBarIconController: StatusBarIconController,
    private val mediaCarouselController: MediaCarouselController,
    @Named(MediaModule.QS_PANEL) private val mediaHost: MediaHost,
) : ComposableScene {
) : ExclusiveActivatable(), ComposableScene {
    override val key = Scenes.QuickSettings

    private val actionsViewModel: QuickSettingsSceneActionsViewModel by lazy {
@@ -139,7 +140,7 @@ constructor(
    override val destinationScenes: Flow<Map<UserAction, UserActionResult>> =
        actionsViewModel.actions

    override suspend fun activate(): Nothing {
    override suspend fun onActivated(): Nothing {
        actionsViewModel.activate()
    }

Loading