diff --git a/core/java/com/android/internal/protolog/ProtoLogGroup.java b/core/java/com/android/internal/protolog/ProtoLogGroup.java index db019a67772ff..954204fe781ce 100644 --- a/core/java/com/android/internal/protolog/ProtoLogGroup.java +++ b/core/java/com/android/internal/protolog/ProtoLogGroup.java @@ -84,6 +84,7 @@ public enum ProtoLogGroup implements IProtoLogGroup { Consts.TAG_WM), WM_DEBUG_LAYER_MIRRORING(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, Consts.TAG_WM), + WM_DEBUG_WALLPAPER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, Consts.TAG_WM), TEST_GROUP(true, true, false, "WindowManagerProtoLogTest"); private final boolean mEnabled; diff --git a/data/etc/services.core.protolog.json b/data/etc/services.core.protolog.json index d9653512d7308..95736074a3ef4 100644 --- a/data/etc/services.core.protolog.json +++ b/data/etc/services.core.protolog.json @@ -595,6 +595,12 @@ "group": "WM_DEBUG_ORIENTATION", "at": "com\/android\/server\/wm\/DisplayContent.java" }, + "-1478175541": { + "message": "No longer animating wallpaper targets!", + "level": "VERBOSE", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/WallpaperController.java" + }, "-1474602871": { "message": "Launch on display check: disallow launch on virtual display for not-embedded activity.", "level": "DEBUG", @@ -1621,6 +1627,12 @@ "group": "WM_DEBUG_TASKS", "at": "com\/android\/server\/wm\/RootWindowContainer.java" }, + "-360208282": { + "message": "Animating wallpapers: old: %s hidden=%b new: %s hidden=%b", + "level": "VERBOSE", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/WallpaperController.java" + }, "-354571697": { "message": "Existence Changed in transition %d: %s", "level": "VERBOSE", @@ -1675,6 +1687,12 @@ "group": "WM_DEBUG_LAYER_MIRRORING", "at": "com\/android\/server\/wm\/DisplayContent.java" }, + "-304728471": { + "message": "New wallpaper: target=%s prev=%s", + "level": "DEBUG", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/WallpaperController.java" + }, "-302468788": { "message": "Expected target rootTask=%s to be top most but found rootTask=%s", "level": "WARN", @@ -1693,6 +1711,12 @@ "group": "WM_ERROR", "at": "com\/android\/server\/wm\/WindowManagerService.java" }, + "-275077723": { + "message": "New animation: %s old animation: %s", + "level": "VERBOSE", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/WallpaperController.java" + }, "-262984451": { "message": "Relaunch failed %s", "level": "INFO", @@ -1747,6 +1771,12 @@ "group": "WM_DEBUG_LAYER_MIRRORING", "at": "com\/android\/server\/wm\/DisplayContent.java" }, + "-182877285": { + "message": "Wallpaper layer changed: assigning layers + relayout", + "level": "VERBOSE", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/DisplayContent.java" + }, "-177040661": { "message": "Start rotation animation. customAnim=%s, mCurRotation=%s, mOriginalRotation=%s", "level": "DEBUG", @@ -2005,6 +2035,12 @@ "group": "WM_DEBUG_STARTING_WINDOW", "at": "com\/android\/server\/wm\/ActivityRecord.java" }, + "114070759": { + "message": "New wallpaper target: %s prevTarget: %s caller=%s", + "level": "VERBOSE", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/WallpaperController.java" + }, "115358443": { "message": "Focus changing: %s -> %s", "level": "INFO", @@ -2347,6 +2383,12 @@ "group": "WM_DEBUG_RESIZE", "at": "com\/android\/server\/wm\/WindowState.java" }, + "422634333": { + "message": "First draw done in potential wallpaper target %s", + "level": "VERBOSE", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/DisplayContent.java" + }, "424524729": { "message": "Attempted to add wallpaper window with unknown token %s. Aborting.", "level": "WARN", @@ -2419,6 +2461,12 @@ "group": "WM_SHOW_TRANSACTIONS", "at": "com\/android\/server\/wm\/WindowContainerThumbnail.java" }, + "535103992": { + "message": "Wallpaper may change! Adjusting", + "level": "VERBOSE", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/RootWindowContainer.java" + }, "539077569": { "message": "Clear freezing of %s force=%b", "level": "VERBOSE", @@ -2647,6 +2695,12 @@ "group": "WM_DEBUG_STATES", "at": "com\/android\/server\/wm\/ActivityRecord.java" }, + "733466617": { + "message": "Wallpaper token %s visible=%b", + "level": "DEBUG", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/WallpaperWindowToken.java" + }, "736692676": { "message": "Config is relaunching %s", "level": "VERBOSE", @@ -2983,6 +3037,12 @@ "group": "WM_DEBUG_APP_TRANSITIONS", "at": "com\/android\/server\/wm\/DisplayContent.java" }, + "1178653181": { + "message": "Old wallpaper still the target.", + "level": "VERBOSE", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/WallpaperController.java" + }, "1186730970": { "message": " no common mode yet, so set it", "level": "VERBOSE", @@ -3661,6 +3721,12 @@ "group": "WM_SHOW_TRANSACTIONS", "at": "com\/android\/server\/wm\/WindowAnimator.java" }, + "1984843251": { + "message": "Hiding wallpaper %s from %s target=%s prev=%s callers=%s", + "level": "DEBUG", + "group": "WM_DEBUG_WALLPAPER", + "at": "com\/android\/server\/wm\/WallpaperController.java" + }, "1995093920": { "message": "Checking to restart %s: changed=0x%s, handles=0x%s, mLastReportedConfiguration=%s", "level": "VERBOSE", @@ -3861,6 +3927,9 @@ "WM_DEBUG_TASKS": { "tag": "WindowManager" }, + "WM_DEBUG_WALLPAPER": { + "tag": "WindowManager" + }, "WM_DEBUG_WINDOW_INSETS": { "tag": "WindowManager" }, diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index ff4dd46b1f189..e14d30bf84477 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -91,6 +91,7 @@ import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_LAYER_MIRRORING; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SCREEN_ON; +import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER; import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG; @@ -127,7 +128,6 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT_METHOD; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT_REPEATS; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_SCREENSHOT; -import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER_LIGHT; import static com.android.server.wm.WindowManagerDebugConfig.SHOW_STACK_CRAWLS; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; @@ -1003,8 +1003,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp final boolean committed = winAnimator.commitFinishDrawingLocked(); if (isDefaultDisplay && committed) { if (w.hasWallpaper()) { - if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, - "First draw done in potential wallpaper target " + w); + ProtoLog.v(WM_DEBUG_WALLPAPER, + "First draw done in potential wallpaper target %s", w); mWallpaperMayChange = true; pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; if (DEBUG_LAYOUT_REPEATS) { @@ -5156,9 +5156,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp onAppTransitionDone(); changes |= FINISH_LAYOUT_REDO_LAYOUT; - if (DEBUG_WALLPAPER_LIGHT) { - Slog.v(TAG_WM, "Wallpaper layer changed: assigning layers + relayout"); - } + ProtoLog.v(WM_DEBUG_WALLPAPER, "Wallpaper layer changed: assigning layers + relayout"); computeImeTarget(true /* updateImeTarget */); mWallpaperMayChange = true; // Since the window list has been rebuilt, focus might have to be recomputed since the diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index d9f0091bfb761..0f7c6497ff725 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -48,6 +48,7 @@ import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_KEEP_SCREEN_O import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS; +import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER; import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC; import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; import static com.android.server.policy.PhoneWindowManager.SYSTEM_DIALOG_REASON_ASSIST; @@ -79,7 +80,6 @@ import static com.android.server.wm.Task.REPARENT_LEAVE_ROOT_TASK_IN_PLACE; import static com.android.server.wm.Task.REPARENT_MOVE_ROOT_TASK_TO_FRONT; import static com.android.server.wm.TaskFragment.TASK_FRAGMENT_VISIBILITY_INVISIBLE; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT_REPEATS; -import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER_LIGHT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WINDOW_TRACE; import static com.android.server.wm.WindowManagerDebugConfig.SHOW_LIGHT_TRANSACTIONS; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; @@ -894,7 +894,7 @@ class RootWindowContainer extends WindowContainer for (int displayNdx = 0; displayNdx < mChildren.size(); ++displayNdx) { final DisplayContent displayContent = mChildren.get(displayNdx); if (displayContent.mWallpaperMayChange) { - if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, "Wallpaper may change! Adjusting"); + ProtoLog.v(WM_DEBUG_WALLPAPER, "Wallpaper may change! Adjusting"); displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; if (DEBUG_LAYOUT_REPEATS) { surfacePlacer.debugLayoutRepeats("WallpaperMayChange", diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java index 0909462585afd..a92e0883db379 100644 --- a/services/core/java/com/android/server/wm/WallpaperController.java +++ b/services/core/java/com/android/server/wm/WallpaperController.java @@ -24,12 +24,12 @@ import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER; +import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_SCREENSHOT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER; -import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER_LIGHT; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import static com.android.server.wm.WindowManagerService.H.WALLPAPER_DRAW_PENDING_TIMEOUT; @@ -49,6 +49,8 @@ import android.view.WindowManager; import android.view.animation.Animation; import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.protolog.ProtoLogImpl; +import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.ToBooleanFunction; import java.io.PrintWriter; @@ -291,10 +293,11 @@ class WallpaperController { for (int i = mWallpaperTokens.size() - 1; i >= 0; i--) { final WallpaperWindowToken token = mWallpaperTokens.get(i); token.setVisibility(false); - if (DEBUG_WALLPAPER_LIGHT && token.isVisible()) { - Slog.d(TAG, "Hiding wallpaper " + token - + " from " + winGoingAway + " target=" + mWallpaperTarget + " prev=" - + mPrevWallpaperTarget + "\n" + Debug.getCallers(5, " ")); + if (ProtoLogImpl.isEnabled(WM_DEBUG_WALLPAPER) && token.isVisible()) { + ProtoLog.d(WM_DEBUG_WALLPAPER, + "Hiding wallpaper %s from %s target=%s prev=%s callers=%s", + token, winGoingAway, mWallpaperTarget, mPrevWallpaperTarget, + Debug.getCallers(5)); } } } @@ -544,15 +547,15 @@ class WallpaperController { // Is it time to stop animating? if (!mPrevWallpaperTarget.isAnimatingLw()) { - if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, "No longer animating wallpaper targets!"); + ProtoLog.v(WM_DEBUG_WALLPAPER, "No longer animating wallpaper targets!"); mPrevWallpaperTarget = null; mWallpaperTarget = wallpaperTarget; } return; } - if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, - "New wallpaper target: " + wallpaperTarget + " prevTarget: " + mWallpaperTarget); + ProtoLog.v(WM_DEBUG_WALLPAPER, "New wallpaper target: %s prevTarget: %s caller=%s", + wallpaperTarget, mWallpaperTarget, Debug.getCallers(5)); mPrevWallpaperTarget = null; @@ -570,8 +573,8 @@ class WallpaperController { // then we are in our super special mode! boolean oldAnim = prevWallpaperTarget.isAnimatingLw(); boolean foundAnim = wallpaperTarget.isAnimatingLw(); - if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, - "New animation: " + foundAnim + " old animation: " + oldAnim); + ProtoLog.v(WM_DEBUG_WALLPAPER, "New animation: %s old animation: %s", + foundAnim, oldAnim); if (!foundAnim || !oldAnim) { return; @@ -586,14 +589,14 @@ class WallpaperController { final boolean oldTargetHidden = prevWallpaperTarget.mActivityRecord != null && !prevWallpaperTarget.mActivityRecord.mVisibleRequested; - if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, "Animating wallpapers:" + " old: " - + prevWallpaperTarget + " hidden=" + oldTargetHidden + " new: " + wallpaperTarget - + " hidden=" + newTargetHidden); + ProtoLog.v(WM_DEBUG_WALLPAPER, "Animating wallpapers: " + + "old: %s hidden=%b new: %s hidden=%b", + prevWallpaperTarget, oldTargetHidden, wallpaperTarget, newTargetHidden); mPrevWallpaperTarget = prevWallpaperTarget; if (newTargetHidden && !oldTargetHidden) { - if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, "Old wallpaper still the target."); + ProtoLog.v(WM_DEBUG_WALLPAPER, "Old wallpaper still the target."); // Use the old target if new target is hidden but old target // is not. If they're both hidden, still use the new target. mWallpaperTarget = prevWallpaperTarget; @@ -661,8 +664,8 @@ class WallpaperController { /* x= */ 0, /* y= */ 0, /* z= */ 0, /* extras= */ null, /* sync= */ false); } - if (DEBUG_WALLPAPER_LIGHT) Slog.d(TAG, "New wallpaper: target=" + mWallpaperTarget - + " prev=" + mPrevWallpaperTarget); + ProtoLog.d(WM_DEBUG_WALLPAPER, "New wallpaper: target=%s prev=%s", + mWallpaperTarget, mPrevWallpaperTarget); } boolean processWallpaperDrawPendingTimeout() { diff --git a/services/core/java/com/android/server/wm/WallpaperWindowToken.java b/services/core/java/com/android/server/wm/WallpaperWindowToken.java index 75c84c44c48e8..3a639f50603fa 100644 --- a/services/core/java/com/android/server/wm/WallpaperWindowToken.java +++ b/services/core/java/com/android/server/wm/WallpaperWindowToken.java @@ -20,7 +20,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER_LIGHT; +import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; @@ -28,7 +28,6 @@ import android.annotation.Nullable; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; -import android.util.Slog; import android.view.DisplayInfo; import android.view.ViewGroup; import android.view.WindowManager; @@ -107,8 +106,8 @@ class WallpaperWindowToken extends WindowToken { void updateWallpaperWindows(boolean visible) { if (isVisible() != visible) { - if (DEBUG_WALLPAPER_LIGHT) Slog.d(TAG, - "Wallpaper token " + token + " visible=" + visible); + ProtoLog.d(WM_DEBUG_WALLPAPER, "Wallpaper token %s visible=%b", + token, visible); setVisibility(visible); } final WallpaperController wallpaperController = mDisplayContent.mWallpaperController; diff --git a/services/core/java/com/android/server/wm/WindowManagerDebugConfig.java b/services/core/java/com/android/server/wm/WindowManagerDebugConfig.java index 08404411c02b5..c95470071e2d0 100644 --- a/services/core/java/com/android/server/wm/WindowManagerDebugConfig.java +++ b/services/core/java/com/android/server/wm/WindowManagerDebugConfig.java @@ -43,7 +43,6 @@ public class WindowManagerDebugConfig { static final boolean DEBUG_CONFIGURATION = false; static final boolean DEBUG_STARTING_WINDOW_VERBOSE = false; static final boolean DEBUG_WALLPAPER = false; - static final boolean DEBUG_WALLPAPER_LIGHT = false || DEBUG_WALLPAPER; static final boolean DEBUG_DRAG = true; static final boolean DEBUG_SCREENSHOT = false; static final boolean DEBUG_LAYOUT_REPEATS = false;