Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 922ddf82 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Wait starting window finished in syncInputTransactions" into sc-v2-dev am: 477b8b4e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15683888

Change-Id: I12cd91212bc2a1c6c20b6fdf69a483015cd1d901
parents ba769234 477b8b4e
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -8117,9 +8117,15 @@ public class WindowManagerService extends IWindowManager.Stub
            // This could prevent if there is no container animation, we still have to apply the
            // pending transaction and exit waiting.
            mAnimator.mNotifyWhenNoAnimation = true;
            boolean animateStarting = false;
            while (timeoutRemaining > 0) {
                // Waiting until all starting windows has finished animating.
                animateStarting = mRoot.forAllActivities(a -> {
                    return a.hasStartingWindow();
                });
                boolean isAnimating = mAnimator.isAnimationScheduled()
                        || mRoot.isAnimating(TRANSITION | CHILDREN, ANIMATION_TYPE_ALL);
                        || mRoot.isAnimating(TRANSITION | CHILDREN, ANIMATION_TYPE_ALL)
                        || animateStarting;
                if (!isAnimating) {
                    // isAnimating is a legacy transition query and will be removed, so also add
                    // a check for whether this is in a shell-transition when not using legacy.
@@ -8139,13 +8145,14 @@ public class WindowManagerService extends IWindowManager.Stub
            WindowContainer animatingContainer;
            animatingContainer = mRoot.getAnimatingContainer(TRANSITION | CHILDREN,
                    ANIMATION_TYPE_ALL);
            if (mAnimator.isAnimationScheduled() || animatingContainer != null) {
            if (mAnimator.isAnimationScheduled() || animatingContainer != null || animateStarting) {
                Slog.w(TAG, "Timed out waiting for animations to complete,"
                        + " animatingContainer=" + animatingContainer
                        + " animationType=" + SurfaceAnimator.animationTypeToString(
                        animatingContainer != null
                                ? animatingContainer.mSurfaceAnimator.getAnimationType()
                                : SurfaceAnimator.ANIMATION_TYPE_NONE));
                                : SurfaceAnimator.ANIMATION_TYPE_NONE)
                        + " animateStarting=" + animateStarting);
            }
        }
    }