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

Commit b6e02401 authored by Steven Ng's avatar Steven Ng
Browse files

Use keyguard showing instead of dismissible for showing wallpaper presentation

Wallpaper presentation should also be shown in connected display when swipe to dismiss screen is shown in the primary display.

Flag: com.android.window.flags.enable_connected_displays_wallpaper_presentations
Test: DisplayWallpaperPresentationInteractorTest
Fix: 440567351
Change-Id: I67570817d5e0f131e63b1e244b57755d438fa6bc
parent 590bf354
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -69,14 +69,14 @@ class DisplayWallpaperPresentationInteractorTest : SysuiTestCase() {

    @Before
    fun setUp() {
        fakeKeyguardRepository.setKeyguardDismissible(isUnlocked = true)
        fakeKeyguardRepository.setKeyguardShowing(isShowing = false)
        deviceProvisioningRepository.setDeviceProvisioned(true)
    }

    @Test
    fun presentationFactoryFlow_unlocked_provisioned_none() =
        kosmos.runTest {
            fakeKeyguardRepository.setKeyguardDismissible(isUnlocked = true)
            fakeKeyguardRepository.setKeyguardShowing(isShowing = false)
            deviceProvisioningRepository.setDeviceProvisioned(true)

            val actual by collectLastValue(wallpaperPresentationInteractor.presentationFactoryFlow)
@@ -86,7 +86,7 @@ class DisplayWallpaperPresentationInteractorTest : SysuiTestCase() {
    @Test
    fun presentationFactoryFlow_locked_provisioned_displayCompatible_keyguard() =
        kosmos.runTest {
            fakeKeyguardRepository.setKeyguardDismissible(isUnlocked = false)
            fakeKeyguardRepository.setKeyguardShowing(isShowing = true)
            deviceProvisioningRepository.setDeviceProvisioned(true)

            val actual by collectLastValue(wallpaperPresentationInteractor.presentationFactoryFlow)
@@ -97,7 +97,7 @@ class DisplayWallpaperPresentationInteractorTest : SysuiTestCase() {
    fun presentationFactoryFlow_locked_provisioned_displayIncompatible_none() =
        kosmos.runTest {
            testDisplayInfo.flags = Display.FLAG_PRIVATE
            fakeKeyguardRepository.setKeyguardDismissible(isUnlocked = false)
            fakeKeyguardRepository.setKeyguardShowing(isShowing = true)
            deviceProvisioningRepository.setDeviceProvisioned(true)

            val actual by collectLastValue(wallpaperPresentationInteractor.presentationFactoryFlow)
@@ -108,7 +108,7 @@ class DisplayWallpaperPresentationInteractorTest : SysuiTestCase() {
    fun presentationFactoryFlow_provisioning_locked_displayCompatible_provisioning() =
        kosmos.runTest {
            deviceProvisioningRepository.setDeviceProvisioned(false)
            fakeKeyguardRepository.setKeyguardDismissible(isUnlocked = false)
            fakeKeyguardRepository.setKeyguardShowing(isShowing = true)

            val actual by collectLastValue(wallpaperPresentationInteractor.presentationFactoryFlow)
            assertThat(actual).isEqualTo(PROVISIONING)
@@ -118,7 +118,7 @@ class DisplayWallpaperPresentationInteractorTest : SysuiTestCase() {
    fun presentationFactoryFlow_provisioning_unlocked_displayCompatible_provisioning() =
        kosmos.runTest {
            deviceProvisioningRepository.setDeviceProvisioned(false)
            fakeKeyguardRepository.setKeyguardDismissible(isUnlocked = true)
            fakeKeyguardRepository.setKeyguardShowing(isShowing = false)

            val actual by collectLastValue(wallpaperPresentationInteractor.presentationFactoryFlow)
            assertThat(actual).isEqualTo(PROVISIONING)
+5 −5
Original line number Diff line number Diff line
@@ -52,13 +52,13 @@ constructor(
    private val keyguardDisplayManager: Lazy<KeyguardDisplayManager>,
) : DisplayWallpaperPresentationInteractor {
    override val presentationFactoryFlow: StateFlow<WallpaperPresentationType> by lazy {
        val keyguardDismissedFlow = keyguardInteractor.get().isKeyguardDismissible
        val keyguardShowingFlow = keyguardInteractor.get().isKeyguardShowing
        val deviceProvisionedFlow = deviceProvisioningRepository.get().isDeviceProvisioned
        combine(keyguardDismissedFlow, deviceProvisionedFlow) {
                isKeyguardDismissed,
        combine(keyguardShowingFlow, deviceProvisionedFlow) {
                isKeyguardShowing,
                isDeviceProvisioned ->
                debugLog(enabled = DEBUG, tag = TAG) {
                    "Display ${display.displayId} - isKeyguardDismissed: $isKeyguardDismissed, " +
                    "Display ${display.displayId} - isKeyguardShowing: $isKeyguardShowing, " +
                        "isDeviceProvisioned: $isDeviceProvisioned"
                }
                when {
@@ -69,7 +69,7 @@ constructor(
                            NONE
                        }

                    !isKeyguardDismissed ->
                    isKeyguardShowing ->
                        if (keyguardDisplayManager.get().isKeyguardShowable(display)) {
                            KEYGUARD
                        } else {