summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/ActivityRecord.java2
-rw-r--r--services/core/java/com/android/server/wm/AppWindowContainerController.java18
-rw-r--r--services/core/java/com/android/server/wm/AppWindowToken.java11
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