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

Commit 23832440 authored by Beverly Tai's avatar Beverly Tai Committed by Android (Google) Code Review
Browse files

Merge "Add null-check for lockscreenSmartspace" into tm-qpr-dev

parents b6ba2dcf a952ca89
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -282,7 +282,8 @@ class KeyguardUnlockAnimationController @Inject constructor(
     * window like any other app. This can be true while [willUnlockWithSmartspaceTransition] is
     * false, if the smartspace is not available or was not ready in time.
     */
    private var willUnlockWithInWindowLauncherAnimations: Boolean = false
    @VisibleForTesting
    var willUnlockWithInWindowLauncherAnimations: Boolean = false

    /**
     * Whether we decided in [prepareForInWindowLauncherAnimations] that we are able to and want to
@@ -484,8 +485,8 @@ class KeyguardUnlockAnimationController @Inject constructor(
            // surface behind the keyguard to finish unlocking.
            if (keyguardStateController.isFlingingToDismissKeyguard) {
                playCannedUnlockAnimation()
            } else if (keyguardStateController.isDismissingFromSwipe
                    && willUnlockWithInWindowLauncherAnimations) {
            } else if (keyguardStateController.isDismissingFromSwipe &&
                    willUnlockWithInWindowLauncherAnimations) {
                // If we're swiping to unlock to the Launcher, and can play in-window animations,
                // make the launcher surface fully visible and play the in-window unlock animation
                // on the launcher icons. System UI will remain locked, using the swipe-to-unlock
@@ -574,7 +575,7 @@ class KeyguardUnlockAnimationController @Inject constructor(

        // Now that the Launcher surface (with its smartspace positioned identically to ours) is
        // visible, hide our smartspace.
        lockscreenSmartspace!!.visibility = View.INVISIBLE
        lockscreenSmartspace?.visibility = View.INVISIBLE

        // As soon as the shade has animated out of the way, finish the keyguard exit animation. The
        // in-window animations in the Launcher window will end on their own.
@@ -727,8 +728,8 @@ class KeyguardUnlockAnimationController @Inject constructor(

        // If we're dismissing via swipe to the Launcher, we'll play in-window scale animations, so
        // don't also scale the window.
        if (keyguardStateController.isDismissingFromSwipe
                && willUnlockWithInWindowLauncherAnimations) {
        if (keyguardStateController.isDismissingFromSwipe &&
                willUnlockWithInWindowLauncherAnimations) {
            scaleFactor = 1f
        }

+16 −2
Original line number Diff line number Diff line
@@ -27,11 +27,11 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor.forClass
import org.mockito.Mock
import org.mockito.Mockito.`when`
import org.mockito.Mockito.mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations

@RunWith(AndroidTestingRunner::class)
@@ -218,4 +218,18 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() {
        assertFalse(keyguardUnlockAnimationController.canPerformInWindowLauncherAnimations())
        assertFalse(keyguardUnlockAnimationController.isPlayingCannedUnlockAnimation())
    }

    @Test
    fun playCannedUnlockAnimation_nullSmartspaceView_doesNotThrowExecption() {
        keyguardUnlockAnimationController.lockscreenSmartspace = null
        keyguardUnlockAnimationController.willUnlockWithInWindowLauncherAnimations = true

        keyguardUnlockAnimationController.notifyStartSurfaceBehindRemoteAnimation(
                remoteAnimationTarget,
                0 /* startTime */,
                false /* requestedShowSurfaceBehindKeyguard */
        )

        assertTrue(keyguardUnlockAnimationController.isPlayingCannedUnlockAnimation())
    }
}