Loading services/java/com/android/server/wm/AppWindowAnimator.java +13 −8 Original line number Diff line number Diff line Loading @@ -279,22 +279,22 @@ public class AppWindowAnimator { return isAnimating; } void dump(PrintWriter pw, String prefix) { if (freezingScreen) { pw.print(prefix); pw.print(" freezingScreen="); pw.println(freezingScreen); } void dump(PrintWriter pw, String prefix, boolean dumpAll) { pw.print(prefix); pw.print("mAppToken="); pw.println(mAppToken); pw.print(prefix); pw.print("mAnimator="); pw.println(mAnimator); pw.print(prefix); pw.print("freezingScreen="); pw.print(freezingScreen); pw.print(" allDrawn="); pw.print(allDrawn); pw.print(" animLayerAdjustment="); pw.println(animLayerAdjustment); if (animating || animation != null) { pw.print(prefix); pw.print("animating="); pw.print(animating); pw.print(" animation="); pw.println(animation); pw.print(" animInitialized="); pw.println(animInitialized); pw.print(prefix); pw.print("animation="); pw.println(animation); } if (hasTransformation) { pw.print(prefix); pw.print("XForm: "); transformation.printShortString(pw); pw.println(); } if (animLayerAdjustment != 0) { pw.print(prefix); pw.print("animLayerAdjustment="); pw.println(animLayerAdjustment); } if (thumbnail != null) { pw.print(prefix); pw.print("thumbnail="); pw.print(thumbnail); pw.print(" x="); pw.print(thumbnailX); Loading @@ -304,6 +304,11 @@ public class AppWindowAnimator { pw.print(prefix); pw.print("thumbnailTransformation="); pw.println(thumbnailTransformation.toShortString()); } for (int i=0; i<mAllAppWinAnimators.size(); i++) { WindowStateAnimator wanim = mAllAppWinAnimators.get(i); pw.print(prefix); pw.print("App Win Anim #"); pw.print(i); pw.print(": "); pw.println(wanim); } } // This is an animation that does nothing: it just immediately finishes Loading services/java/com/android/server/wm/WindowAnimator.java +141 −32 Original line number Diff line number Diff line Loading @@ -18,12 +18,14 @@ import android.util.Log; import android.util.Slog; import android.util.SparseArray; import android.util.SparseIntArray; import android.util.TimeUtils; import android.view.Display; import android.view.Surface; import android.view.WindowManagerPolicy; import android.view.animation.Animation; import com.android.server.wm.WindowManagerService.AppWindowAnimParams; import com.android.server.wm.WindowManagerService.LayoutFields; import com.android.server.wm.WindowManagerService.LayoutToAnimatorParams; import java.io.PrintWriter; Loading Loading @@ -197,6 +199,15 @@ public class WindowAnimator { mWallpaperTokens = new ArrayList<WindowToken>(layoutToAnim.mWallpaperTokens); } if (WindowManagerService.DEBUG_WALLPAPER_LIGHT) { if (mWallpaperTarget != layoutToAnim.mWallpaperTarget || mLowerWallpaperTarget != layoutToAnim.mLowerWallpaperTarget || mUpperWallpaperTarget != layoutToAnim.mUpperWallpaperTarget) { Slog.d(TAG, "Updating anim wallpaper: target=" + mWallpaperTarget + " lower=" + mLowerWallpaperTarget + " upper=" + mUpperWallpaperTarget); } } mWallpaperTarget = layoutToAnim.mWallpaperTarget; mWpAppAnimator = mWallpaperTarget == null ? null : mWallpaperTarget.mAppToken == null Loading Loading @@ -735,45 +746,143 @@ public class WindowAnimator { return dimParams != null && dimParams.mDimWinAnimator == winAnimator; } static String bulkUpdateParamsToString(int bulkUpdateParams) { StringBuilder builder = new StringBuilder(128); if ((bulkUpdateParams & LayoutFields.SET_UPDATE_ROTATION) != 0) { builder.append(" UPDATE_ROTATION"); } if ((bulkUpdateParams & LayoutFields.SET_WALLPAPER_MAY_CHANGE) != 0) { builder.append(" WALLPAPER_MAY_CHANGE"); } if ((bulkUpdateParams & LayoutFields.SET_FORCE_HIDING_CHANGED) != 0) { builder.append(" FORCE_HIDING_CHANGED"); } if ((bulkUpdateParams & LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE) != 0) { builder.append(" ORIENTATION_CHANGE_COMPLETE"); } if ((bulkUpdateParams & LayoutFields.SET_TURN_ON_SCREEN) != 0) { builder.append(" TURN_ON_SCREEN"); } return builder.toString(); } public void dumpLocked(PrintWriter pw, String prefix, boolean dumpAll) { final String subPrefix = " " + prefix; final String subSubPrefix = " " + subPrefix; boolean needSep = false; if (mAppAnimators.size() > 0) { needSep = true; pw.println(" App Animators:"); for (int i=mAppAnimators.size()-1; i>=0; i--) { AppWindowAnimator anim = mAppAnimators.get(i); pw.print(prefix); pw.print("App Animator #"); pw.print(i); pw.print(' '); pw.print(anim); if (dumpAll) { if (mWindowDetachedWallpaper != null) { pw.print(prefix); pw.print("mWindowDetachedWallpaper="); pw.println(mWindowDetachedWallpaper); pw.println(':'); anim.dump(pw, subPrefix, dumpAll); } else { pw.println(); } } } if (mWallpaperTokens.size() > 0) { if (needSep) { pw.println(); } needSep = true; pw.print(prefix); pw.println("Wallpaper tokens:"); for (int i=mWallpaperTokens.size()-1; i>=0; i--) { WindowToken token = mWallpaperTokens.get(i); pw.print(prefix); pw.print("Wallpaper #"); pw.print(i); pw.print(' '); pw.print(token); if (dumpAll) { pw.println(':'); token.dump(pw, subPrefix); } else { pw.println(); } } } if (needSep) { pw.println(); } pw.print(prefix); pw.print("mAnimTransactionSequence="); pw.print(mAnimTransactionSequence); pw.println(" mForceHiding=" + forceHidingToString()); for (int i = 0; i < mDisplayContentsAnimators.size(); i++) { pw.print(prefix); pw.print("DisplayContentsAnimator #"); pw.println(mDisplayContentsAnimators.keyAt(i)); pw.print(mDisplayContentsAnimators.keyAt(i)); pw.println(":"); DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.valueAt(i); final String subPrefix = " " + prefix; final String subSubPrefix = " " + subPrefix; for (int j=0; j<displayAnimator.mWinAnimators.size(); j++) { WindowStateAnimator wanim = displayAnimator.mWinAnimators.get(j); pw.print(subPrefix); pw.print("Window #"); pw.print(j); pw.print(": "); pw.println(wanim); } if (displayAnimator.mWindowAnimationBackgroundSurface != null) { pw.println(subPrefix + "mWindowAnimationBackgroundSurface:"); if (dumpAll || displayAnimator.mWindowAnimationBackgroundSurface.mDimShown) { pw.print(subPrefix); pw.println("mWindowAnimationBackgroundSurface:"); displayAnimator.mWindowAnimationBackgroundSurface.printTo(subSubPrefix, pw); } } if (displayAnimator.mDimAnimator != null) { pw.println(subPrefix + "mDimAnimator:"); if (dumpAll || displayAnimator.mDimAnimator.mDimShown) { pw.print(subPrefix); pw.println("mDimAnimator:"); displayAnimator.mDimAnimator.printTo(subSubPrefix, pw); } else { pw.println(subPrefix + "no DimAnimator "); } } else if (dumpAll) { pw.print(subPrefix); pw.println("no DimAnimator "); } if (displayAnimator.mDimParams != null) { pw.println(subPrefix + "mDimParams:"); pw.print(subPrefix); pw.println("mDimParams:"); displayAnimator.mDimParams.printTo(subSubPrefix, pw); } else { pw.println(subPrefix + "no DimParams "); } else if (dumpAll) { pw.print(subPrefix); pw.println("no DimParams "); } if (displayAnimator.mScreenRotationAnimation != null) { pw.println(subPrefix + "mScreenRotationAnimation:"); pw.print(subPrefix); pw.println("mScreenRotationAnimation:"); displayAnimator.mScreenRotationAnimation.printTo(subSubPrefix, pw); } else { pw.print(subPrefix + "no ScreenRotationAnimation "); } else if (dumpAll) { pw.print(subPrefix); pw.println("no ScreenRotationAnimation "); } } pw.println(); if (dumpAll) { pw.print(prefix); pw.print("mAnimTransactionSequence="); pw.print(mAnimTransactionSequence); pw.print(" mForceHiding="); pw.println(forceHidingToString()); pw.print(prefix); pw.print("mCurrentTime="); pw.println(TimeUtils.formatUptime(mCurrentTime)); pw.print(prefix); pw.print("mDw="); pw.print(mDw); pw.print(" mDh="); pw.print(mDh); pw.print(" mInnerDw="); pw.print(mInnerDw); pw.print(" mInnerDh="); pw.println(mInnerDh); } if (mBulkUpdateParams != 0) { pw.print(prefix); pw.print("mBulkUpdateParams=0x"); pw.print(Integer.toHexString(mBulkUpdateParams)); pw.println(bulkUpdateParamsToString(mBulkUpdateParams)); } if (mPendingActions != 0) { pw.print(prefix); pw.print("mPendingActions=0x"); pw.println(Integer.toHexString(mPendingActions)); } if (mWindowDetachedWallpaper != null) { pw.print(prefix); pw.print("mWindowDetachedWallpaper="); pw.println(mWindowDetachedWallpaper); } pw.print(prefix); pw.print("mWallpaperTarget="); pw.println(mWallpaperTarget); pw.print(prefix); pw.print("mWpAppAnimator="); pw.println(mWpAppAnimator); if (mLowerWallpaperTarget != null || mUpperWallpaperTarget != null) { pw.print(prefix); pw.print("mLowerWallpaperTarget="); pw.println(mLowerWallpaperTarget); pw.print(prefix); pw.print("mUpperWallpaperTarget="); pw.println(mUpperWallpaperTarget); } if (mUniverseBackground != null) { pw.print(prefix); pw.print("mUniverseBackground="); pw.print(mUniverseBackground); pw.print(" mAboveUniverseLayer="); pw.println(mAboveUniverseLayer); } } Loading services/java/com/android/server/wm/WindowManagerService.java +43 −3 Original line number Diff line number Diff line Loading @@ -10329,6 +10329,11 @@ public class WindowManagerService extends IWindowManager.Stub mPolicy.dump(" ", pw, args); } void dumpAnimatorLocked(PrintWriter pw, String[] args, boolean dumpAll) { pw.println("WINDOW MANAGER ANIMATOR STATE (dumpsys window animator)"); mAnimator.dumpLocked(pw, " ", dumpAll); } void dumpTokensLocked(PrintWriter pw, boolean dumpAll) { pw.println("WINDOW MANAGER TOKENS (dumpsys window tokens)"); if (mTokenMap.size() > 0) { Loading Loading @@ -10605,7 +10610,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" mInputMethodWindow="); pw.println(mInputMethodWindow); } pw.print(" mWallpaperTarget="); pw.println(mWallpaperTarget); if (mLowerWallpaperTarget != null && mUpperWallpaperTarget != null) { if (mLowerWallpaperTarget != null || mUpperWallpaperTarget != null) { pw.print(" mLowerWallpaperTarget="); pw.println(mLowerWallpaperTarget); pw.print(" mUpperWallpaperTarget="); pw.println(mUpperWallpaperTarget); } Loading Loading @@ -10689,8 +10694,32 @@ public class WindowManagerService extends IWindowManager.Stub } pw.print(" mStartingIconInTransition="); pw.print(mStartingIconInTransition); pw.print(" mSkipAppTransitionAnimation="); pw.println(mSkipAppTransitionAnimation); pw.println(" Window Animator:"); mAnimator.dumpLocked(pw, " ", dumpAll); pw.println(" mLayoutToAnim:"); pw.print(" mParamsModified="); pw.print(mLayoutToAnim.mParamsModified); pw.print(" mAnimationScheduled="); pw.print(mLayoutToAnim.mAnimationScheduled); pw.print(" mChanges=0x"); pw.println(Long.toHexString(mLayoutToAnim.mChanges)); pw.print(" mWallpaperTarget="); pw.println(mLayoutToAnim.mWallpaperTarget); if (mLayoutToAnim.mLowerWallpaperTarget != null || mLayoutToAnim.mUpperWallpaperTarget != null) { pw.print(" mLowerWallpaperTarget="); pw.println(mLayoutToAnim.mLowerWallpaperTarget); pw.print(" mUpperWallpaperTarget="); pw.println(mLayoutToAnim.mUpperWallpaperTarget); } for (int i=0; i<mLayoutToAnim.mWinAnimatorLists.size(); i++) { pw.print(" Win Animator List #"); pw.print(mLayoutToAnim.mWinAnimatorLists.keyAt(i)); pw.println(":"); WinAnimatorList wanim = mLayoutToAnim.mWinAnimatorLists.valueAt(i); for (int wi=0; wi<wanim.size(); wi++) { pw.print(" "); pw.println(wanim.get(wi)); } } for (int i=0; i<mLayoutToAnim.mWallpaperTokens.size(); i++) { pw.print(" Wallpaper Token #"); pw.print(i); pw.print(": "); pw.println(mLayoutToAnim.mWallpaperTokens.get(i)); } // XXX also need to print mDimParams and mAppWindowAnimParams. I am lazy. } } Loading Loading @@ -10800,6 +10829,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.println(" cmd may be one of:"); pw.println(" l[astanr]: last ANR information"); pw.println(" p[policy]: policy state"); pw.println(" a[animator]: animator state"); pw.println(" s[essions]: active sessions"); pw.println(" t[okens]: token list"); pw.println(" w[indows]: window list"); Loading Loading @@ -10829,6 +10859,11 @@ public class WindowManagerService extends IWindowManager.Stub dumpPolicyLocked(pw, args, true); } return; } else if ("animator".equals(cmd) || "a".equals(cmd)) { synchronized(mWindowMap) { dumpAnimatorLocked(pw, args, true); } return; } else if ("sessions".equals(cmd) || "s".equals(cmd)) { synchronized(mWindowMap) { dumpSessionsLocked(pw, true); Loading Loading @@ -10874,6 +10909,11 @@ public class WindowManagerService extends IWindowManager.Stub if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } dumpAnimatorLocked(pw, args, dumpAll); pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } dumpSessionsLocked(pw, dumpAll); pw.println(); if (dumpAll) { Loading services/java/com/android/server/wm/WindowState.java +5 −4 Original line number Diff line number Diff line Loading @@ -250,7 +250,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { // Used to improve performance of toString() String mStringNameCache; CharSequence mLastTitle; boolean mWasPaused; boolean mWasExiting; final WindowStateAnimator mWinAnimator; Loading Loading @@ -1206,7 +1206,8 @@ final class WindowState implements WindowManagerPolicy.WindowState { pw.print(" visible="); mLastVisibleInsets.printShortString(pw); pw.println(); } mWinAnimator.dump(pw, prefix, dumpAll); pw.print(prefix); pw.print(mWinAnimator); pw.println(":"); mWinAnimator.dump(pw, prefix + " ", dumpAll); if (mExiting || mRemoveOnExit || mDestroying || mRemoved) { pw.print(prefix); pw.print("mExiting="); pw.print(mExiting); pw.print(" mRemoveOnExit="); pw.print(mRemoveOnExit); Loading Loading @@ -1241,9 +1242,9 @@ final class WindowState implements WindowManagerPolicy.WindowState { @Override public String toString() { if (mStringNameCache == null || mLastTitle != mAttrs.getTitle() || mWasPaused != mToken.paused) { || mWasExiting != mExiting) { mLastTitle = mAttrs.getTitle(); mWasPaused = mToken.paused; mWasExiting = mExiting; mStringNameCache = "Window{" + Integer.toHexString(System.identityHashCode(this)) + " u" + UserHandle.getUserId(mSession.mUid) + " " + mLastTitle + (mExiting ? " EXITING}" : "}"); Loading services/java/com/android/server/wm/WindowStateAnimator.java +5 −4 Original line number Diff line number Diff line Loading @@ -1604,10 +1604,11 @@ class WindowStateAnimator { @Override public String toString() { StringBuffer sb = new StringBuffer("WindowStateAnimator ("); sb.append(mWin.mLastTitle + "): "); sb.append("mSurface " + mSurface); sb.append(", mAnimation " + mAnimation); StringBuffer sb = new StringBuffer("WindowStateAnimator{"); sb.append(Integer.toHexString(System.identityHashCode(this))); sb.append(' '); sb.append(mWin.mAttrs.getTitle()); sb.append('}'); return sb.toString(); } } Loading
services/java/com/android/server/wm/AppWindowAnimator.java +13 −8 Original line number Diff line number Diff line Loading @@ -279,22 +279,22 @@ public class AppWindowAnimator { return isAnimating; } void dump(PrintWriter pw, String prefix) { if (freezingScreen) { pw.print(prefix); pw.print(" freezingScreen="); pw.println(freezingScreen); } void dump(PrintWriter pw, String prefix, boolean dumpAll) { pw.print(prefix); pw.print("mAppToken="); pw.println(mAppToken); pw.print(prefix); pw.print("mAnimator="); pw.println(mAnimator); pw.print(prefix); pw.print("freezingScreen="); pw.print(freezingScreen); pw.print(" allDrawn="); pw.print(allDrawn); pw.print(" animLayerAdjustment="); pw.println(animLayerAdjustment); if (animating || animation != null) { pw.print(prefix); pw.print("animating="); pw.print(animating); pw.print(" animation="); pw.println(animation); pw.print(" animInitialized="); pw.println(animInitialized); pw.print(prefix); pw.print("animation="); pw.println(animation); } if (hasTransformation) { pw.print(prefix); pw.print("XForm: "); transformation.printShortString(pw); pw.println(); } if (animLayerAdjustment != 0) { pw.print(prefix); pw.print("animLayerAdjustment="); pw.println(animLayerAdjustment); } if (thumbnail != null) { pw.print(prefix); pw.print("thumbnail="); pw.print(thumbnail); pw.print(" x="); pw.print(thumbnailX); Loading @@ -304,6 +304,11 @@ public class AppWindowAnimator { pw.print(prefix); pw.print("thumbnailTransformation="); pw.println(thumbnailTransformation.toShortString()); } for (int i=0; i<mAllAppWinAnimators.size(); i++) { WindowStateAnimator wanim = mAllAppWinAnimators.get(i); pw.print(prefix); pw.print("App Win Anim #"); pw.print(i); pw.print(": "); pw.println(wanim); } } // This is an animation that does nothing: it just immediately finishes Loading
services/java/com/android/server/wm/WindowAnimator.java +141 −32 Original line number Diff line number Diff line Loading @@ -18,12 +18,14 @@ import android.util.Log; import android.util.Slog; import android.util.SparseArray; import android.util.SparseIntArray; import android.util.TimeUtils; import android.view.Display; import android.view.Surface; import android.view.WindowManagerPolicy; import android.view.animation.Animation; import com.android.server.wm.WindowManagerService.AppWindowAnimParams; import com.android.server.wm.WindowManagerService.LayoutFields; import com.android.server.wm.WindowManagerService.LayoutToAnimatorParams; import java.io.PrintWriter; Loading Loading @@ -197,6 +199,15 @@ public class WindowAnimator { mWallpaperTokens = new ArrayList<WindowToken>(layoutToAnim.mWallpaperTokens); } if (WindowManagerService.DEBUG_WALLPAPER_LIGHT) { if (mWallpaperTarget != layoutToAnim.mWallpaperTarget || mLowerWallpaperTarget != layoutToAnim.mLowerWallpaperTarget || mUpperWallpaperTarget != layoutToAnim.mUpperWallpaperTarget) { Slog.d(TAG, "Updating anim wallpaper: target=" + mWallpaperTarget + " lower=" + mLowerWallpaperTarget + " upper=" + mUpperWallpaperTarget); } } mWallpaperTarget = layoutToAnim.mWallpaperTarget; mWpAppAnimator = mWallpaperTarget == null ? null : mWallpaperTarget.mAppToken == null Loading Loading @@ -735,45 +746,143 @@ public class WindowAnimator { return dimParams != null && dimParams.mDimWinAnimator == winAnimator; } static String bulkUpdateParamsToString(int bulkUpdateParams) { StringBuilder builder = new StringBuilder(128); if ((bulkUpdateParams & LayoutFields.SET_UPDATE_ROTATION) != 0) { builder.append(" UPDATE_ROTATION"); } if ((bulkUpdateParams & LayoutFields.SET_WALLPAPER_MAY_CHANGE) != 0) { builder.append(" WALLPAPER_MAY_CHANGE"); } if ((bulkUpdateParams & LayoutFields.SET_FORCE_HIDING_CHANGED) != 0) { builder.append(" FORCE_HIDING_CHANGED"); } if ((bulkUpdateParams & LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE) != 0) { builder.append(" ORIENTATION_CHANGE_COMPLETE"); } if ((bulkUpdateParams & LayoutFields.SET_TURN_ON_SCREEN) != 0) { builder.append(" TURN_ON_SCREEN"); } return builder.toString(); } public void dumpLocked(PrintWriter pw, String prefix, boolean dumpAll) { final String subPrefix = " " + prefix; final String subSubPrefix = " " + subPrefix; boolean needSep = false; if (mAppAnimators.size() > 0) { needSep = true; pw.println(" App Animators:"); for (int i=mAppAnimators.size()-1; i>=0; i--) { AppWindowAnimator anim = mAppAnimators.get(i); pw.print(prefix); pw.print("App Animator #"); pw.print(i); pw.print(' '); pw.print(anim); if (dumpAll) { if (mWindowDetachedWallpaper != null) { pw.print(prefix); pw.print("mWindowDetachedWallpaper="); pw.println(mWindowDetachedWallpaper); pw.println(':'); anim.dump(pw, subPrefix, dumpAll); } else { pw.println(); } } } if (mWallpaperTokens.size() > 0) { if (needSep) { pw.println(); } needSep = true; pw.print(prefix); pw.println("Wallpaper tokens:"); for (int i=mWallpaperTokens.size()-1; i>=0; i--) { WindowToken token = mWallpaperTokens.get(i); pw.print(prefix); pw.print("Wallpaper #"); pw.print(i); pw.print(' '); pw.print(token); if (dumpAll) { pw.println(':'); token.dump(pw, subPrefix); } else { pw.println(); } } } if (needSep) { pw.println(); } pw.print(prefix); pw.print("mAnimTransactionSequence="); pw.print(mAnimTransactionSequence); pw.println(" mForceHiding=" + forceHidingToString()); for (int i = 0; i < mDisplayContentsAnimators.size(); i++) { pw.print(prefix); pw.print("DisplayContentsAnimator #"); pw.println(mDisplayContentsAnimators.keyAt(i)); pw.print(mDisplayContentsAnimators.keyAt(i)); pw.println(":"); DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.valueAt(i); final String subPrefix = " " + prefix; final String subSubPrefix = " " + subPrefix; for (int j=0; j<displayAnimator.mWinAnimators.size(); j++) { WindowStateAnimator wanim = displayAnimator.mWinAnimators.get(j); pw.print(subPrefix); pw.print("Window #"); pw.print(j); pw.print(": "); pw.println(wanim); } if (displayAnimator.mWindowAnimationBackgroundSurface != null) { pw.println(subPrefix + "mWindowAnimationBackgroundSurface:"); if (dumpAll || displayAnimator.mWindowAnimationBackgroundSurface.mDimShown) { pw.print(subPrefix); pw.println("mWindowAnimationBackgroundSurface:"); displayAnimator.mWindowAnimationBackgroundSurface.printTo(subSubPrefix, pw); } } if (displayAnimator.mDimAnimator != null) { pw.println(subPrefix + "mDimAnimator:"); if (dumpAll || displayAnimator.mDimAnimator.mDimShown) { pw.print(subPrefix); pw.println("mDimAnimator:"); displayAnimator.mDimAnimator.printTo(subSubPrefix, pw); } else { pw.println(subPrefix + "no DimAnimator "); } } else if (dumpAll) { pw.print(subPrefix); pw.println("no DimAnimator "); } if (displayAnimator.mDimParams != null) { pw.println(subPrefix + "mDimParams:"); pw.print(subPrefix); pw.println("mDimParams:"); displayAnimator.mDimParams.printTo(subSubPrefix, pw); } else { pw.println(subPrefix + "no DimParams "); } else if (dumpAll) { pw.print(subPrefix); pw.println("no DimParams "); } if (displayAnimator.mScreenRotationAnimation != null) { pw.println(subPrefix + "mScreenRotationAnimation:"); pw.print(subPrefix); pw.println("mScreenRotationAnimation:"); displayAnimator.mScreenRotationAnimation.printTo(subSubPrefix, pw); } else { pw.print(subPrefix + "no ScreenRotationAnimation "); } else if (dumpAll) { pw.print(subPrefix); pw.println("no ScreenRotationAnimation "); } } pw.println(); if (dumpAll) { pw.print(prefix); pw.print("mAnimTransactionSequence="); pw.print(mAnimTransactionSequence); pw.print(" mForceHiding="); pw.println(forceHidingToString()); pw.print(prefix); pw.print("mCurrentTime="); pw.println(TimeUtils.formatUptime(mCurrentTime)); pw.print(prefix); pw.print("mDw="); pw.print(mDw); pw.print(" mDh="); pw.print(mDh); pw.print(" mInnerDw="); pw.print(mInnerDw); pw.print(" mInnerDh="); pw.println(mInnerDh); } if (mBulkUpdateParams != 0) { pw.print(prefix); pw.print("mBulkUpdateParams=0x"); pw.print(Integer.toHexString(mBulkUpdateParams)); pw.println(bulkUpdateParamsToString(mBulkUpdateParams)); } if (mPendingActions != 0) { pw.print(prefix); pw.print("mPendingActions=0x"); pw.println(Integer.toHexString(mPendingActions)); } if (mWindowDetachedWallpaper != null) { pw.print(prefix); pw.print("mWindowDetachedWallpaper="); pw.println(mWindowDetachedWallpaper); } pw.print(prefix); pw.print("mWallpaperTarget="); pw.println(mWallpaperTarget); pw.print(prefix); pw.print("mWpAppAnimator="); pw.println(mWpAppAnimator); if (mLowerWallpaperTarget != null || mUpperWallpaperTarget != null) { pw.print(prefix); pw.print("mLowerWallpaperTarget="); pw.println(mLowerWallpaperTarget); pw.print(prefix); pw.print("mUpperWallpaperTarget="); pw.println(mUpperWallpaperTarget); } if (mUniverseBackground != null) { pw.print(prefix); pw.print("mUniverseBackground="); pw.print(mUniverseBackground); pw.print(" mAboveUniverseLayer="); pw.println(mAboveUniverseLayer); } } Loading
services/java/com/android/server/wm/WindowManagerService.java +43 −3 Original line number Diff line number Diff line Loading @@ -10329,6 +10329,11 @@ public class WindowManagerService extends IWindowManager.Stub mPolicy.dump(" ", pw, args); } void dumpAnimatorLocked(PrintWriter pw, String[] args, boolean dumpAll) { pw.println("WINDOW MANAGER ANIMATOR STATE (dumpsys window animator)"); mAnimator.dumpLocked(pw, " ", dumpAll); } void dumpTokensLocked(PrintWriter pw, boolean dumpAll) { pw.println("WINDOW MANAGER TOKENS (dumpsys window tokens)"); if (mTokenMap.size() > 0) { Loading Loading @@ -10605,7 +10610,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" mInputMethodWindow="); pw.println(mInputMethodWindow); } pw.print(" mWallpaperTarget="); pw.println(mWallpaperTarget); if (mLowerWallpaperTarget != null && mUpperWallpaperTarget != null) { if (mLowerWallpaperTarget != null || mUpperWallpaperTarget != null) { pw.print(" mLowerWallpaperTarget="); pw.println(mLowerWallpaperTarget); pw.print(" mUpperWallpaperTarget="); pw.println(mUpperWallpaperTarget); } Loading Loading @@ -10689,8 +10694,32 @@ public class WindowManagerService extends IWindowManager.Stub } pw.print(" mStartingIconInTransition="); pw.print(mStartingIconInTransition); pw.print(" mSkipAppTransitionAnimation="); pw.println(mSkipAppTransitionAnimation); pw.println(" Window Animator:"); mAnimator.dumpLocked(pw, " ", dumpAll); pw.println(" mLayoutToAnim:"); pw.print(" mParamsModified="); pw.print(mLayoutToAnim.mParamsModified); pw.print(" mAnimationScheduled="); pw.print(mLayoutToAnim.mAnimationScheduled); pw.print(" mChanges=0x"); pw.println(Long.toHexString(mLayoutToAnim.mChanges)); pw.print(" mWallpaperTarget="); pw.println(mLayoutToAnim.mWallpaperTarget); if (mLayoutToAnim.mLowerWallpaperTarget != null || mLayoutToAnim.mUpperWallpaperTarget != null) { pw.print(" mLowerWallpaperTarget="); pw.println(mLayoutToAnim.mLowerWallpaperTarget); pw.print(" mUpperWallpaperTarget="); pw.println(mLayoutToAnim.mUpperWallpaperTarget); } for (int i=0; i<mLayoutToAnim.mWinAnimatorLists.size(); i++) { pw.print(" Win Animator List #"); pw.print(mLayoutToAnim.mWinAnimatorLists.keyAt(i)); pw.println(":"); WinAnimatorList wanim = mLayoutToAnim.mWinAnimatorLists.valueAt(i); for (int wi=0; wi<wanim.size(); wi++) { pw.print(" "); pw.println(wanim.get(wi)); } } for (int i=0; i<mLayoutToAnim.mWallpaperTokens.size(); i++) { pw.print(" Wallpaper Token #"); pw.print(i); pw.print(": "); pw.println(mLayoutToAnim.mWallpaperTokens.get(i)); } // XXX also need to print mDimParams and mAppWindowAnimParams. I am lazy. } } Loading Loading @@ -10800,6 +10829,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.println(" cmd may be one of:"); pw.println(" l[astanr]: last ANR information"); pw.println(" p[policy]: policy state"); pw.println(" a[animator]: animator state"); pw.println(" s[essions]: active sessions"); pw.println(" t[okens]: token list"); pw.println(" w[indows]: window list"); Loading Loading @@ -10829,6 +10859,11 @@ public class WindowManagerService extends IWindowManager.Stub dumpPolicyLocked(pw, args, true); } return; } else if ("animator".equals(cmd) || "a".equals(cmd)) { synchronized(mWindowMap) { dumpAnimatorLocked(pw, args, true); } return; } else if ("sessions".equals(cmd) || "s".equals(cmd)) { synchronized(mWindowMap) { dumpSessionsLocked(pw, true); Loading Loading @@ -10874,6 +10909,11 @@ public class WindowManagerService extends IWindowManager.Stub if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } dumpAnimatorLocked(pw, args, dumpAll); pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } dumpSessionsLocked(pw, dumpAll); pw.println(); if (dumpAll) { Loading
services/java/com/android/server/wm/WindowState.java +5 −4 Original line number Diff line number Diff line Loading @@ -250,7 +250,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { // Used to improve performance of toString() String mStringNameCache; CharSequence mLastTitle; boolean mWasPaused; boolean mWasExiting; final WindowStateAnimator mWinAnimator; Loading Loading @@ -1206,7 +1206,8 @@ final class WindowState implements WindowManagerPolicy.WindowState { pw.print(" visible="); mLastVisibleInsets.printShortString(pw); pw.println(); } mWinAnimator.dump(pw, prefix, dumpAll); pw.print(prefix); pw.print(mWinAnimator); pw.println(":"); mWinAnimator.dump(pw, prefix + " ", dumpAll); if (mExiting || mRemoveOnExit || mDestroying || mRemoved) { pw.print(prefix); pw.print("mExiting="); pw.print(mExiting); pw.print(" mRemoveOnExit="); pw.print(mRemoveOnExit); Loading Loading @@ -1241,9 +1242,9 @@ final class WindowState implements WindowManagerPolicy.WindowState { @Override public String toString() { if (mStringNameCache == null || mLastTitle != mAttrs.getTitle() || mWasPaused != mToken.paused) { || mWasExiting != mExiting) { mLastTitle = mAttrs.getTitle(); mWasPaused = mToken.paused; mWasExiting = mExiting; mStringNameCache = "Window{" + Integer.toHexString(System.identityHashCode(this)) + " u" + UserHandle.getUserId(mSession.mUid) + " " + mLastTitle + (mExiting ? " EXITING}" : "}"); Loading
services/java/com/android/server/wm/WindowStateAnimator.java +5 −4 Original line number Diff line number Diff line Loading @@ -1604,10 +1604,11 @@ class WindowStateAnimator { @Override public String toString() { StringBuffer sb = new StringBuffer("WindowStateAnimator ("); sb.append(mWin.mLastTitle + "): "); sb.append("mSurface " + mSurface); sb.append(", mAnimation " + mAnimation); StringBuffer sb = new StringBuffer("WindowStateAnimator{"); sb.append(Integer.toHexString(System.identityHashCode(this))); sb.append(' '); sb.append(mWin.mAttrs.getTitle()); sb.append('}'); return sb.toString(); } }