OSDN Git Service

Dump out last real used app transit type
authorChong Zhang <chz@google.com>
Thu, 28 Jul 2016 00:52:45 +0000 (17:52 -0700)
committerWale Ogunwale <ogunwale@google.com>
Thu, 11 Aug 2016 15:00:28 +0000 (08:00 -0700)
Easier for debugging or testing bad exit animations.

Bug: 30790402
Bug: 30255354
Change-Id: I8097195bfc918baf66ecc99b55f4845aba2eaff4
(cherry picked from commit 1c93f6de2dd74dfc7ee0f52aca6e8b491ace02f9)

services/core/java/com/android/server/wm/AppTransition.java
services/core/java/com/android/server/wm/WindowSurfacePlacer.java

index 3aefc08..d4d6f32 100644 (file)
@@ -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) {
index ee4a9a4..db345f7 100644 (file)
@@ -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 :