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

Commit 2313e180 authored by Evan Rosky's avatar Evan Rosky
Browse files

Play no-op-during-display-change transition immediately

Instead of just setting ready, use playNow so that we also
immediately start and send the transition to shell. Otherwise
it's possible for the system to not check if it is finished
or for changes to end-up in the "no-op" transition.

Bug: 413001499
Test: Cts tests no-longer flaking
Flag: EXEMPT bugfix
Change-Id: I3e3aa997e7628ceac7e83ac6ab0f7d21c8d43851
parent 1f3c73b0
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3866,7 +3866,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
        if (!mController.useFullReadyTracking()) {
            Slog.e(TAG, "#" + mSyncId + " readiness timeout, used=" + mReadyTrackerOld.mUsed
                    + " deferReadyDepth=" + mReadyTrackerOld.mDeferReadyDepth
                    + " group=" + mReadyTrackerOld.mReadyGroups);
                    + " group=" + mReadyTrackerOld.mReadyGroups
                    + " state=" + mState);
        } else {
            Slog.e(TAG, "#" + mSyncId + " met conditions: " + mReadyTracker.mMet);
            Slog.e(TAG, "#" + mSyncId + " unmet conditions: " + mReadyTracker.mConditions);
+1 −1
Original line number Diff line number Diff line
@@ -1179,7 +1179,7 @@ class TransitionController {
            // to report it as a no-op.
            ProtoLog.w(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN,
                    "Formerly queued #%d force-reported as no-op", queued.mTransition.getSyncId());
            queued.mTransition.setAllReady();
            queued.mTransition.playNow();
        } else {
            // Post this so that the now-playing transition logic isn't interrupted.
            mAtm.mH.post(() -> {