diff options
| author | 2018-03-28 18:01:22 +0200 | |
|---|---|---|
| committer | 2018-03-29 16:27:53 +0200 | |
| commit | a32da3853c220e84a3ac31e795a3a91a0da27f17 (patch) | |
| tree | 912027d6033f69c4240a68fe1379785215aacd40 | |
| parent | d8d05ecc648fa4c41f6f9a1cccb41ea0d85d9d07 (diff) | |
Fix letterbox insets when starting app
Showing the letterbox with checking on HAS_DRAWN is too late. We
also need to show it in READY_TO_SHOW such that we have it
available when starting the transition.
Test: Open letterboxed app. Observe no flicker
Test: Capture winscope trace and make sure content insets when
reopening app are correct.
Bug: 76220728
Change-Id: I20ed8b1b5a90cc0a878d3eb1512e1aa1e4cd37f3
| -rw-r--r-- | services/core/java/com/android/server/policy/WindowManagerPolicy.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/AppWindowToken.java | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/policy/WindowManagerPolicy.java b/services/core/java/com/android/server/policy/WindowManagerPolicy.java index ec0521dda40d..7a6b53e93917 100644 --- a/services/core/java/com/android/server/policy/WindowManagerPolicy.java +++ b/services/core/java/com/android/server/policy/WindowManagerPolicy.java @@ -407,7 +407,10 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { /** * Returns true if this window has been shown on screen at some time in * the past. Must be called with the window manager lock held. + * + * @deprecated Use {@link #isDrawnLw} or any of the other drawn/visibility methods. */ + @Deprecated public boolean hasDrawnLw(); /** diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index 56c9e51d5d3a..f19c554ace97 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -1485,7 +1485,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree if (w == null || winHint != null && w != winHint) { return; } - final boolean surfaceReady = w.hasDrawnLw() // Regular case + final boolean surfaceReady = w.isDrawnLw() // Regular case || w.mWinAnimator.mSurfaceDestroyDeferred // The preserved surface is still ready. || w.isDragResizeChanged(); // Waiting for relayoutWindow to call preserveSurface. final boolean needsLetterbox = w.isLetterboxedAppWindow() && fillsParent() && surfaceReady; |