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

Commit f1f0423e authored by Chris Li's avatar Chris Li Committed by Android (Google) Code Review
Browse files

Merge "Update APP_TRANSITION_STATE for Shell transition"

parents 41b6a8c8 7934a69c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1328,7 +1328,7 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
    }

    boolean getLegacyIsReady() {
        return mState == STATE_STARTED && mSyncId >= 0 && mSyncEngine.isReady(mSyncId);
        return (mState == STATE_STARTED || mState == STATE_COLLECTING) && mSyncId >= 0;
    }

    static Transition fromBinder(IBinder binder) {
+9 −1
Original line number Diff line number Diff line
@@ -94,6 +94,9 @@ class TransitionController {
    // TODO(b/188595497): remove when not needed.
    final StatusBarManagerInternal mStatusBar;

    /** Pending transitions from Shell that are waiting the SyncEngine to be free. */
    private final ArrayList<PendingStartTransition> mPendingTransitions = new ArrayList<>();

    TransitionController(ActivityTaskManagerService atm,
            TaskSnapshotController taskSnapshotController) {
        mAtm = atm;
@@ -160,9 +163,11 @@ class TransitionController {
        }
        final PendingStartTransition out = new PendingStartTransition(new Transition(type,
                0 /* flags */, this, mAtm.mWindowManager.mSyncEngine));
        mPendingTransitions.add(out);
        // We want to start collecting immediately when the engine is free, otherwise it may
        // be busy again.
        out.setStartSync(() -> {
            mPendingTransitions.remove(out);
            moveToCollecting(out.mTransition);
        });
        ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Creating PendingTransition: %s",
@@ -530,7 +535,10 @@ class TransitionController {
        int state = LEGACY_STATE_IDLE;
        if (!mPlayingTransitions.isEmpty()) {
            state = LEGACY_STATE_RUNNING;
        } else if (mCollectingTransition != null && mCollectingTransition.getLegacyIsReady()) {
        } else if ((mCollectingTransition != null && mCollectingTransition.getLegacyIsReady())
                || !mPendingTransitions.isEmpty()) {
            // The transition may not be "ready", but we have transition waiting to start, so it
            // can't be IDLE for test purpose. Ideally, we should have a STATE_COLLECTING.
            state = LEGACY_STATE_READY;
        }
        proto.write(AppTransitionProto.APP_TRANSITION_STATE, state);