Loading services/core/java/com/android/server/wm/ActivityRecord.java +5 −7 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.mWaitForSyncTransactionCommitCount > 0) { if (mStartingData != null && mStartingData.mWaitForSyncTransactionCommit) { mStartingData.mRemoveAfterTransaction = AFTER_TRANSACTION_COPY_TO_CLIENT; return true; } Loading Loading @@ -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; } } Loading @@ -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) { Loading Loading @@ -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; 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. */ int mWaitForSyncTransactionCommitCount; boolean mWaitForSyncTransactionCommit; /** * For Shell transition. Loading Loading @@ -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 + "}"; } Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +5 −7 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.mWaitForSyncTransactionCommitCount > 0) { if (mStartingData != null && mStartingData.mWaitForSyncTransactionCommit) { mStartingData.mRemoveAfterTransaction = AFTER_TRANSACTION_COPY_TO_CLIENT; return true; } Loading Loading @@ -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; } } Loading @@ -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) { Loading Loading @@ -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; 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. */ int mWaitForSyncTransactionCommitCount; boolean mWaitForSyncTransactionCommit; /** * For Shell transition. Loading Loading @@ -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 + "}"; } Loading