Do not gate updating allDrawn on all child WindowStates.

A recent change prevents allDrawn in AppWindowToken from being
updated until all child WindowStates have been considered. However,
children that are not visible do not affect allDrawn and therefore
need to be excluded.

This changelist adds an additional check to make sure the child can
affect the allDrawn state before considering blocking on it. It also
adds additional logs to the WindowState dump to better understand
this scenario.

Change-Id: I76d0f75496ed3da6a16c4a1d7bf2e7dc5b8bbe1e
Bug: 63380251
Test: go/wm-smoke
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index 839ee0e..b9d02a9 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 @@
      * @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;
             }
         }