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

Commit 425b504a authored by Olivier St-Onge's avatar Olivier St-Onge
Browse files

Change scene on main thread

Flag: EXEMPT bugfix
Bug: 421475573
Test: abtd run
Change-Id: Idccd4158c04edbd3589744b4542bdb05d84606c2
parent a2d6105f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.systemui.SysuiTestCase
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.lifecycle.activateIn
@@ -82,6 +83,7 @@ class QuickSettingsSceneContentViewModelTest : SysuiTestCase() {
                    mediaCarouselInteractor = mediaCarouselInteractor,
                    shadeModeInteractor = shadeModeInteractor,
                    sceneInteractor = sceneInteractor,
                    mainDispatcher = testDispatcher,
                )
            underTest.activateIn(testScope)
            disableDualShade()
+5 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.qs.ui.viewmodel
import androidx.compose.runtime.getValue
import androidx.lifecycle.LifecycleOwner
import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.Hydrator
import com.android.systemui.media.controls.domain.pipeline.interactor.MediaCarouselInteractor
@@ -34,6 +35,8 @@ import com.android.systemui.shade.ui.viewmodel.ShadeHeaderViewModel
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import java.util.concurrent.atomic.AtomicBoolean
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.awaitCancellation
import kotlinx.coroutines.coroutineScope

@@ -55,6 +58,7 @@ constructor(
    val mediaCarouselInteractor: MediaCarouselInteractor,
    private val shadeModeInteractor: ShadeModeInteractor,
    private val sceneInteractor: SceneInteractor,
    @Main private val mainDispatcher: CoroutineDispatcher,
) : ExclusiveActivatable() {
    val qsContainerViewModel = qsContainerViewModelFactory.create(supportsBrightnessMirroring = true)

@@ -81,7 +85,7 @@ constructor(

            launch { qsContainerViewModel.activate() }

            launch {
            launch(context = mainDispatcher) {
                shadeModeInteractor.shadeMode.collect { shadeMode ->
                    if (shadeMode is ShadeMode.Split) {
                        sceneInteractor.snapToScene(Scenes.Shade, "Unfold while on QS")
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.view.ViewGroup
import android.widget.FrameLayout
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.media.controls.domain.pipeline.interactor.mediaCarouselInteractor
import com.android.systemui.qs.footerActionsController
import com.android.systemui.qs.footerActionsViewModelFactory
@@ -57,6 +58,7 @@ val Kosmos.quickSettingsSceneContentViewModel by Fixture {
        mediaCarouselInteractor = mediaCarouselInteractor,
        shadeModeInteractor = shadeModeInteractor,
        sceneInteractor = sceneInteractor,
        mainDispatcher = testDispatcher,
    )
}