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

Commit e4a196cc authored by Chris Li's avatar Chris Li
Browse files

Ignore transition if not collecting

Bug: 346196958
Test: manual
Flag: com.android.window.flags.always_defer_transition_when_apply_wct
Change-Id: I78bcb83fdb13d8f3804837d52d5072c813ff74fb
parent c894f791
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -612,10 +612,16 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
        mService.mTaskSupervisor.beginDeferResume();
        boolean deferResume = true;
        mService.mTaskSupervisor.setDeferRootVisibilityUpdate(true /* deferUpdate */);
        final boolean shouldDeferTransitionReady = transition != null && !t.isEmpty()
                && (transition.isCollecting() || Flags.alwaysDeferTransitionWhenApplyWct());
        if (shouldDeferTransitionReady) {
        boolean deferTransitionReady = false;
        if (transition != null && !t.isEmpty()) {
            if (transition.isCollecting()) {
                deferTransitionReady = true;
                transition.deferTransitionReady();
            } else if (Flags.alwaysDeferTransitionWhenApplyWct()) {
                Slog.w(TAG, "Transition is not collecting when applyTransaction."
                        + " transition=" + transition + " state=" + transition.getState());
                transition = null;
            }
        }
        try {
            final ArraySet<WindowContainer<?>> haveConfigChanges = new ArraySet<>();
@@ -771,7 +777,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                mService.mWindowManager.mWindowPlacerLocked.requestTraversal();
            }
        } finally {
            if (shouldDeferTransitionReady) {
            if (deferTransitionReady) {
                transition.continueTransitionReady();
            }
            mService.mTaskSupervisor.setDeferRootVisibilityUpdate(false /* deferUpdate */);