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

This commit is contained in:
Beverly Tai
2022-09-08 13:09:12 +00:00
committed by Android (Google) Code Review
2 changed files with 23 additions and 8 deletions

View File

@@ -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
}

View File

@@ -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())
}
}