diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index b0945ee342432..608f056dc13c0 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -3715,6 +3715,12 @@ class WindowState extends WindowContainer implements WindowManagerP logPerformShow("performShow on "); + final int drawState = mWinAnimator.mDrawState; + if ((drawState == HAS_DRAWN || drawState == READY_TO_SHOW) + && mAttrs.type != TYPE_APPLICATION_STARTING && mAppToken != null) { + mAppToken.onFirstWindowDrawn(this, mWinAnimator); + } + if (mWinAnimator.mDrawState != READY_TO_SHOW || !isReadyForDisplay()) { return false; } @@ -3749,10 +3755,6 @@ class WindowState extends WindowContainer implements WindowManagerP } } - if (mAttrs.type != TYPE_APPLICATION_STARTING && mAppToken != null) { - mAppToken.onFirstWindowDrawn(this, mWinAnimator); - } - if (mAttrs.type == TYPE_INPUT_METHOD) { getDisplayContent().mDividerControllerLocked.resetImeHideRequested(); }