diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java index 743caf8be861a..6326148d7d86c 100644 --- a/services/core/java/com/android/server/wm/DockedStackDividerController.java +++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java @@ -653,6 +653,14 @@ public class DockedStackDividerController implements DimLayerUser { mDelayedImeWin = imeWin; imeWin.mWinAnimator.startDelayingAnimationStart(); } + + // If we are already waiting for something to be drawn, clear out the old one so it + // still gets executed. + // TODO: Have a real system where we can wait on different windows to be drawn with + // different callbacks. + if (mService.mWaitingForDrawnCallback != null) { + mService.mWaitingForDrawnCallback.run(); + } mService.mWaitingForDrawnCallback = () -> { mAnimationStartDelayed = false; if (mDelayedImeWin != null) {