Merge "Support DisplayAreas in protos" into rvc-dev am: ae062e9268 am: 174c1acad0 am: 765434716e
Change-Id: Ia2fad9a54f5bf3c2c4d284a5fc9c0c80ecbbd327
This commit is contained in:
@@ -53,10 +53,10 @@ message RootWindowContainerProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
repeated DisplayContentProto displays = 2;
|
||||
repeated DisplayContentProto displays = 2 [deprecated=true];
|
||||
reserved 3; // IdentifierProto windows
|
||||
/* window references in top down z order */
|
||||
repeated WindowStateProto windows = 4;
|
||||
repeated WindowStateProto windows = 4 [deprecated=true];
|
||||
optional KeyguardControllerProto keyguard_controller = 5;
|
||||
// Whether or not the home activity is the recents activity. This is needed for the CTS tests to
|
||||
// know what activity types to check for when invoking splitscreen multi-window.
|
||||
@@ -192,7 +192,8 @@ message DisplayContentProto {
|
||||
optional bool single_task_instance = 22;
|
||||
optional int32 focused_root_task_id = 23;
|
||||
optional .com.android.server.wm.IdentifierProto resumed_activity = 24;
|
||||
repeated TaskProto tasks = 25;
|
||||
repeated TaskProto tasks = 25 [deprecated=true];
|
||||
optional bool display_ready = 26;
|
||||
}
|
||||
|
||||
/* represents DisplayArea object */
|
||||
@@ -201,7 +202,7 @@ message DisplayAreaProto {
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
optional string name = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
|
||||
repeated DisplayAreaChildProto children = 3;
|
||||
repeated DisplayAreaChildProto children = 3 [deprecated=true];
|
||||
}
|
||||
|
||||
/* represents a generic child of a DisplayArea */
|
||||
@@ -254,8 +255,8 @@ message TaskProto {
|
||||
optional int32 surface_width = 8;
|
||||
optional int32 surface_height = 9;
|
||||
|
||||
repeated TaskProto tasks = 10;
|
||||
repeated ActivityRecordProto activities = 11;
|
||||
repeated TaskProto tasks = 10 [deprecated=true];
|
||||
repeated ActivityRecordProto activities = 11 [deprecated=true];
|
||||
|
||||
optional .com.android.server.wm.IdentifierProto resumed_activity = 12;
|
||||
optional string real_activity = 13;
|
||||
@@ -321,7 +322,7 @@ message WindowTokenProto {
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
optional int32 hash_code = 2;
|
||||
repeated WindowStateProto windows = 3;
|
||||
repeated WindowStateProto windows = 3 [deprecated=true];
|
||||
optional bool waiting_to_show = 5;
|
||||
optional bool paused = 6;
|
||||
}
|
||||
@@ -346,7 +347,7 @@ message WindowStateProto {
|
||||
optional .android.graphics.RectProto surface_insets = 12;
|
||||
optional WindowStateAnimatorProto animator = 13;
|
||||
optional bool animating_exit = 14;
|
||||
repeated WindowStateProto child_windows = 15;
|
||||
repeated WindowStateProto child_windows = 15 [deprecated=true];
|
||||
optional .android.graphics.RectProto surface_position = 16;
|
||||
optional int32 requested_width = 18;
|
||||
optional int32 requested_height = 19;
|
||||
@@ -426,6 +427,32 @@ message WindowContainerProto {
|
||||
optional int32 orientation = 2;
|
||||
optional bool visible = 3;
|
||||
optional SurfaceAnimatorProto surface_animator = 4;
|
||||
repeated WindowContainerChildProto children = 5;
|
||||
}
|
||||
|
||||
/* represents a generic child of a WindowContainer */
|
||||
message WindowContainerChildProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
/* A window container can have multiple children of different types stored as
|
||||
* a WindowContainerChildProto but each instance of WindowContainerChildProto
|
||||
* can only contain a single type.
|
||||
*/
|
||||
/* We do not know the derived typ and the class is dumped
|
||||
* as a WindowContainer */
|
||||
optional WindowContainerProto window_container = 2;
|
||||
/* represents a DisplayContent child */
|
||||
optional DisplayContentProto display_content = 3;
|
||||
/* represents a DisplayArea child */
|
||||
optional DisplayAreaProto display_area = 4;
|
||||
/* represents a Task child */
|
||||
optional TaskProto task = 5;
|
||||
/* represents an ActivityRecord child */
|
||||
optional ActivityRecordProto activity = 6;
|
||||
/* represents a WindowToken child */
|
||||
optional WindowTokenProto window_token = 7;
|
||||
/* represents a WindowState child */
|
||||
optional WindowStateProto window = 8;
|
||||
}
|
||||
|
||||
/* represents ConfigurationContainer */
|
||||
|
||||
@@ -200,6 +200,7 @@ import static com.android.server.wm.TaskPersister.IMAGE_EXTENSION;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
|
||||
import static com.android.server.wm.WindowContainerChildProto.ACTIVITY;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT_REPEATS;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STARTING_WINDOW_VERBOSE;
|
||||
@@ -7449,6 +7450,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
long getProtoFieldId() {
|
||||
return ACTIVITY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dumpDebug(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
|
||||
@@ -90,7 +90,6 @@ import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLAS
|
||||
import static com.android.server.wm.ActivityTaskManagerService.H.FIRST_ACTIVITY_STACK_MSG;
|
||||
import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_FREE_RESIZE;
|
||||
import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE;
|
||||
import static com.android.server.wm.TaskProto.ACTIVITIES;
|
||||
import static com.android.server.wm.TaskProto.ACTIVITY_TYPE;
|
||||
import static com.android.server.wm.TaskProto.ANIMATING_BOUNDS;
|
||||
import static com.android.server.wm.TaskProto.BOUNDS;
|
||||
@@ -109,7 +108,6 @@ import static com.android.server.wm.TaskProto.RESUMED_ACTIVITY;
|
||||
import static com.android.server.wm.TaskProto.ROOT_TASK_ID;
|
||||
import static com.android.server.wm.TaskProto.SURFACE_HEIGHT;
|
||||
import static com.android.server.wm.TaskProto.SURFACE_WIDTH;
|
||||
import static com.android.server.wm.TaskProto.TASKS;
|
||||
import static com.android.server.wm.TaskProto.WINDOW_CONTAINER;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
|
||||
@@ -3918,17 +3916,6 @@ class ActivityStack extends Task {
|
||||
proto.write(DISPLAY_ID, getDisplayId());
|
||||
proto.write(ROOT_TASK_ID, getRootTaskId());
|
||||
|
||||
for (int i = mChildren.size() - 1; i >= 0; --i) {
|
||||
final WindowContainer child = mChildren.get(i);
|
||||
if (child instanceof Task) {
|
||||
child.dumpDebug(proto, TASKS, logLevel);
|
||||
} else if (child instanceof ActivityRecord) {
|
||||
child.dumpDebug(proto, ACTIVITIES, logLevel);
|
||||
} else {
|
||||
throw new IllegalStateException("Unknown child type: " + child);
|
||||
}
|
||||
}
|
||||
|
||||
if (mResumedActivity != null) {
|
||||
mResumedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
|
||||
}
|
||||
|
||||
@@ -23,13 +23,10 @@ import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
|
||||
import static android.view.WindowManagerPolicyConstants.APPLICATION_LAYER;
|
||||
|
||||
import static com.android.internal.util.Preconditions.checkState;
|
||||
import static com.android.server.wm.DisplayAreaChildProto.DISPLAY_AREA;
|
||||
import static com.android.server.wm.DisplayAreaChildProto.UNKNOWN;
|
||||
import static com.android.server.wm.DisplayAreaChildProto.WINDOW;
|
||||
import static com.android.server.wm.DisplayAreaProto.CHILDREN;
|
||||
import static com.android.server.wm.DisplayAreaProto.NAME;
|
||||
import static com.android.server.wm.DisplayAreaProto.WINDOW_CONTAINER;
|
||||
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
|
||||
import static com.android.server.wm.WindowContainerChildProto.DISPLAY_AREA;
|
||||
|
||||
import android.graphics.Rect;
|
||||
import android.util.proto.ProtoOutputStream;
|
||||
@@ -111,24 +108,14 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> {
|
||||
final long token = proto.start(fieldId);
|
||||
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
|
||||
proto.write(NAME, mName);
|
||||
for (int i = 0; i < getChildCount(); i++) {
|
||||
final long childToken = proto.start(CHILDREN);
|
||||
final T child = getChildAt(i);
|
||||
if (child instanceof ActivityStack) {
|
||||
// TODO(display-area): Dump stacks & tasks here, instead of in DisplayContent's
|
||||
// dumpDebug. For now, skip them here to avoid dumping them as UNKNOWN.
|
||||
} else if (child instanceof WindowToken) {
|
||||
((WindowToken) child).dumpDebug(proto, WINDOW, logLevel);
|
||||
} else if (child instanceof DisplayArea) {
|
||||
child.dumpDebug(proto, DISPLAY_AREA, logLevel);
|
||||
} else {
|
||||
proto.write(UNKNOWN, child.getClass().getSimpleName());
|
||||
}
|
||||
proto.end(childToken);
|
||||
}
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
long getProtoFieldId() {
|
||||
return DISPLAY_AREA;
|
||||
}
|
||||
|
||||
/**
|
||||
* DisplayArea that contains WindowTokens, and orders them according to their type.
|
||||
*/
|
||||
|
||||
@@ -94,6 +94,7 @@ import static com.android.server.wm.DisplayContentProto.APP_TRANSITION;
|
||||
import static com.android.server.wm.DisplayContentProto.CLOSING_APPS;
|
||||
import static com.android.server.wm.DisplayContentProto.DISPLAY_FRAMES;
|
||||
import static com.android.server.wm.DisplayContentProto.DISPLAY_INFO;
|
||||
import static com.android.server.wm.DisplayContentProto.DISPLAY_READY;
|
||||
import static com.android.server.wm.DisplayContentProto.DPI;
|
||||
import static com.android.server.wm.DisplayContentProto.FOCUSED_APP;
|
||||
import static com.android.server.wm.DisplayContentProto.FOCUSED_ROOT_TASK_ID;
|
||||
@@ -105,7 +106,6 @@ import static com.android.server.wm.DisplayContentProto.ROOT_DISPLAY_AREA;
|
||||
import static com.android.server.wm.DisplayContentProto.ROTATION;
|
||||
import static com.android.server.wm.DisplayContentProto.SCREEN_ROTATION_ANIMATION;
|
||||
import static com.android.server.wm.DisplayContentProto.SINGLE_TASK_INSTANCE;
|
||||
import static com.android.server.wm.DisplayContentProto.TASKS;
|
||||
import static com.android.server.wm.DisplayContentProto.WINDOW_CONTAINER;
|
||||
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
|
||||
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
|
||||
@@ -117,6 +117,7 @@ import static com.android.server.wm.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
|
||||
import static com.android.server.wm.RootWindowContainer.TAG_STATES;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
|
||||
import static com.android.server.wm.WindowContainerChildProto.DISPLAY_CONTENT;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT_METHOD;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT;
|
||||
@@ -2837,10 +2838,6 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
|
||||
proto.write(ID, mDisplayId);
|
||||
mRootDisplayArea.dumpDebug(proto, ROOT_DISPLAY_AREA, logLevel);
|
||||
for (int i = mTaskContainers.getChildCount() - 1; i >= 0; --i) {
|
||||
final ActivityStack stack = mTaskContainers.getChildAt(i);
|
||||
stack.dumpDebug(proto, TASKS, logLevel);
|
||||
}
|
||||
for (int i = mOverlayContainers.getChildCount() - 1; i >= 0; --i) {
|
||||
final WindowToken windowToken = mOverlayContainers.getChildAt(i);
|
||||
windowToken.dumpDebug(proto, OVERLAY_WINDOWS, logLevel);
|
||||
@@ -2875,10 +2872,16 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
} else {
|
||||
proto.write(FOCUSED_ROOT_TASK_ID, INVALID_TASK_ID);
|
||||
}
|
||||
proto.write(DISPLAY_READY, isReady());
|
||||
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
long getProtoFieldId() {
|
||||
return DISPLAY_CONTENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dump(PrintWriter pw, String prefix, boolean dumpAll) {
|
||||
super.dump(pw, prefix, dumpAll);
|
||||
|
||||
@@ -66,11 +66,9 @@ import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_KEEP_SCREEN_ON;
|
||||
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
|
||||
import static com.android.server.wm.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC;
|
||||
import static com.android.server.wm.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
|
||||
import static com.android.server.wm.RootWindowContainerProto.DISPLAYS;
|
||||
import static com.android.server.wm.RootWindowContainerProto.IS_HOME_RECENTS_COMPONENT;
|
||||
import static com.android.server.wm.RootWindowContainerProto.KEYGUARD_CONTROLLER;
|
||||
import static com.android.server.wm.RootWindowContainerProto.PENDING_ACTIVITIES;
|
||||
import static com.android.server.wm.RootWindowContainerProto.WINDOWS;
|
||||
import static com.android.server.wm.RootWindowContainerProto.WINDOW_CONTAINER;
|
||||
import static com.android.server.wm.Task.REPARENT_LEAVE_STACK_IN_PLACE;
|
||||
import static com.android.server.wm.Task.REPARENT_MOVE_STACK_TO_FRONT;
|
||||
@@ -1278,18 +1276,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
|
||||
final long token = proto.start(fieldId);
|
||||
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
|
||||
if (mWmService.mDisplayReady) {
|
||||
final int count = mChildren.size();
|
||||
for (int i = 0; i < count; ++i) {
|
||||
final DisplayContent displayContent = mChildren.get(i);
|
||||
displayContent.dumpDebug(proto, DISPLAYS, logLevel);
|
||||
}
|
||||
}
|
||||
if (logLevel == WindowTraceLogLevel.ALL) {
|
||||
forAllWindows((w) -> {
|
||||
w.dumpDebug(proto, WINDOWS, logLevel);
|
||||
}, true);
|
||||
}
|
||||
|
||||
mStackSupervisor.getKeyguardController().dumpDebug(proto, KEYGUARD_CONTROLLER);
|
||||
proto.write(IS_HOME_RECENTS_COMPONENT,
|
||||
|
||||
@@ -85,6 +85,7 @@ import static com.android.server.wm.IdentifierProto.USER_ID;
|
||||
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
|
||||
import static com.android.server.wm.WindowContainerChildProto.TASK;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STACK;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_TASK_MOVEMENT;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
|
||||
@@ -4121,4 +4122,9 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
SurfaceControl.Transaction getMainWindowSizeChangeTransaction() {
|
||||
return mMainWindowSizeChangeTransaction;
|
||||
}
|
||||
|
||||
@Override
|
||||
long getProtoFieldId() {
|
||||
return TASK;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITIO
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
|
||||
import static com.android.server.wm.WindowContainerChildProto.WINDOW_CONTAINER;
|
||||
import static com.android.server.wm.WindowContainerProto.CONFIGURATION_CONTAINER;
|
||||
import static com.android.server.wm.WindowContainerProto.ORIENTATION;
|
||||
import static com.android.server.wm.WindowContainerProto.SURFACE_ANIMATOR;
|
||||
@@ -1819,9 +1820,25 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
|
||||
if (mSurfaceAnimator.isAnimating()) {
|
||||
mSurfaceAnimator.dumpDebug(proto, SURFACE_ANIMATOR);
|
||||
}
|
||||
|
||||
// add children to proto
|
||||
for (int i = 0; i < getChildCount(); i++) {
|
||||
final long childToken = proto.start(WindowContainerProto.CHILDREN);
|
||||
final E child = getChildAt(i);
|
||||
child.dumpDebug(proto, child.getProtoFieldId(), logLevel);
|
||||
proto.end(childToken);
|
||||
}
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a proto field id to identify where to add the derived class to the generic window
|
||||
* container proto.
|
||||
*/
|
||||
long getProtoFieldId() {
|
||||
return WINDOW_CONTAINER;
|
||||
}
|
||||
|
||||
private ForAllWindowsConsumerWrapper obtainConsumerWrapper(Consumer<WindowState> consumer) {
|
||||
ForAllWindowsConsumerWrapper wrapper = mConsumerWrapperPool.acquire();
|
||||
if (wrapper == null) {
|
||||
|
||||
@@ -118,6 +118,7 @@ import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW;
|
||||
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
|
||||
import static com.android.server.wm.WindowContainerChildProto.WINDOW;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_CONFIGURATION;
|
||||
@@ -146,7 +147,6 @@ import static com.android.server.wm.WindowStateAnimator.READY_TO_SHOW;
|
||||
import static com.android.server.wm.WindowStateProto.ANIMATING_EXIT;
|
||||
import static com.android.server.wm.WindowStateProto.ANIMATOR;
|
||||
import static com.android.server.wm.WindowStateProto.ATTRIBUTES;
|
||||
import static com.android.server.wm.WindowStateProto.CHILD_WINDOWS;
|
||||
import static com.android.server.wm.WindowStateProto.DESTROYING;
|
||||
import static com.android.server.wm.WindowStateProto.DISPLAY_ID;
|
||||
import static com.android.server.wm.WindowStateProto.FINISHED_SEAMLESS_ROTATION_FRAME;
|
||||
@@ -3761,9 +3761,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
mSurfacePosition.dumpDebug(proto, SURFACE_POSITION);
|
||||
mWinAnimator.dumpDebug(proto, ANIMATOR);
|
||||
proto.write(ANIMATING_EXIT, mAnimatingExit);
|
||||
for (int i = 0; i < mChildren.size(); i++) {
|
||||
mChildren.get(i).dumpDebug(proto, CHILD_WINDOWS, logLevel);
|
||||
}
|
||||
proto.write(REQUESTED_WIDTH, mRequestedWidth);
|
||||
proto.write(REQUESTED_HEIGHT, mRequestedHeight);
|
||||
proto.write(VIEW_VISIBILITY, mViewVisibility);
|
||||
@@ -3781,6 +3778,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
long getProtoFieldId() {
|
||||
return WINDOW;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeIdentifierToProto(ProtoOutputStream proto, long fieldId) {
|
||||
final long token = proto.start(fieldId);
|
||||
|
||||
@@ -28,13 +28,13 @@ import static com.android.server.wm.ProtoLogGroup.WM_ERROR;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
|
||||
import static com.android.server.wm.WindowContainerChildProto.WINDOW_TOKEN;
|
||||
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.UPDATE_FOCUS_NORMAL;
|
||||
import static com.android.server.wm.WindowTokenProto.HASH_CODE;
|
||||
import static com.android.server.wm.WindowTokenProto.PAUSED;
|
||||
import static com.android.server.wm.WindowTokenProto.WAITING_TO_SHOW;
|
||||
import static com.android.server.wm.WindowTokenProto.WINDOWS;
|
||||
import static com.android.server.wm.WindowTokenProto.WINDOW_CONTAINER;
|
||||
|
||||
import android.annotation.CallSuper;
|
||||
@@ -541,15 +541,16 @@ class WindowToken extends WindowContainer<WindowState> {
|
||||
final long token = proto.start(fieldId);
|
||||
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
|
||||
proto.write(HASH_CODE, System.identityHashCode(this));
|
||||
for (int i = 0; i < mChildren.size(); i++) {
|
||||
final WindowState w = mChildren.get(i);
|
||||
w.dumpDebug(proto, WINDOWS, logLevel);
|
||||
}
|
||||
proto.write(WAITING_TO_SHOW, waitingToShow);
|
||||
proto.write(PAUSED, paused);
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
long getProtoFieldId() {
|
||||
return WINDOW_TOKEN;
|
||||
}
|
||||
|
||||
void dump(PrintWriter pw, String prefix, boolean dumpAll) {
|
||||
super.dump(pw, prefix, dumpAll);
|
||||
pw.print(prefix); pw.print("windows="); pw.println(mChildren);
|
||||
|
||||
Reference in New Issue
Block a user