summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Bryce Lee <brycelee@google.com> 2017-07-13 02:24:53 +0000
committer android-build-merger <android-build-merger@google.com> 2017-07-13 02:24:53 +0000
commitf0d0b22316d06b3fb9f954fefd3a70fefd1ef03c (patch)
treed777ea554084c3a52689c8c819ae7a1ccf1ed7dd
parent69ab8acd3e95cba438839135334919667bbff9ae (diff)
parent56234469266098353c57dc768dda0f2dcb179027 (diff)
Merge "Do not gate updating allDrawn on all child WindowStates." into oc-dr1-dev am: 7968af4873
am: 5623446926 Change-Id: I011d8e543245d11d530b61746513bc2bb812e6ea
-rw-r--r--services/core/java/com/android/server/wm/AppWindowToken.java6
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java10
2 files changed, 12 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index 839ee0ec7efd..b9d02a900d1c 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -1357,8 +1357,10 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
* @return {@code true} If all children have been considered, {@code false}.
*/
private boolean allDrawnStatesConsidered() {
- for (WindowState child : mChildren) {
- if (!child.getDrawnStatedEvaluated()) {
+ for (int i = mChildren.size() - 1; i >= 0; --i) {
+ final WindowState child = mChildren.get(i);
+ if (child.mightAffectAllDrawn(false /*visibleOnly*/ )
+ && !child.getDrawnStateEvaluated()) {
return false;
}
}
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 371753ffc86b..7decb11d777b 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -690,7 +690,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
/**
* Returns whether this {@link WindowState} has been considered for drawing by its parent.
*/
- boolean getDrawnStatedEvaluated() {
+ boolean getDrawnStateEvaluated() {
return mDrawnStateEvaluated;
}
@@ -3392,7 +3392,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
pw.print(prefix); pw.print("mAppToken="); pw.println(mAppToken);
pw.print(prefix); pw.print(" isAnimatingWithSavedSurface()=");
pw.print(isAnimatingWithSavedSurface());
- pw.print(" mAppDied=");pw.println(mAppDied);
+ pw.print(" mAppDied=");pw.print(mAppDied);
+ pw.print(prefix); pw.print("drawnStateEvaluated=");
+ pw.print(getDrawnStateEvaluated());
+ pw.print(prefix); pw.print("mightAffectAllDrawn=");
+ pw.println(mightAffectAllDrawn(false /*visibleOnly*/));
}
pw.print(prefix); pw.print("mViewVisibility=0x");
pw.print(Integer.toHexString(mViewVisibility));
@@ -3537,6 +3541,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
if (computeDragResizing()) {
pw.print(prefix); pw.println("computeDragResizing=" + computeDragResizing());
}
+ pw.print(prefix); pw.println("isOnScreen=" + isOnScreen());
+ pw.print(prefix); pw.println("isVisible=" + isVisible());
}
@Override