Loading services/core/java/com/android/server/wm/ActivityRecord.java +0 −2 Original line number Diff line number Diff line Loading @@ -1929,7 +1929,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mStartingData = null; startingSurface = null; startingWindow = null; startingDisplayed = false; if (surface == null) { ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "startingWindow was set but startingSurface==null, couldn't " Loading Loading @@ -5444,7 +5443,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A if (mLastTransactionSequence != mWmService.mTransactionSequence) { mLastTransactionSequence = mWmService.mTransactionSequence; mNumDrawnWindows = 0; startingDisplayed = false; // There is the main base application window, even if it is exiting, wait for it mNumInterestingWindows = findMainWindow(false /* includeStartingApp */) != null ? 1 : 0; Loading services/core/java/com/android/server/wm/WindowState.java +8 −3 Original line number Diff line number Diff line Loading @@ -2191,9 +2191,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (wasVisible) { final int transit = (!startingWindow) ? TRANSIT_EXIT : TRANSIT_PREVIEW_DONE; final int flags = startingWindow ? 0 /* self */ : PARENTS; // Try starting an animation. if (mWinAnimator.applyAnimationLocked(transit, false)) { if (mWinAnimator.applyAnimationLocked(transit, false, flags)) { mAnimatingExit = true; // mAnimatingExit affects canAffectSystemUiFlags(). Run layout such that Loading @@ -2205,7 +2205,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP mWmService.mAccessibilityController.onWindowTransitionLocked(this, transit); } } final boolean isAnimating = isAnimating(TRANSITION | PARENTS) final boolean isAnimating = startingWindow ? isAnimating(0) : isAnimating(TRANSITION | PARENTS) && (mActivityRecord == null || !mActivityRecord.isWaitingForTransitionStart()); final boolean lastWindowIsStartingWindow = startingWindow && mActivityRecord != null && mActivityRecord.isLastWindow(this); Loading @@ -2227,6 +2229,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } } if (startingWindow && mActivityRecord != null) { mActivityRecord.startingDisplayed = false; } removeImmediately(); // Removing a visible window will effect the computed orientation // So just update orientation if needed. Loading services/core/java/com/android/server/wm/WindowStateAnimator.java +18 −2 Original line number Diff line number Diff line Loading @@ -1400,9 +1400,25 @@ class WindowStateAnimator { * the switch statement below. * @param isEntrance The animation type the last time this was called. Used to keep from * loading the same animation twice. * @return true if an animation has been loaded. * @return {@code true} if an animation has been loaded, includes the parents. * */ boolean applyAnimationLocked(int transit, boolean isEntrance) { return applyAnimationLocked(transit, isEntrance, PARENTS); } /** * Choose the correct animation and set it to the passed WindowState. * @param transit If AppTransition.TRANSIT_PREVIEW_DONE and the app window has been drawn * then the animation will be app_starting_exit. Any other value loads the animation from * the switch statement below. * @param isEntrance The animation type the last time this was called. Used to keep from * loading the same animation twice. * @param flags The combination of bitmask flags to specify targets and condition for * checking animating status. See {@link WindowContainer.AnimationFlags}. * @return {@code true} if an animation has been loaded. */ boolean applyAnimationLocked(int transit, boolean isEntrance, int flags) { if (mWin.isAnimating() && mAnimationIsEntrance == isEntrance) { // If we are trying to apply an animation, but already running // an animation of the same type, then just leave that one alone. Loading Loading @@ -1472,7 +1488,7 @@ class WindowStateAnimator { mWin.getDisplayContent().adjustForImeIfNeeded(); } return mWin.isAnimating(PARENTS); return mWin.isAnimating(flags); } void dumpDebug(ProtoOutputStream proto, long fieldId) { Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +0 −2 Original line number Diff line number Diff line Loading @@ -1929,7 +1929,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mStartingData = null; startingSurface = null; startingWindow = null; startingDisplayed = false; if (surface == null) { ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "startingWindow was set but startingSurface==null, couldn't " Loading Loading @@ -5444,7 +5443,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A if (mLastTransactionSequence != mWmService.mTransactionSequence) { mLastTransactionSequence = mWmService.mTransactionSequence; mNumDrawnWindows = 0; startingDisplayed = false; // There is the main base application window, even if it is exiting, wait for it mNumInterestingWindows = findMainWindow(false /* includeStartingApp */) != null ? 1 : 0; Loading
services/core/java/com/android/server/wm/WindowState.java +8 −3 Original line number Diff line number Diff line Loading @@ -2191,9 +2191,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (wasVisible) { final int transit = (!startingWindow) ? TRANSIT_EXIT : TRANSIT_PREVIEW_DONE; final int flags = startingWindow ? 0 /* self */ : PARENTS; // Try starting an animation. if (mWinAnimator.applyAnimationLocked(transit, false)) { if (mWinAnimator.applyAnimationLocked(transit, false, flags)) { mAnimatingExit = true; // mAnimatingExit affects canAffectSystemUiFlags(). Run layout such that Loading @@ -2205,7 +2205,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP mWmService.mAccessibilityController.onWindowTransitionLocked(this, transit); } } final boolean isAnimating = isAnimating(TRANSITION | PARENTS) final boolean isAnimating = startingWindow ? isAnimating(0) : isAnimating(TRANSITION | PARENTS) && (mActivityRecord == null || !mActivityRecord.isWaitingForTransitionStart()); final boolean lastWindowIsStartingWindow = startingWindow && mActivityRecord != null && mActivityRecord.isLastWindow(this); Loading @@ -2227,6 +2229,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } } if (startingWindow && mActivityRecord != null) { mActivityRecord.startingDisplayed = false; } removeImmediately(); // Removing a visible window will effect the computed orientation // So just update orientation if needed. Loading
services/core/java/com/android/server/wm/WindowStateAnimator.java +18 −2 Original line number Diff line number Diff line Loading @@ -1400,9 +1400,25 @@ class WindowStateAnimator { * the switch statement below. * @param isEntrance The animation type the last time this was called. Used to keep from * loading the same animation twice. * @return true if an animation has been loaded. * @return {@code true} if an animation has been loaded, includes the parents. * */ boolean applyAnimationLocked(int transit, boolean isEntrance) { return applyAnimationLocked(transit, isEntrance, PARENTS); } /** * Choose the correct animation and set it to the passed WindowState. * @param transit If AppTransition.TRANSIT_PREVIEW_DONE and the app window has been drawn * then the animation will be app_starting_exit. Any other value loads the animation from * the switch statement below. * @param isEntrance The animation type the last time this was called. Used to keep from * loading the same animation twice. * @param flags The combination of bitmask flags to specify targets and condition for * checking animating status. See {@link WindowContainer.AnimationFlags}. * @return {@code true} if an animation has been loaded. */ boolean applyAnimationLocked(int transit, boolean isEntrance, int flags) { if (mWin.isAnimating() && mAnimationIsEntrance == isEntrance) { // If we are trying to apply an animation, but already running // an animation of the same type, then just leave that one alone. Loading Loading @@ -1472,7 +1488,7 @@ class WindowStateAnimator { mWin.getDisplayContent().adjustForImeIfNeeded(); } return mWin.isAnimating(PARENTS); return mWin.isAnimating(flags); } void dumpDebug(ProtoOutputStream proto, long fieldId) { Loading