summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jorim Jaggi <jjaggi@google.com> 2018-03-28 18:01:22 +0200
committer Jorim Jaggi <jjaggi@google.com> 2018-03-29 16:27:53 +0200
commita32da3853c220e84a3ac31e795a3a91a0da27f17 (patch)
tree912027d6033f69c4240a68fe1379785215aacd40
parentd8d05ecc648fa4c41f6f9a1cccb41ea0d85d9d07 (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.java3
-rw-r--r--services/core/java/com/android/server/wm/AppWindowToken.java2
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;