diff options
-rw-r--r-- | services/core/java/com/android/server/wm/AppTransitionController.java | 6 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/RecentsAnimationController.java | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java index f72020ea8988..3f4e79162ed9 100644 --- a/services/core/java/com/android/server/wm/AppTransitionController.java +++ b/services/core/java/com/android/server/wm/AppTransitionController.java @@ -713,7 +713,11 @@ public class AppTransitionController { final WindowState wallpaperTarget = mWallpaperControllerLocked.getWallpaperTarget(); final boolean showWallpaper = wallpaperTarget != null - && (wallpaperTarget.mAttrs.flags & FLAG_SHOW_WALLPAPER) != 0; + && ((wallpaperTarget.mAttrs.flags & FLAG_SHOW_WALLPAPER) != 0 + // Update task open transition to wallpaper transition when wallpaper is visible. + // (i.e.launching app info activity from recent tasks) + || ((transit == TRANSIT_TASK_OPEN || transit == TRANSIT_TASK_TO_FRONT) + && mWallpaperControllerLocked.isWallpaperVisible())); // If wallpaper is animating or wallpaperTarget doesn't have SHOW_WALLPAPER flag set, // don't consider upgrading to wallpaper transition. final WindowState oldWallpaper = diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java index be68c5dc3796..634d7e996481 100644 --- a/services/core/java/com/android/server/wm/RecentsAnimationController.java +++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java @@ -742,8 +742,10 @@ public class RecentsAnimationController implements DeathRecipient { } boolean isWallpaperVisible(WindowState w) { - return w != null && w.mAttrs.type == TYPE_BASE_APPLICATION && w.mActivityRecord != null - && mTargetActivityRecord == w.mActivityRecord && isTargetOverWallpaper(); + return w != null && w.mAttrs.type == TYPE_BASE_APPLICATION && + ((w.mActivityRecord != null && mTargetActivityRecord == w.mActivityRecord) + || isAnimatingTask(w.getTask())) + && isTargetOverWallpaper(); } /** |