diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStack.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 49a8fe617ce1..009c9a8caa55 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -2339,8 +2339,20 @@ final class ActivityStack { if (DEBUG_SWITCH) Slog.v(TAG_SWITCH, "Resume running: " + next + " stopped=" + next.stopped + " visible=" + next.visible); + // If the previous activity is translucent, force a visibility update of + // the next activity, so that it's added to WM's opening app list, and + // transition animation can be set up properly. + // For example, pressing Home button with a translucent activity in focus. + // Launcher is already visible in this case. If we don't add it to opening + // apps, maybeUpdateTransitToWallpaper() will fail to identify this as a + // TRANSIT_WALLPAPER_OPEN animation, and run some funny animation. + final boolean lastActivityTranslucent = lastStack != null + && (!lastStack.mFullscreen + || (lastStack.mLastPausedActivity != null + && !lastStack.mLastPausedActivity.fullscreen)); + // This activity is now becoming visible. - if (!next.visible || next.stopped) { + if (!next.visible || next.stopped || lastActivityTranslucent) { mWindowManager.setAppVisibility(next.appToken, true); } |