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

Commit 04f57197 authored by Aaron Liu's avatar Aaron Liu
Browse files

Fix dismiss callback when keyguard is dismissing.

AnimatingAway is set to false before hide is called, causing the dismiss
action to be cancelled. This is breaking CarSysUI. Maintain parity with
the legacy bouncer by setting disppear animation to null when we hide
the bouncer so we maintain the state of animating away when we check to
see if we should dismiss the callback.

Fixes: 271166101
Test: Atest
Change-Id: Ia51ec982dd78b69db82f69ae525e402bd461f294
parent 90b21ce6
Loading
Loading
Loading
Loading
+6 −11
Original line number Diff line number Diff line
@@ -21,8 +21,6 @@ import android.content.res.ColorStateList
import android.hardware.biometrics.BiometricSourceType
import android.os.Handler
import android.os.Trace
import android.os.UserHandle
import android.os.UserManager
import android.util.Log
import android.view.View
import com.android.keyguard.KeyguardConstants
@@ -107,10 +105,9 @@ constructor(
    val panelExpansionAmount: Flow<Float> = repository.panelExpansionAmount
    /** 0f = bouncer fully hidden. 1f = bouncer fully visible. */
    val bouncerExpansion: Flow<Float> =
        combine(
            repository.panelExpansionAmount,
            repository.primaryBouncerShow
        ) { panelExpansion, primaryBouncerIsShowing ->
        combine(repository.panelExpansionAmount, repository.primaryBouncerShow) {
            panelExpansion,
            primaryBouncerIsShowing ->
            if (primaryBouncerIsShowing) {
                1f - panelExpansion
            } else {
@@ -196,6 +193,7 @@ constructor(
            dismissCallbackRegistry.notifyDismissCancelled()
        }

        repository.setPrimaryStartDisappearAnimation(null)
        falsingCollector.onBouncerHidden()
        keyguardStateController.notifyPrimaryBouncerShowing(false /* showing */)
        cancelShowRunnable()
@@ -307,11 +305,8 @@ constructor(
            runnable.run()
            return
        }
        val finishRunnable = Runnable {
            runnable.run()
            repository.setPrimaryStartDisappearAnimation(null)
        }
        repository.setPrimaryStartDisappearAnimation(finishRunnable)

        repository.setPrimaryStartDisappearAnimation(runnable)
    }

    /** Determine whether to show the side fps animation. */
+1 −0
Original line number Diff line number Diff line
@@ -131,6 +131,7 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
        verify(repository).setPrimaryShowingSoon(false)
        verify(repository).setPrimaryShow(false)
        verify(mPrimaryBouncerCallbackInteractor).dispatchVisibilityChanged(View.INVISIBLE)
        verify(repository).setPrimaryStartDisappearAnimation(null)
    }

    @Test