diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java index 3aefc08746bc4..d4d6f3225edd3 100644 --- a/services/core/java/com/android/server/wm/AppTransition.java +++ b/services/core/java/com/android/server/wm/AppTransition.java @@ -162,6 +162,9 @@ public class AppTransition implements Dump { private final WindowManagerService mService; private int mNextAppTransition = TRANSIT_UNSET; + private int mLastUsedAppTransition = TRANSIT_UNSET; + private String mLastOpeningApp; + private String mLastClosingApp; private static final int NEXT_TRANSIT_TYPE_NONE = 0; private static final int NEXT_TRANSIT_TYPE_CUSTOM = 1; @@ -285,6 +288,13 @@ public class AppTransition implements Dump { private void setAppTransition(int transit) { mNextAppTransition = transit; + setLastAppTransition(TRANSIT_UNSET, null, null); + } + + void setLastAppTransition(int transit, AppWindowToken openingApp, AppWindowToken closingApp) { + mLastUsedAppTransition = transit; + mLastOpeningApp = "" + openingApp; + mLastClosingApp = "" + closingApp; } boolean isReady() { @@ -1904,6 +1914,14 @@ public class AppTransition implements Dump { pw.print(prefix); pw.print("mNextAppTransitionCallback="); pw.println(mNextAppTransitionCallback); } + if (mLastUsedAppTransition != TRANSIT_NONE) { + pw.print(prefix); pw.print("mLastUsedAppTransition="); + pw.println(appTransitionToString(mLastUsedAppTransition)); + pw.print(prefix); pw.print("mLastOpeningApp="); + pw.println(mLastOpeningApp); + pw.print(prefix); pw.print("mLastClosingApp="); + pw.println(mLastClosingApp); + } } public void setCurrentUser(int newUserId) { diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java index ee4a9a4173796..db345f7cf21aa 100644 --- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java +++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java @@ -1189,6 +1189,8 @@ class WindowSurfacePlacer { final AppWindowToken topOpeningApp = handleOpeningApps(transit, animLp, voiceInteraction, topClosingLayer); + mService.mAppTransition.setLastAppTransition(transit, topOpeningApp, topClosingApp); + final AppWindowAnimator openingAppAnimator = (topOpeningApp == null) ? null : topOpeningApp.mAppAnimator; final AppWindowAnimator closingAppAnimator = (topClosingApp == null) ? null :