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

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

Merge "Reset dismissAction and notifyCancel dismissCallbacks when altBouncer removed" into main

parents d6888b1d 48bb658f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.keyguard.ui.viewmodel

import android.graphics.Color
import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor
import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor
import com.android.systemui.keyguard.DismissCallbackRegistry
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState.ALTERNATE_BOUNCER
@@ -41,6 +42,7 @@ constructor(
    keyguardTransitionInteractor: KeyguardTransitionInteractor,
    private val dismissCallbackRegistry: DismissCallbackRegistry,
    alternateBouncerInteractor: Lazy<AlternateBouncerInteractor>,
    private val primaryBouncerInteractor: PrimaryBouncerInteractor,
) {
    // When we're fully transitioned to the AlternateBouncer, the alpha of the scrim should be:
    private val alternateBouncerScrimAlpha = .66f
@@ -68,10 +70,13 @@ constructor(

    fun onRemovedFromWindow() {
        statusBarKeyguardViewManager.hideAlternateBouncer(false)
        primaryBouncerInteractor.setDismissAction(null, null)
        dismissCallbackRegistry.notifyDismissCancelled()
    }

    fun onBackRequested() {
        statusBarKeyguardViewManager.hideAlternateBouncer(false)
        primaryBouncerInteractor.setDismissAction(null, null)
        dismissCallbackRegistry.notifyDismissCancelled()
    }
}
+21 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.internal.policy.IKeyguardDismissCallback
import com.android.systemui.SysuiTestCase
import com.android.systemui.bouncer.domain.interactor.primaryBouncerInteractor
import com.android.systemui.concurrency.fakeExecutor
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectValues
@@ -30,6 +31,7 @@ import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.keyguard.shared.model.TransitionStep
import com.android.systemui.kosmos.testScope
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.phone.statusBarKeyguardViewManager
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.any
@@ -62,13 +64,31 @@ class AlternateBouncerViewModelTest : SysuiTestCase() {
    @Test
    fun onRemovedFromWindow() =
        testScope.runTest {
            kosmos.primaryBouncerInteractor.setDismissAction(
                mock(ActivityStarter.OnDismissAction::class.java),
                {},
            )
            assertThat(kosmos.primaryBouncerInteractor.bouncerDismissAction).isNotNull()

            val dismissCallback = mock(IKeyguardDismissCallback::class.java)
            kosmos.dismissCallbackRegistry.addCallback(dismissCallback)
            underTest.onRemovedFromWindow()

            kosmos.fakeExecutor.runAllReady()
            verify(statusBarKeyguardViewManager).hideAlternateBouncer(any())
            verify(dismissCallback).onDismissCancelled()
            assertThat(kosmos.primaryBouncerInteractor.bouncerDismissAction).isNull()
        }

    @Test
    fun onBackRequested() =
        testScope.runTest {
            kosmos.primaryBouncerInteractor.setDismissAction(
                mock(ActivityStarter.OnDismissAction::class.java),
                {},
            )
            assertThat(kosmos.primaryBouncerInteractor.bouncerDismissAction).isNotNull()

            val dismissCallback = mock(IKeyguardDismissCallback::class.java)
            kosmos.dismissCallbackRegistry.addCallback(dismissCallback)

@@ -76,6 +96,7 @@ class AlternateBouncerViewModelTest : SysuiTestCase() {
            kosmos.fakeExecutor.runAllReady()
            verify(statusBarKeyguardViewManager).hideAlternateBouncer(any())
            verify(dismissCallback).onDismissCancelled()
            assertThat(kosmos.primaryBouncerInteractor.bouncerDismissAction).isNull()
        }

    @Test
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
package com.android.systemui.keyguard.ui.viewmodel

import com.android.systemui.bouncer.domain.interactor.alternateBouncerInteractor
import com.android.systemui.bouncer.domain.interactor.primaryBouncerInteractor
import com.android.systemui.keyguard.dismissCallbackRegistry
import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
import com.android.systemui.kosmos.Kosmos
@@ -32,5 +33,6 @@ val Kosmos.alternateBouncerViewModel by Fixture {
        keyguardTransitionInteractor = keyguardTransitionInteractor,
        dismissCallbackRegistry = dismissCallbackRegistry,
        alternateBouncerInteractor = { alternateBouncerInteractor },
        primaryBouncerInteractor = primaryBouncerInteractor,
    )
}