Loading services/core/java/com/android/server/wm/ActivityRecord.java +7 −5 Original line number Diff line number Diff line Loading @@ -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.mWaitForSyncTransactionCommit) { if (mStartingData != null && mStartingData.mWaitForSyncTransactionCommitCount > 0) { mStartingData.mRemoveAfterTransaction = AFTER_TRANSACTION_COPY_TO_CLIENT; return true; } Loading Loading @@ -2804,9 +2804,11 @@ 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 (mStartingData != null) { mStartingData.mWaitForSyncTransactionCommit = true; if (!added && mStartingData != null) { mStartingData.mWaitForSyncTransactionCommitCount++; } } Loading @@ -2817,7 +2819,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return; } final StartingData lastData = mStartingData; lastData.mWaitForSyncTransactionCommit = false; lastData.mWaitForSyncTransactionCommitCount--; if (lastData.mRemoveAfterTransaction == AFTER_TRANSACTION_REMOVE_DIRECTLY) { removeStartingWindowAnimation(lastData.mPrepareRemoveAnimation); } else if (lastData.mRemoveAfterTransaction == AFTER_TRANSACTION_COPY_TO_CLIENT) { Loading Loading @@ -2847,7 +2849,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A final boolean animate; final boolean hasImeSurface; if (mStartingData != null) { if (mStartingData.mWaitForSyncTransactionCommit if (mStartingData.mWaitForSyncTransactionCommitCount > 0 || mSyncState != SYNC_STATE_NONE) { mStartingData.mRemoveAfterTransaction = AFTER_TRANSACTION_REMOVE_DIRECTLY; mStartingData.mPrepareRemoveAnimation = prepareAnimation; Loading services/core/java/com/android/server/wm/StartingData.java +2 −2 Original line number Diff line number Diff line Loading @@ -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. */ boolean mWaitForSyncTransactionCommit; int mWaitForSyncTransactionCommitCount; /** * For Shell transition. Loading Loading @@ -112,7 +112,7 @@ public abstract class StartingData { public String toString() { return getClass().getSimpleName() + "{" + Integer.toHexString(System.identityHashCode(this)) + " waitForSyncTransactionCommit=" + mWaitForSyncTransactionCommit + " mWaitForSyncTransactionCommitCount=" + mWaitForSyncTransactionCommitCount + " removeAfterTransaction= " + mRemoveAfterTransaction + "}"; } Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +7 −5 Original line number Diff line number Diff line Loading @@ -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.mWaitForSyncTransactionCommit) { if (mStartingData != null && mStartingData.mWaitForSyncTransactionCommitCount > 0) { mStartingData.mRemoveAfterTransaction = AFTER_TRANSACTION_COPY_TO_CLIENT; return true; } Loading Loading @@ -2804,9 +2804,11 @@ 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 (mStartingData != null) { mStartingData.mWaitForSyncTransactionCommit = true; if (!added && mStartingData != null) { mStartingData.mWaitForSyncTransactionCommitCount++; } } Loading @@ -2817,7 +2819,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return; } final StartingData lastData = mStartingData; lastData.mWaitForSyncTransactionCommit = false; lastData.mWaitForSyncTransactionCommitCount--; if (lastData.mRemoveAfterTransaction == AFTER_TRANSACTION_REMOVE_DIRECTLY) { removeStartingWindowAnimation(lastData.mPrepareRemoveAnimation); } else if (lastData.mRemoveAfterTransaction == AFTER_TRANSACTION_COPY_TO_CLIENT) { Loading Loading @@ -2847,7 +2849,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A final boolean animate; final boolean hasImeSurface; if (mStartingData != null) { if (mStartingData.mWaitForSyncTransactionCommit if (mStartingData.mWaitForSyncTransactionCommitCount > 0 || mSyncState != SYNC_STATE_NONE) { mStartingData.mRemoveAfterTransaction = AFTER_TRANSACTION_REMOVE_DIRECTLY; mStartingData.mPrepareRemoveAnimation = prepareAnimation; Loading
services/core/java/com/android/server/wm/StartingData.java +2 −2 Original line number Diff line number Diff line Loading @@ -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. */ boolean mWaitForSyncTransactionCommit; int mWaitForSyncTransactionCommitCount; /** * For Shell transition. Loading Loading @@ -112,7 +112,7 @@ public abstract class StartingData { public String toString() { return getClass().getSimpleName() + "{" + Integer.toHexString(System.identityHashCode(this)) + " waitForSyncTransactionCommit=" + mWaitForSyncTransactionCommit + " mWaitForSyncTransactionCommitCount=" + mWaitForSyncTransactionCommitCount + " removeAfterTransaction= " + mRemoveAfterTransaction + "}"; } Loading