diff options
3 files changed, 5 insertions, 26 deletions
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index 2aa535064e86..7a19cc3c2c20 100644 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -2161,7 +2161,7 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo if (mStartingWindowState == STARTING_WINDOW_SHOWN && behindFullscreenActivity) { if (DEBUG_VISIBILITY) Slog.w(TAG_VISIBILITY, "Found orphaned starting window " + this); mStartingWindowState = STARTING_WINDOW_REMOVED; - mWindowContainerController.removeHiddenStartingWindow(); + mWindowContainerController.removeStartingWindow(); } } diff --git a/services/core/java/com/android/server/wm/AppWindowContainerController.java b/services/core/java/com/android/server/wm/AppWindowContainerController.java index 4a04af5f9188..e9696d2ab46f 100644 --- a/services/core/java/com/android/server/wm/AppWindowContainerController.java +++ b/services/core/java/com/android/server/wm/AppWindowContainerController.java @@ -611,23 +611,7 @@ public class AppWindowContainerController return mContainer.getTask().getConfiguration().orientation == snapshot.getOrientation(); } - /** - * Remove starting window if the app is currently hidden. It is possible the starting window is - * part of its app exit transition animation in which case we delay hiding the app token. The - * method allows for removal when window manager has set the app token to hidden. - */ - public void removeHiddenStartingWindow() { - synchronized (mWindowMap) { - if (!mContainer.hidden) { - if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Starting window app still visible." - + " Ignoring remove request."); - return; - } - removeStartingWindow(); - } - } - - void removeStartingWindow() { + public void removeStartingWindow() { synchronized (mWindowMap) { if (mContainer.startingWindow == null) { if (mContainer.startingData != null) { diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index c4ff455fa3d3..43ba0943cc98 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -448,7 +448,6 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree mChildren.get(i).mWinAnimator.hide("immediately hidden"); } SurfaceControl.closeTransaction(); - removeStartingWindow(); } if (!mService.mClosingApps.contains(this) && !mService.mOpeningApps.contains(this)) { @@ -526,12 +525,6 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree return super.checkCompleteDeferredRemoval(); } - private void removeStartingWindow() { - if (startingData != null && getController() != null) { - getController().removeStartingWindow(); - } - } - void onRemovedFromDisplay() { if (mRemovingFromDisplay) { return; @@ -559,7 +552,9 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree if (DEBUG_ADD_REMOVE || DEBUG_TOKEN_MOVEMENT) Slog.v(TAG_WM, "removeAppToken: " + this + " delayed=" + delayed + " Callers=" + Debug.getCallers(4)); - removeStartingWindow(); + if (startingData != null && getController() != null) { + getController().removeStartingWindow(); + } // If this window was animating, then we need to ensure that the app transition notifies // that animations have completed in WMS.handleAnimatingStoppedAndTransitionLocked(), so |