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

Commit 90774f14 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[flexiglass] Fixes user switching issue." into main

parents 5fe72398 5c48f380
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.systemui.scene.domain.interactor.sceneBackInteractor
import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.statusbar.policy.data.repository.fakeDeviceProvisioningRepository
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
@@ -340,14 +341,14 @@ class WindowManagerLockscreenVisibilityInteractorTest : SysuiTestCase() {

    @Test
    @EnableSceneContainer
    fun surfaceBehindVisibility_whileSceneContainerNotVisible_alwaysTrue() =
    fun surfaceBehindVisibility_whileDeviceNotProvisioned_alwaysTrue() =
        testScope.runTest {
            val isSurfaceBehindVisible by collectLastValue(underTest.value.surfaceBehindVisibility)
            val currentScene by collectLastValue(kosmos.sceneInteractor.currentScene)
            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
            assertThat(isSurfaceBehindVisible).isFalse()

            kosmos.sceneInteractor.setVisible(false, "test")
            kosmos.fakeDeviceProvisioningRepository.setDeviceProvisioned(false)
            runCurrent()

            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+6 −5
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.statusbar.notification.domain.interactor.NotificationLaunchAnimationInteractor
import com.android.systemui.statusbar.policy.domain.interactor.DeviceProvisioningInteractor
import com.android.systemui.util.kotlin.Utils.Companion.toQuad
import com.android.systemui.utils.coroutines.flow.flatMapLatestConflated
import dagger.Lazy
@@ -57,6 +58,7 @@ constructor(
    sceneInteractor: Lazy<SceneInteractor>,
    deviceEntryInteractor: Lazy<DeviceEntryInteractor>,
    wakeToGoneInteractor: KeyguardWakeDirectlyToGoneInteractor,
    deviceProvisioningInteractor: Lazy<DeviceProvisioningInteractor>,
) {
    private val defaultSurfaceBehindVisibility =
        combine(
@@ -197,10 +199,9 @@ constructor(
        }

    private val lockscreenVisibilityWithScenes: Flow<Boolean> =
        // The scene container visibility into account as that will be forced to false when the
        // device isn't yet provisioned (e.g. still in the setup wizard).
        sceneInteractor.get().isVisible.flatMapLatestConflated { isVisible ->
            if (isVisible) {
        deviceProvisioningInteractor.get().isDeviceProvisioned.flatMapLatestConflated {
            isProvisioned ->
            if (isProvisioned) {
                combine(
                        sceneInteractor.get().transitionState.flatMapLatestConflated {
                            when (it) {
@@ -236,7 +237,7 @@ constructor(
                        lockscreenVisibilityByTransitionState && !canWakeDirectlyToGone
                    }
            } else {
                // Lockscreen is never visible when the scene container is invisible.
                // Lockscreen is never visible when the device isn't provisioned.
                flowOf(false)
            }
        }
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import com.android.systemui.keyguard.data.repository.keyguardTransitionRepositor
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.statusbar.notification.domain.interactor.notificationLaunchAnimationInteractor
import com.android.systemui.statusbar.policy.domain.interactor.deviceProvisioningInteractor

val Kosmos.windowManagerLockscreenVisibilityInteractor by
    Kosmos.Fixture {
@@ -36,5 +37,6 @@ val Kosmos.windowManagerLockscreenVisibilityInteractor by
            sceneInteractor = { sceneInteractor },
            deviceEntryInteractor = { deviceEntryInteractor },
            wakeToGoneInteractor = keyguardWakeDirectlyToGoneInteractor,
            deviceProvisioningInteractor = { deviceProvisioningInteractor },
        )
    }