Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardUnlockAnimationController.kt +22 −8 Original line number Diff line number Diff line Loading @@ -169,7 +169,8 @@ class KeyguardUnlockAnimationController @Inject constructor( playingCannedAnimation: Boolean, fromWakeAndUnlock: Boolean, unlockAnimationStartDelay: Long, unlockAnimationDuration: Long) {} unlockAnimationDuration: Long ) {} /** * Called when the remote unlock animation ends, in all cases, canned or swipe-to-unlock. Loading Loading @@ -308,8 +309,12 @@ class KeyguardUnlockAnimationController @Inject constructor( // call onKeyguardExitRemoteAnimationFinished since that will hide the keyguard // and unlock the device as well as hiding the surface. if (surfaceBehindAlpha == 0f) { Log.d(TAG, "surfaceBehindAlphaAnimator#onAnimationEnd") keyguardViewMediator.get().finishSurfaceBehindRemoteAnimation( false /* cancelled */) } else { Log.d(TAG, "skip finishSurfaceBehindRemoteAnimation" + " surfaceBehindAlpha=$surfaceBehindAlpha") } } }) Loading @@ -325,6 +330,7 @@ class KeyguardUnlockAnimationController @Inject constructor( } addListener(object : AnimatorListenerAdapter() { override fun onAnimationEnd(animation: Animator) { Log.d(TAG, "surfaceBehindEntryAnimator#onAnimationEnd") playingCannedUnlockAnimation = false keyguardViewMediator.get().onKeyguardExitRemoteAnimationFinished( false /* cancelled */ Loading Loading @@ -372,8 +378,8 @@ class KeyguardUnlockAnimationController @Inject constructor( * changed. */ override fun onKeyguardGoingAwayChanged() { if (keyguardStateController.isKeyguardGoingAway && !statusBarStateController.leaveOpenOnKeyguardHide()) { if (keyguardStateController.isKeyguardGoingAway && !statusBarStateController.leaveOpenOnKeyguardHide()) { prepareForInWindowLauncherAnimations() } } Loading Loading @@ -427,7 +433,7 @@ class KeyguardUnlockAnimationController @Inject constructor( launcherUnlockController?.prepareForUnlock( willUnlockWithSmartspaceTransition, /* willAnimateSmartspace */ lockscreenSmartspaceBounds, /* lockscreenSmartspaceBounds */ selectedPage, /* selectedPage */ selectedPage /* selectedPage */ ) } catch (e: RemoteException) { Log.e(TAG, "Remote exception in prepareForInWindowUnlockAnimations.", e) Loading Loading @@ -502,19 +508,23 @@ class KeyguardUnlockAnimationController @Inject constructor( * by the dismiss amount via [onKeyguardDismissAmountChanged]. */ private fun playCannedUnlockAnimation() { Log.d(TAG, "playCannedUnlockAnimation") playingCannedUnlockAnimation = true when { // If we're set up for in-window launcher animations, ask Launcher to play its in-window // canned animation. willUnlockWithInWindowLauncherAnimations -> unlockToLauncherWithInWindowAnimations() willUnlockWithInWindowLauncherAnimations -> { Log.d(TAG, "playCannedUnlockAnimation, unlockToLauncherWithInWindowAnimations") unlockToLauncherWithInWindowAnimations() } // If we're waking and unlocking to a non-Launcher app surface (or Launcher in-window // animations are not available), show it immediately and end the remote animation. The // circular light reveal will show the app surface, and it looks weird if it's moving // around behind that. biometricUnlockControllerLazy.get().isWakeAndUnlock -> { Log.d(TAG, "playCannedUnlockAnimation, isWakeAndUnlock") setSurfaceBehindAppearAmount(1f) keyguardViewMediator.get().onKeyguardExitRemoteAnimationFinished( false /* cancelled */) Loading @@ -522,7 +532,10 @@ class KeyguardUnlockAnimationController @Inject constructor( // Otherwise, we're doing a normal full-window unlock. Start this animator, which will // scale/translate the window underneath the lockscreen. else -> surfaceBehindEntryAnimator.start() else -> { Log.d(TAG, "playCannedUnlockAnimation, surfaceBehindEntryAnimator#start") surfaceBehindEntryAnimator.start() } } } Loading Loading @@ -774,16 +787,17 @@ class KeyguardUnlockAnimationController @Inject constructor( } private fun fadeInSurfaceBehind() { Log.d(TAG, "fadeInSurfaceBehind") surfaceBehindAlphaAnimator.cancel() surfaceBehindAlphaAnimator.start() } private fun fadeOutSurfaceBehind() { Log.d(TAG, "fadeOutSurfaceBehind") surfaceBehindAlphaAnimator.cancel() surfaceBehindAlphaAnimator.reverse() } private fun shouldPerformSmartspaceTransition(): Boolean { // Feature is disabled, so we don't want to. if (!featureFlags.isEnabled(Flags.SMARTSPACE_SHARED_ELEMENT_TRANSITION_ENABLED)) { Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +11 −1 Original line number Diff line number Diff line Loading @@ -2423,7 +2423,7 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, RemoteAnimationTarget[] apps, RemoteAnimationTarget[] wallpapers, RemoteAnimationTarget[] nonApps, IRemoteAnimationFinishedCallback finishedCallback) { Trace.beginSection("KeyguardViewMediator#handleStartKeyguardExitAnimation"); if (DEBUG) Log.d(TAG, "handleStartKeyguardExitAnimation startTime=" + startTime Log.d(TAG, "handleStartKeyguardExitAnimation startTime=" + startTime + " fadeoutDuration=" + fadeoutDuration); synchronized (KeyguardViewMediator.this) { Loading Loading @@ -2619,7 +2619,11 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, * @param cancelled {@code true} if the animation was cancelled before it finishes. */ public void onKeyguardExitRemoteAnimationFinished(boolean cancelled) { Log.d(TAG, "onKeyguardExitRemoteAnimationFinished"); if (!mSurfaceBehindRemoteAnimationRunning && !mSurfaceBehindRemoteAnimationRequested) { Log.d(TAG, "skip onKeyguardExitRemoteAnimationFinished cancelled=" + cancelled + " surfaceAnimationRunning=" + mSurfaceBehindRemoteAnimationRunning + " surfaceAnimationRequested=" + mSurfaceBehindRemoteAnimationRequested); return; } Loading @@ -2633,7 +2637,13 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, onKeyguardExitFinished(); if (mKeyguardStateController.isDismissingFromSwipe() || wasShowing) { Log.d(TAG, "onKeyguardExitRemoteAnimationFinished" + "#hideKeyguardViewAfterRemoteAnimation"); mKeyguardUnlockAnimationControllerLazy.get().hideKeyguardViewAfterRemoteAnimation(); } else { Log.d(TAG, "skip hideKeyguardViewAfterRemoteAnimation" + " dismissFromSwipe=" + mKeyguardStateController.isDismissingFromSwipe() + " wasShowing=" + wasShowing); } finishSurfaceBehindRemoteAnimation(cancelled); Loading Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardUnlockAnimationController.kt +22 −8 Original line number Diff line number Diff line Loading @@ -169,7 +169,8 @@ class KeyguardUnlockAnimationController @Inject constructor( playingCannedAnimation: Boolean, fromWakeAndUnlock: Boolean, unlockAnimationStartDelay: Long, unlockAnimationDuration: Long) {} unlockAnimationDuration: Long ) {} /** * Called when the remote unlock animation ends, in all cases, canned or swipe-to-unlock. Loading Loading @@ -308,8 +309,12 @@ class KeyguardUnlockAnimationController @Inject constructor( // call onKeyguardExitRemoteAnimationFinished since that will hide the keyguard // and unlock the device as well as hiding the surface. if (surfaceBehindAlpha == 0f) { Log.d(TAG, "surfaceBehindAlphaAnimator#onAnimationEnd") keyguardViewMediator.get().finishSurfaceBehindRemoteAnimation( false /* cancelled */) } else { Log.d(TAG, "skip finishSurfaceBehindRemoteAnimation" + " surfaceBehindAlpha=$surfaceBehindAlpha") } } }) Loading @@ -325,6 +330,7 @@ class KeyguardUnlockAnimationController @Inject constructor( } addListener(object : AnimatorListenerAdapter() { override fun onAnimationEnd(animation: Animator) { Log.d(TAG, "surfaceBehindEntryAnimator#onAnimationEnd") playingCannedUnlockAnimation = false keyguardViewMediator.get().onKeyguardExitRemoteAnimationFinished( false /* cancelled */ Loading Loading @@ -372,8 +378,8 @@ class KeyguardUnlockAnimationController @Inject constructor( * changed. */ override fun onKeyguardGoingAwayChanged() { if (keyguardStateController.isKeyguardGoingAway && !statusBarStateController.leaveOpenOnKeyguardHide()) { if (keyguardStateController.isKeyguardGoingAway && !statusBarStateController.leaveOpenOnKeyguardHide()) { prepareForInWindowLauncherAnimations() } } Loading Loading @@ -427,7 +433,7 @@ class KeyguardUnlockAnimationController @Inject constructor( launcherUnlockController?.prepareForUnlock( willUnlockWithSmartspaceTransition, /* willAnimateSmartspace */ lockscreenSmartspaceBounds, /* lockscreenSmartspaceBounds */ selectedPage, /* selectedPage */ selectedPage /* selectedPage */ ) } catch (e: RemoteException) { Log.e(TAG, "Remote exception in prepareForInWindowUnlockAnimations.", e) Loading Loading @@ -502,19 +508,23 @@ class KeyguardUnlockAnimationController @Inject constructor( * by the dismiss amount via [onKeyguardDismissAmountChanged]. */ private fun playCannedUnlockAnimation() { Log.d(TAG, "playCannedUnlockAnimation") playingCannedUnlockAnimation = true when { // If we're set up for in-window launcher animations, ask Launcher to play its in-window // canned animation. willUnlockWithInWindowLauncherAnimations -> unlockToLauncherWithInWindowAnimations() willUnlockWithInWindowLauncherAnimations -> { Log.d(TAG, "playCannedUnlockAnimation, unlockToLauncherWithInWindowAnimations") unlockToLauncherWithInWindowAnimations() } // If we're waking and unlocking to a non-Launcher app surface (or Launcher in-window // animations are not available), show it immediately and end the remote animation. The // circular light reveal will show the app surface, and it looks weird if it's moving // around behind that. biometricUnlockControllerLazy.get().isWakeAndUnlock -> { Log.d(TAG, "playCannedUnlockAnimation, isWakeAndUnlock") setSurfaceBehindAppearAmount(1f) keyguardViewMediator.get().onKeyguardExitRemoteAnimationFinished( false /* cancelled */) Loading @@ -522,7 +532,10 @@ class KeyguardUnlockAnimationController @Inject constructor( // Otherwise, we're doing a normal full-window unlock. Start this animator, which will // scale/translate the window underneath the lockscreen. else -> surfaceBehindEntryAnimator.start() else -> { Log.d(TAG, "playCannedUnlockAnimation, surfaceBehindEntryAnimator#start") surfaceBehindEntryAnimator.start() } } } Loading Loading @@ -774,16 +787,17 @@ class KeyguardUnlockAnimationController @Inject constructor( } private fun fadeInSurfaceBehind() { Log.d(TAG, "fadeInSurfaceBehind") surfaceBehindAlphaAnimator.cancel() surfaceBehindAlphaAnimator.start() } private fun fadeOutSurfaceBehind() { Log.d(TAG, "fadeOutSurfaceBehind") surfaceBehindAlphaAnimator.cancel() surfaceBehindAlphaAnimator.reverse() } private fun shouldPerformSmartspaceTransition(): Boolean { // Feature is disabled, so we don't want to. if (!featureFlags.isEnabled(Flags.SMARTSPACE_SHARED_ELEMENT_TRANSITION_ENABLED)) { Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +11 −1 Original line number Diff line number Diff line Loading @@ -2423,7 +2423,7 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, RemoteAnimationTarget[] apps, RemoteAnimationTarget[] wallpapers, RemoteAnimationTarget[] nonApps, IRemoteAnimationFinishedCallback finishedCallback) { Trace.beginSection("KeyguardViewMediator#handleStartKeyguardExitAnimation"); if (DEBUG) Log.d(TAG, "handleStartKeyguardExitAnimation startTime=" + startTime Log.d(TAG, "handleStartKeyguardExitAnimation startTime=" + startTime + " fadeoutDuration=" + fadeoutDuration); synchronized (KeyguardViewMediator.this) { Loading Loading @@ -2619,7 +2619,11 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, * @param cancelled {@code true} if the animation was cancelled before it finishes. */ public void onKeyguardExitRemoteAnimationFinished(boolean cancelled) { Log.d(TAG, "onKeyguardExitRemoteAnimationFinished"); if (!mSurfaceBehindRemoteAnimationRunning && !mSurfaceBehindRemoteAnimationRequested) { Log.d(TAG, "skip onKeyguardExitRemoteAnimationFinished cancelled=" + cancelled + " surfaceAnimationRunning=" + mSurfaceBehindRemoteAnimationRunning + " surfaceAnimationRequested=" + mSurfaceBehindRemoteAnimationRequested); return; } Loading @@ -2633,7 +2637,13 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, onKeyguardExitFinished(); if (mKeyguardStateController.isDismissingFromSwipe() || wasShowing) { Log.d(TAG, "onKeyguardExitRemoteAnimationFinished" + "#hideKeyguardViewAfterRemoteAnimation"); mKeyguardUnlockAnimationControllerLazy.get().hideKeyguardViewAfterRemoteAnimation(); } else { Log.d(TAG, "skip hideKeyguardViewAfterRemoteAnimation" + " dismissFromSwipe=" + mKeyguardStateController.isDismissingFromSwipe() + " wasShowing=" + wasShowing); } finishSurfaceBehindRemoteAnimation(cancelled); Loading