diff options
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java | 9 | ||||
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java | 3 |
2 files changed, 7 insertions, 5 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java index cef7e1666331..56bd188a0d7d 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java @@ -156,6 +156,8 @@ public class KeyguardTransitionHandler implements Transitions.TransitionHandler "start keyguard %s transition, info = %s", description, info); try { + mStartedTransitions.put(transition, + new StartedTransition(info, finishTransaction, remoteHandler)); remoteHandler.startAnimation(transition, info, startTransaction, new IRemoteTransitionFinishedCallback.Stub() { @Override @@ -164,14 +166,13 @@ public class KeyguardTransitionHandler implements Transitions.TransitionHandler if (sct != null) { finishTransaction.merge(sct); } - mMainExecutor.execute(() -> { + // Post our finish callback to let startAnimation finish first. + mMainExecutor.executeDelayed(() -> { mStartedTransitions.remove(transition); finishCallback.onTransitionFinished(wct, null); - }); + }, 0); } }); - mStartedTransitions.put(transition, - new StartedTransition(info, finishTransaction, remoteHandler)); } catch (RemoteException e) { Log.wtf(TAG, "RemoteException thrown from local IRemoteTransition", e); return false; diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java index cfb87905966e..18c5a2a0bda8 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java @@ -589,11 +589,12 @@ public class DefaultMixedHandler implements Transitions.TransitionHandler, finishCallback.onTransitionFinished(wct, wctCB); } }; + mixed.mInFlightSubAnimations++; if (!mKeyguardHandler.startAnimation( mixed.mTransition, info, startTransaction, finishTransaction, finishCB)) { + mixed.mInFlightSubAnimations--; return false; } - mixed.mInFlightSubAnimations++; // Sync pip state. if (mPipHandler != null) { // We don't know when to apply `startTransaction` so use a separate transaction here. |