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

Commit 86c45e01 authored by Matt Pietal's avatar Matt Pietal
Browse files

On exit, ensure transition to GONE happens

Previously, we always checked if LOCKSCREEN->GONE needed to run.
Add an additional check for the current state and also move from
OCCLUDED->GONE if necessary.

Fixes: 359991475
Test: atest KeyguardInteractorTest
Flag: com.android.systemui.migrate_clocks_to_blueprint
Change-Id: Iac7e719fd7f0b11f9555dfeeb7699f17581d5cac
parent 7707c243
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.keyguard.domain.interactor

import android.app.StatusBarManager
import android.graphics.Point
import android.util.Log
import android.util.MathUtils
import com.android.app.animation.Interpolators
import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepository
@@ -38,6 +39,7 @@ import com.android.systemui.keyguard.shared.model.Edge
import com.android.systemui.keyguard.shared.model.KeyguardState.AOD
import com.android.systemui.keyguard.shared.model.KeyguardState.GONE
import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN
import com.android.systemui.keyguard.shared.model.KeyguardState.OCCLUDED
import com.android.systemui.keyguard.shared.model.StatusBarState
import com.android.systemui.power.domain.interactor.PowerInteractor
import com.android.systemui.res.R
@@ -87,6 +89,7 @@ constructor(
    sceneInteractorProvider: Provider<SceneInteractor>,
    private val fromGoneTransitionInteractor: Provider<FromGoneTransitionInteractor>,
    private val fromLockscreenTransitionInteractor: Provider<FromLockscreenTransitionInteractor>,
    private val fromOccludedTransitionInteractor: Provider<FromOccludedTransitionInteractor>,
    sharedNotificationContainerInteractor: Provider<SharedNotificationContainerInteractor>,
    @Application applicationScope: CoroutineScope,
) {
@@ -484,7 +487,11 @@ constructor(

    /** Temporary shim, until [KeyguardWmStateRefactor] is enabled */
    fun dismissKeyguard() {
        fromLockscreenTransitionInteractor.get().dismissKeyguard()
        when (keyguardTransitionInteractor.transitionState.value.to) {
            LOCKSCREEN -> fromLockscreenTransitionInteractor.get().dismissKeyguard()
            OCCLUDED -> fromOccludedTransitionInteractor.get().dismissFromOccluded()
            else -> Log.v(TAG, "Keyguard was dismissed, no direct transition call needed")
        }
    }

    fun onCameraLaunchDetected(source: Int) {
+1 −0
Original line number Diff line number Diff line
@@ -197,6 +197,7 @@ public class QuickSettingsControllerImplBaseTest extends SysuiTestCase {
                () -> sceneInteractor,
                () -> mKosmos.getFromGoneTransitionInteractor(),
                () -> mKosmos.getFromLockscreenTransitionInteractor(),
                () -> mKosmos.getFromOccludedTransitionInteractor(),
                () -> mKosmos.getSharedNotificationContainerInteractor(),
                mTestScope);

+2 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ object KeyguardInteractorFactory {
        sceneInteractor: SceneInteractor = mock(),
        fromGoneTransitionInteractor: FromGoneTransitionInteractor = mock(),
        fromLockscreenTransitionInteractor: FromLockscreenTransitionInteractor = mock(),
        fromOccludedTransitionInteractor: FromOccludedTransitionInteractor = mock(),
        sharedNotificationContainerInteractor: SharedNotificationContainerInteractor? = null,
        powerInteractor: PowerInteractor = PowerInteractorFactory.create().powerInteractor,
        testScope: CoroutineScope = TestScope(),
@@ -100,6 +101,7 @@ object KeyguardInteractorFactory {
                sceneInteractorProvider = { sceneInteractor },
                fromGoneTransitionInteractor = { fromGoneTransitionInteractor },
                fromLockscreenTransitionInteractor = { fromLockscreenTransitionInteractor },
                fromOccludedTransitionInteractor = { fromOccludedTransitionInteractor },
                sharedNotificationContainerInteractor = { sncInteractor },
                applicationScope = testScope,
            ),
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ val Kosmos.keyguardInteractor: KeyguardInteractor by
            sceneInteractorProvider = { sceneInteractor },
            fromGoneTransitionInteractor = { fromGoneTransitionInteractor },
            fromLockscreenTransitionInteractor = { fromLockscreenTransitionInteractor },
            fromOccludedTransitionInteractor = { fromOccludedTransitionInteractor },
            sharedNotificationContainerInteractor = { sharedNotificationContainerInteractor },
            applicationScope = testScope.backgroundScope,
        )
+2 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
import com.android.systemui.keyguard.domain.interactor.fromGoneTransitionInteractor
import com.android.systemui.keyguard.domain.interactor.fromLockscreenTransitionInteractor
import com.android.systemui.keyguard.domain.interactor.fromOccludedTransitionInteractor
import com.android.systemui.keyguard.domain.interactor.fromPrimaryBouncerTransitionInteractor
import com.android.systemui.keyguard.domain.interactor.keyguardClockInteractor
import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
@@ -128,6 +129,7 @@ class KosmosJavaAdapter() {
    val deviceProvisioningInteractor by lazy { kosmos.deviceProvisioningInteractor }
    val fakeDeviceProvisioningRepository by lazy { kosmos.fakeDeviceProvisioningRepository }
    val fromLockscreenTransitionInteractor by lazy { kosmos.fromLockscreenTransitionInteractor }
    val fromOccludedTransitionInteractor by lazy { kosmos.fromOccludedTransitionInteractor }
    val fromPrimaryBouncerTransitionInteractor by lazy {
        kosmos.fromPrimaryBouncerTransitionInteractor
    }