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

Commit 5378a36a authored by Josh Tsuji's avatar Josh Tsuji
Browse files

Notify the dismiss callbacks when we finish transitioning to GONE.

Bug: 278086361
Test: cts tests
Flag: com.android.systemui.keyguard_wm_state_refactor
Change-Id: Iec79b01c203db5adf2b0011d48f1512748850dc9
parent 19bed91f
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -23,10 +23,12 @@ import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.keyguard.DismissCallbackRegistry
import com.android.systemui.keyguard.KeyguardWmStateRefactor
import com.android.systemui.keyguard.data.repository.KeyguardRepository
import com.android.systemui.keyguard.data.repository.TrustRepository
import com.android.systemui.keyguard.shared.model.DismissAction
import com.android.systemui.keyguard.shared.model.KeyguardDone
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.power.domain.interactor.PowerInteractor
import com.android.systemui.user.domain.interactor.SelectedUserInteractor
import com.android.systemui.util.kotlin.Utils.Companion.toQuad
@@ -35,6 +37,7 @@ import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.map
@@ -56,6 +59,7 @@ constructor(
    trustRepository: TrustRepository,
    alternateBouncerInteractor: AlternateBouncerInteractor,
    powerInteractor: PowerInteractor,
    keyguardTransitionInteractor: KeyguardTransitionInteractor,
) {
    /*
     * Updates when a biometric has authenticated the device and is requesting to dismiss
@@ -76,9 +80,9 @@ constructor(
                    primaryBouncerInteractor.isShowing,
                    alternateBouncerInteractor.isVisible,
                    powerInteractor.isInteractive,
                    ::Triple
                    ::Triple,
                ),
                ::toQuad
                ::toQuad,
            )
            .filter { (trustModel, primaryBouncerShowing, altBouncerShowing, interactive) ->
                val bouncerShowing = primaryBouncerShowing || altBouncerShowing
@@ -144,9 +148,7 @@ constructor(
     *
     * TODO(b/358412565): Support dismiss messages.
     */
    fun dismissKeyguardWithCallback(
        callback: IKeyguardDismissCallback?,
    ) {
    fun dismissKeyguardWithCallback(callback: IKeyguardDismissCallback?) {
        scope.launch {
            withContext(mainDispatcher) {
                if (callback != null) {
@@ -163,4 +165,14 @@ constructor(
            }
        }
    }

    init {
        if (KeyguardWmStateRefactor.isEnabled) {
            scope.launch {
                keyguardTransitionInteractor.currentKeyguardState
                    .filter { it == KeyguardState.GONE }
                    .collect { dismissCallbackRegistry.notifyDismissSucceeded() }
            }
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -41,5 +41,6 @@ val Kosmos.keyguardDismissInteractor by
            trustRepository = trustRepository,
            alternateBouncerInteractor = alternateBouncerInteractor,
            powerInteractor = powerInteractor,
            keyguardTransitionInteractor = keyguardTransitionInteractor,
        )
    }