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

Commit b0488e29 authored by Daniel Chapin's avatar Daniel Chapin Committed by Android (Google) Code Review
Browse files

Merge "Revert "Avoid remove starting window too early when playing multiple transitions"" into main

parents 43db9d0d 41fb8c46
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -2641,7 +2641,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            return true;
        }
        // Only do transfer after transaction has done when starting window exist.
        if (mStartingData != null && mStartingData.mWaitForSyncTransactionCommitCount > 0) {
        if (mStartingData != null && mStartingData.mWaitForSyncTransactionCommit) {
            mStartingData.mRemoveAfterTransaction = AFTER_TRANSACTION_COPY_TO_CLIENT;
            return true;
        }
@@ -2804,11 +2804,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A

    @Override
    void waitForSyncTransactionCommit(ArraySet<WindowContainer> wcAwaitingCommit) {
        // Only add once per transition.
        final boolean added = wcAwaitingCommit.contains(this);
        super.waitForSyncTransactionCommit(wcAwaitingCommit);
        if (!added && mStartingData != null) {
            mStartingData.mWaitForSyncTransactionCommitCount++;
        if (mStartingData != null) {
            mStartingData.mWaitForSyncTransactionCommit = true;
        }
    }

@@ -2819,7 +2817,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            return;
        }
        final StartingData lastData = mStartingData;
        lastData.mWaitForSyncTransactionCommitCount--;
        lastData.mWaitForSyncTransactionCommit = false;
        if (lastData.mRemoveAfterTransaction == AFTER_TRANSACTION_REMOVE_DIRECTLY) {
            removeStartingWindowAnimation(lastData.mPrepareRemoveAnimation);
        } else if (lastData.mRemoveAfterTransaction == AFTER_TRANSACTION_COPY_TO_CLIENT) {
@@ -2849,7 +2847,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        final boolean animate;
        final boolean hasImeSurface;
        if (mStartingData != null) {
            if (mStartingData.mWaitForSyncTransactionCommitCount > 0
            if (mStartingData.mWaitForSyncTransactionCommit
                    || mSyncState != SYNC_STATE_NONE) {
                mStartingData.mRemoveAfterTransaction = AFTER_TRANSACTION_REMOVE_DIRECTLY;
                mStartingData.mPrepareRemoveAnimation = prepareAnimation;
+2 −2
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ public abstract class StartingData {
     * Note this isn't equal to transition playing, the period should be
     * Sync finishNow -> Start transaction apply.
     */
    int mWaitForSyncTransactionCommitCount;
    boolean mWaitForSyncTransactionCommit;

    /**
     * For Shell transition.
@@ -112,7 +112,7 @@ public abstract class StartingData {
    public String toString() {
        return getClass().getSimpleName() + "{"
                + Integer.toHexString(System.identityHashCode(this))
                + " mWaitForSyncTransactionCommitCount=" + mWaitForSyncTransactionCommitCount
                + " waitForSyncTransactionCommit=" + mWaitForSyncTransactionCommit
                + " removeAfterTransaction= " + mRemoveAfterTransaction
                + "}";
    }