Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 872e3d36 authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android Git Automerger
Browse files

am b9372de0: Merge "More debugging for issue #7343200 Fails to show wallpaper...

am b9372de0: Merge "More debugging for issue #7343200 Fails to show wallpaper in the..." into jb-mr1-dev

* commit 'b9372de0':
  More debugging for issue #7343200 Fails to show wallpaper in the...
parents f19cce18 b9372de0
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -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);
@@ -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
+141 −32
Original line number Diff line number Diff line
@@ -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;
@@ -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
@@ -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);
        }
    }

+43 −3
Original line number Diff line number Diff line
@@ -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) {
@@ -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);
            }
@@ -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.
        }
    }

@@ -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");
@@ -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);
@@ -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) {
+5 −4
Original line number Diff line number Diff line
@@ -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;

@@ -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);
@@ -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}" : "}");
+5 −4
Original line number Diff line number Diff line
@@ -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();
    }
}