WM: Unify windows and activities proto dumps (88/n)
Can no longer be put off since we need to redo things for task/stack merge. Bug: 80414790 Bug: 143460940 Test: Existing tests pass. Change-Id: Id6c60264220a42c290190e338945f1662a075b6f
This commit is contained in:
@@ -55,87 +55,8 @@ message ActivityManagerServiceProto {
|
||||
message ActivityManagerServiceDumpActivitiesProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional ActivityStackSupervisorProto activity_stack_supervisor = 1;
|
||||
}
|
||||
|
||||
message ActivityStackSupervisorProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
|
||||
repeated ActivityDisplayProto displays = 2;
|
||||
optional KeyguardControllerProto keyguard_controller = 3;
|
||||
// TODO(b/111541062): Focused stack and resumed activity are now per-display. Topmost instances
|
||||
// can be obtained from top display and these fields can be removed.
|
||||
optional int32 focused_stack_id = 4;
|
||||
optional .com.android.server.wm.IdentifierProto resumed_activity = 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.
|
||||
optional bool is_home_recents_component = 6;
|
||||
repeated .com.android.server.wm.IdentifierProto pending_activities = 7;
|
||||
optional .com.android.server.wm.RootWindowContainerProto root_window_container = 8;
|
||||
}
|
||||
|
||||
/* represents ActivityStackSupervisor.ActivityDisplay */
|
||||
message ActivityDisplayProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
// To be removed soon.
|
||||
optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
|
||||
optional int32 id = 2;
|
||||
repeated ActivityStackProto stacks = 3;
|
||||
optional int32 focused_stack_id = 4;
|
||||
optional .com.android.server.wm.IdentifierProto resumed_activity = 5;
|
||||
optional bool single_task_instance = 6;
|
||||
optional .com.android.server.wm.DisplayContentProto display = 7;
|
||||
}
|
||||
|
||||
message ActivityStackProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
// To be removed soon.
|
||||
optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
|
||||
optional int32 id = 2;
|
||||
repeated TaskRecordProto tasks = 3;
|
||||
optional .com.android.server.wm.IdentifierProto resumed_activity = 4;
|
||||
optional int32 display_id = 5;
|
||||
optional bool fullscreen = 6;
|
||||
optional .android.graphics.RectProto bounds = 7;
|
||||
optional .com.android.server.wm.StackProto stack = 8;
|
||||
}
|
||||
|
||||
message TaskRecordProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
// To be removed soon.
|
||||
optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
|
||||
optional int32 id = 2;
|
||||
repeated .com.android.server.wm.ActivityRecordProto activities = 3;
|
||||
optional int32 stack_id = 4;
|
||||
optional .android.graphics.RectProto last_non_fullscreen_bounds = 5;
|
||||
optional string real_activity = 6;
|
||||
optional string orig_activity = 7;
|
||||
optional int32 activity_type = 8;
|
||||
optional int32 resize_mode = 9;
|
||||
optional bool fullscreen = 10;
|
||||
optional .android.graphics.RectProto bounds = 11;
|
||||
optional int32 min_width = 12;
|
||||
optional int32 min_height = 13;
|
||||
optional .com.android.server.wm.TaskProto task = 14;
|
||||
}
|
||||
|
||||
message KeyguardControllerProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional bool keyguard_showing = 1;
|
||||
repeated KeyguardOccludedProto keyguard_occluded_states= 2;
|
||||
optional bool aod_showing = 3;
|
||||
}
|
||||
|
||||
message KeyguardOccludedProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional int32 display_id = 1;
|
||||
optional bool keyguard_occluded = 2;
|
||||
reserved 1; // activity_stack_supervisor
|
||||
optional .com.android.server.wm.RootWindowContainerProto root_window_container = 2;
|
||||
}
|
||||
|
||||
// "dumpsys activity --proto broadcasts"
|
||||
@@ -669,8 +590,6 @@ message ActivityManagerServiceDumpProcessesProto {
|
||||
optional int64 previous_proc_visible_time_ms = 17;
|
||||
optional ProcessRecordProto heavy_weight_proc = 18;
|
||||
optional .android.content.ConfigurationProto global_configuration = 19;
|
||||
// ActivityStackSupervisorProto dumps these values as well, still here?
|
||||
// repeated ActivityDisplayProto displays = 20;
|
||||
|
||||
optional bool config_will_change = 21;
|
||||
|
||||
|
||||
@@ -54,8 +54,14 @@ message RootWindowContainerProto {
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
repeated DisplayContentProto displays = 2;
|
||||
reserved 3; // IdentifierProto windows
|
||||
/* window references in top down z order */
|
||||
repeated IdentifierProto windows = 3;
|
||||
repeated WindowStateProto windows = 4;
|
||||
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.
|
||||
optional bool is_home_recents_component = 6;
|
||||
repeated IdentifierProto pending_activities = 7;
|
||||
}
|
||||
|
||||
message BarControllerProto {
|
||||
@@ -94,6 +100,21 @@ message KeyguardServiceDelegateProto {
|
||||
optional InteractiveState interactive_state = 5;
|
||||
}
|
||||
|
||||
message KeyguardControllerProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional bool keyguard_showing = 1;
|
||||
repeated KeyguardOccludedProto keyguard_occluded_states = 2;
|
||||
optional bool aod_showing = 3;
|
||||
}
|
||||
|
||||
message KeyguardOccludedProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional int32 display_id = 1;
|
||||
optional bool keyguard_occluded = 2;
|
||||
}
|
||||
|
||||
/* represents PhoneWindowManager */
|
||||
message WindowManagerPolicyProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
@@ -145,7 +166,7 @@ message DisplayContentProto {
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
optional int32 id = 2;
|
||||
repeated StackProto stacks = 3;
|
||||
reserved 3; // stacks
|
||||
optional DockedStackDividerControllerProto docked_stack_divider_controller = 4;
|
||||
// Will be removed soon.
|
||||
optional PinnedStackControllerProto pinned_stack_controller = 5 [deprecated=true];
|
||||
@@ -166,6 +187,12 @@ message DisplayContentProto {
|
||||
repeated IdentifierProto changing_apps = 19;
|
||||
repeated WindowTokenProto overlay_windows = 20;
|
||||
optional DisplayAreaProto root_display_area = 21;
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/* represents DisplayArea object */
|
||||
@@ -191,7 +218,6 @@ message DisplayAreaChildProto {
|
||||
repeated string unknown = 3;
|
||||
}
|
||||
|
||||
|
||||
/* represents DisplayFrames */
|
||||
message DisplayFramesProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
@@ -214,39 +240,41 @@ message PinnedStackControllerProto {
|
||||
optional .android.graphics.RectProto movement_bounds = 2 [deprecated=true];
|
||||
}
|
||||
|
||||
/* represents TaskStack */
|
||||
message StackProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
optional int32 id = 2;
|
||||
repeated TaskProto tasks = 3;
|
||||
optional bool fills_parent = 4;
|
||||
optional .android.graphics.RectProto bounds = 5;
|
||||
optional bool animation_background_surface_is_dimming = 6 [deprecated=true];
|
||||
optional bool defer_removal = 7;
|
||||
optional float minimize_amount = 8;
|
||||
optional bool adjusted_for_ime = 9;
|
||||
optional float adjust_ime_amount = 10;
|
||||
optional float adjust_divider_amount = 11;
|
||||
optional .android.graphics.RectProto adjusted_bounds = 12;
|
||||
optional bool animating_bounds = 13;
|
||||
}
|
||||
|
||||
/* represents Task */
|
||||
message TaskProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
optional int32 id = 2;
|
||||
repeated ActivityRecordProto activity = 3;
|
||||
reserved 3; // activity
|
||||
optional bool fills_parent = 4;
|
||||
optional .android.graphics.RectProto bounds = 5;
|
||||
optional .android.graphics.RectProto displayed_bounds = 6;
|
||||
// Will be removed soon.
|
||||
optional bool defer_removal = 7 [deprecated=true];
|
||||
optional bool defer_removal = 7;
|
||||
optional int32 surface_width = 8;
|
||||
optional int32 surface_height = 9;
|
||||
|
||||
repeated TaskProto tasks = 10;
|
||||
repeated ActivityRecordProto activities = 11;
|
||||
|
||||
optional .com.android.server.wm.IdentifierProto resumed_activity = 12;
|
||||
optional string real_activity = 13;
|
||||
optional string orig_activity = 14;
|
||||
|
||||
optional int32 display_id = 15;
|
||||
optional int32 root_task_id = 16;
|
||||
optional int32 activity_type = 17;
|
||||
optional int32 resize_mode = 18;
|
||||
optional int32 min_width = 19;
|
||||
optional int32 min_height = 20;
|
||||
|
||||
optional .android.graphics.RectProto adjusted_bounds = 21;
|
||||
optional .android.graphics.RectProto last_non_fullscreen_bounds = 22;
|
||||
optional bool adjusted_for_ime = 23;
|
||||
optional float adjust_ime_amount = 24;
|
||||
optional float adjust_divider_amount = 25;
|
||||
optional bool animating_bounds = 26;
|
||||
optional float minimize_amount = 27;
|
||||
}
|
||||
|
||||
/* represents ActivityRecordProto */
|
||||
@@ -271,17 +299,15 @@ message ActivityRecordProto {
|
||||
optional int32 num_drawn_windows = 15;
|
||||
optional bool all_drawn = 16;
|
||||
optional bool last_all_drawn = 17;
|
||||
// Will be removed soon
|
||||
optional bool removed = 18 [deprecated=true];
|
||||
reserved 18; // removed
|
||||
optional IdentifierProto starting_window = 19;
|
||||
optional bool starting_displayed = 20;
|
||||
optional bool starting_moved = 21;
|
||||
optional bool starting_moved = 201;
|
||||
optional bool visible_set_from_transferred_starting_window = 22;
|
||||
repeated .android.graphics.RectProto frozen_bounds = 23;
|
||||
optional bool visible = 24;
|
||||
// To be removed soon.
|
||||
optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 25 [deprecated=true];
|
||||
optional .com.android.server.wm.IdentifierProto identifier = 26;
|
||||
reserved 25; // configuration_container
|
||||
optional IdentifierProto identifier = 26;
|
||||
optional string state = 27;
|
||||
optional bool front_of_task = 28;
|
||||
optional int32 proc_id = 29;
|
||||
|
||||
@@ -1212,7 +1212,7 @@ class ActivityMetricsLogger {
|
||||
final ProtoOutputStream protoOutputStream =
|
||||
new ProtoOutputStream(LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE);
|
||||
// Write this data out as the top-most ActivityRecordProto (i.e. it is not a sub-object).
|
||||
record.dumpDebug(protoOutputStream);
|
||||
record.dumpDebug(protoOutputStream, WindowTraceLogLevel.ALL);
|
||||
final byte[] bytes = protoOutputStream.getBytes();
|
||||
|
||||
Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
|
||||
|
||||
@@ -7502,17 +7502,19 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
* Write all fields to an {@code ActivityRecordProto}. This assumes the
|
||||
* {@code ActivityRecordProto} is the outer-most proto data.
|
||||
*/
|
||||
void dumpDebug(ProtoOutputStream proto) {
|
||||
void dumpDebug(ProtoOutputStream proto, @WindowTraceLogLevel int logLevel) {
|
||||
writeNameToProto(proto, NAME);
|
||||
super.dumpDebug(proto, WINDOW_TOKEN, WindowTraceLogLevel.ALL);
|
||||
super.dumpDebug(proto, WINDOW_TOKEN, logLevel);
|
||||
proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing);
|
||||
proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart());
|
||||
proto.write(IS_ANIMATING, isAnimating());
|
||||
if (mThumbnail != null) {
|
||||
proto.write(IS_ANIMATING, isAnimating(PARENTS));
|
||||
if (mThumbnail != null){
|
||||
mThumbnail.dumpDebug(proto, THUMBNAIL);
|
||||
}
|
||||
proto.write(FILLS_PARENT, mOccludesParent);
|
||||
proto.write(APP_STOPPED, mAppStopped);
|
||||
proto.write(TRANSLUCENT, !occludesParent());
|
||||
proto.write(VISIBLE, mVisible);
|
||||
proto.write(VISIBLE_REQUESTED, mVisibleRequested);
|
||||
proto.write(CLIENT_VISIBLE, mClientVisible);
|
||||
proto.write(DEFER_HIDING_CLIENT, mDeferHidingClient);
|
||||
@@ -7535,24 +7537,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
|
||||
writeIdentifierToProto(proto, IDENTIFIER);
|
||||
proto.write(STATE, mState.toString());
|
||||
proto.write(VISIBLE_REQUESTED, mVisibleRequested);
|
||||
proto.write(FRONT_OF_TASK, isRootOfTask());
|
||||
if (hasProcess()) {
|
||||
proto.write(PROC_ID, app.getPid());
|
||||
}
|
||||
proto.write(TRANSLUCENT, !occludesParent());
|
||||
proto.write(VISIBLE, mVisible);
|
||||
}
|
||||
|
||||
public void dumpDebug(ProtoOutputStream proto, long fieldId) {
|
||||
final long token = proto.start(fieldId);
|
||||
dumpDebug(proto);
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
/**
|
||||
* Copied from old AppWindowToken.
|
||||
*/
|
||||
@Override
|
||||
public void dumpDebug(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
@@ -7562,36 +7552,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
}
|
||||
|
||||
final long token = proto.start(fieldId);
|
||||
writeNameToProto(proto, NAME);
|
||||
super.dumpDebug(proto, WINDOW_TOKEN, logLevel);
|
||||
proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing);
|
||||
proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart());
|
||||
proto.write(IS_ANIMATING, isAnimating(PARENTS));
|
||||
if (mThumbnail != null){
|
||||
mThumbnail.dumpDebug(proto, THUMBNAIL);
|
||||
}
|
||||
proto.write(FILLS_PARENT, mOccludesParent);
|
||||
proto.write(APP_STOPPED, mAppStopped);
|
||||
proto.write(VISIBLE_REQUESTED, mVisibleRequested);
|
||||
proto.write(CLIENT_VISIBLE, mClientVisible);
|
||||
proto.write(DEFER_HIDING_CLIENT, mDeferHidingClient);
|
||||
proto.write(REPORTED_DRAWN, reportedDrawn);
|
||||
proto.write(REPORTED_VISIBLE, reportedVisible);
|
||||
proto.write(NUM_INTERESTING_WINDOWS, mNumInterestingWindows);
|
||||
proto.write(NUM_DRAWN_WINDOWS, mNumDrawnWindows);
|
||||
proto.write(ALL_DRAWN, allDrawn);
|
||||
proto.write(LAST_ALL_DRAWN, mLastAllDrawn);
|
||||
if (startingWindow != null) {
|
||||
startingWindow.writeIdentifierToProto(proto, STARTING_WINDOW);
|
||||
}
|
||||
proto.write(STARTING_DISPLAYED, startingDisplayed);
|
||||
proto.write(STARTING_MOVED, startingMoved);
|
||||
proto.write(VISIBLE_SET_FROM_TRANSFERRED_STARTING_WINDOW,
|
||||
mVisibleSetFromTransferredStartingWindow);
|
||||
for (Rect bounds : mFrozenBounds) {
|
||||
bounds.dumpDebug(proto, FROZEN_BOUNDS);
|
||||
}
|
||||
proto.write(VISIBLE, mVisible);
|
||||
dumpDebug(proto, logLevel);
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,10 +60,18 @@ import static android.view.WindowManager.TRANSIT_TASK_OPEN_BEHIND;
|
||||
import static android.view.WindowManager.TRANSIT_TASK_TO_BACK;
|
||||
import static android.view.WindowManager.TRANSIT_TASK_TO_FRONT;
|
||||
|
||||
import static com.android.server.am.ActivityStackProto.DISPLAY_ID;
|
||||
import static com.android.server.am.ActivityStackProto.FULLSCREEN;
|
||||
import static com.android.server.am.ActivityStackProto.RESUMED_ACTIVITY;
|
||||
import static com.android.server.am.ActivityStackProto.STACK;
|
||||
import static com.android.server.wm.TaskProto.ACTIVITIES;
|
||||
import static com.android.server.wm.TaskProto.ACTIVITY_TYPE;
|
||||
import static com.android.server.wm.TaskProto.BOUNDS;
|
||||
import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS;
|
||||
import static com.android.server.wm.TaskProto.DISPLAY_ID;
|
||||
import static com.android.server.wm.TaskProto.LAST_NON_FULLSCREEN_BOUNDS;
|
||||
import static com.android.server.wm.TaskProto.MIN_HEIGHT;
|
||||
import static com.android.server.wm.TaskProto.MIN_WIDTH;
|
||||
import static com.android.server.wm.TaskProto.ORIG_ACTIVITY;
|
||||
import static com.android.server.wm.TaskProto.REAL_ACTIVITY;
|
||||
import static com.android.server.wm.TaskProto.RESIZE_MODE;
|
||||
import static com.android.server.wm.TaskProto.RESUMED_ACTIVITY;
|
||||
import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
|
||||
import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
|
||||
import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
|
||||
@@ -107,15 +115,19 @@ import static com.android.server.wm.BoundsAnimationController.NO_PIP_MODE_CHANGE
|
||||
import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_END;
|
||||
import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_START;
|
||||
import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER;
|
||||
import static com.android.server.wm.StackProto.ADJUSTED_BOUNDS;
|
||||
import static com.android.server.wm.StackProto.ADJUSTED_FOR_IME;
|
||||
import static com.android.server.wm.StackProto.ADJUST_DIVIDER_AMOUNT;
|
||||
import static com.android.server.wm.StackProto.ADJUST_IME_AMOUNT;
|
||||
import static com.android.server.wm.StackProto.ANIMATING_BOUNDS;
|
||||
import static com.android.server.wm.StackProto.DEFER_REMOVAL;
|
||||
import static com.android.server.wm.StackProto.FILLS_PARENT;
|
||||
import static com.android.server.wm.StackProto.MINIMIZE_AMOUNT;
|
||||
import static com.android.server.wm.StackProto.WINDOW_CONTAINER;
|
||||
import static com.android.server.wm.TaskProto.ADJUSTED_BOUNDS;
|
||||
import static com.android.server.wm.TaskProto.ADJUSTED_FOR_IME;
|
||||
import static com.android.server.wm.TaskProto.ADJUST_DIVIDER_AMOUNT;
|
||||
import static com.android.server.wm.TaskProto.ADJUST_IME_AMOUNT;
|
||||
import static com.android.server.wm.TaskProto.ANIMATING_BOUNDS;
|
||||
import static com.android.server.wm.TaskProto.DEFER_REMOVAL;
|
||||
import static com.android.server.wm.TaskProto.FILLS_PARENT;
|
||||
import static com.android.server.wm.TaskProto.MINIMIZE_AMOUNT;
|
||||
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;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
|
||||
@@ -4925,49 +4937,66 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
|
||||
@Override
|
||||
public void dumpDebug(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
final long token = proto.start(fieldId);
|
||||
dumpDebugInnerStackOnly(proto, STACK, logLevel);
|
||||
proto.write(com.android.server.am.ActivityStackProto.ID, getRootTaskId());
|
||||
|
||||
forAllTasks((t) -> {
|
||||
t.dumpDebugInner(proto, com.android.server.am.ActivityStackProto.TASKS, logLevel);
|
||||
}, true /* traverseTopToBottom */, this);
|
||||
if (mResumedActivity != null) {
|
||||
mResumedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
|
||||
}
|
||||
proto.write(DISPLAY_ID, getDisplayId());
|
||||
if (!matchParentBounds()) {
|
||||
final Rect bounds = getRequestedOverrideBounds();
|
||||
bounds.dumpDebug(proto, com.android.server.am.ActivityStackProto.BOUNDS);
|
||||
}
|
||||
|
||||
// TODO: Remove, no longer needed with windowingMode.
|
||||
proto.write(FULLSCREEN, matchParentBounds());
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
// TODO(proto-merge): Remove once protos for ActivityStack and TaskStack are merged.
|
||||
void dumpDebugInnerStackOnly(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final long token = proto.start(fieldId);
|
||||
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
|
||||
proto.write(StackProto.ID, getRootTaskId());
|
||||
forAllTasks((t) -> {
|
||||
t.dumpDebugInnerTaskOnly(proto, StackProto.TASKS, logLevel);
|
||||
}, true /* traverseTopToBottom */, this);
|
||||
|
||||
proto.write(TaskProto.ID, mTaskId);
|
||||
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);
|
||||
}
|
||||
if (realActivity != null) {
|
||||
proto.write(REAL_ACTIVITY, realActivity.flattenToShortString());
|
||||
}
|
||||
if (origActivity != null) {
|
||||
proto.write(ORIG_ACTIVITY, origActivity.flattenToShortString());
|
||||
}
|
||||
proto.write(ACTIVITY_TYPE, getActivityType());
|
||||
proto.write(RESIZE_MODE, mResizeMode);
|
||||
proto.write(MIN_WIDTH, mMinWidth);
|
||||
proto.write(MIN_HEIGHT, mMinHeight);
|
||||
|
||||
proto.write(FILLS_PARENT, matchParentBounds());
|
||||
getRawBounds().dumpDebug(proto, StackProto.BOUNDS);
|
||||
|
||||
if (!matchParentBounds()) {
|
||||
final Rect bounds = getRequestedOverrideBounds();
|
||||
bounds.dumpDebug(proto, BOUNDS);
|
||||
}
|
||||
getOverrideDisplayedBounds().dumpDebug(proto, DISPLAYED_BOUNDS);
|
||||
mAdjustedBounds.dumpDebug(proto, ADJUSTED_BOUNDS);
|
||||
if (mLastNonFullscreenBounds != null) {
|
||||
mLastNonFullscreenBounds.dumpDebug(proto, LAST_NON_FULLSCREEN_BOUNDS);
|
||||
}
|
||||
|
||||
proto.write(DEFER_REMOVAL, mDeferRemoval);
|
||||
proto.write(MINIMIZE_AMOUNT, mMinimizeAmount);
|
||||
proto.write(ADJUSTED_FOR_IME, mAdjustedForIme);
|
||||
proto.write(ADJUST_IME_AMOUNT, mAdjustImeAmount);
|
||||
proto.write(ADJUST_DIVIDER_AMOUNT, mAdjustDividerAmount);
|
||||
mAdjustedBounds.dumpDebug(proto, ADJUSTED_BOUNDS);
|
||||
proto.write(ANIMATING_BOUNDS, mBoundsAnimating);
|
||||
|
||||
if (mSurfaceControl != null) {
|
||||
proto.write(SURFACE_WIDTH, mSurfaceControl.getWidth());
|
||||
proto.write(SURFACE_HEIGHT, mSurfaceControl.getHeight());
|
||||
}
|
||||
|
||||
proto.end(token);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ import static com.android.server.am.ActivityManagerService.ANR_TRACE_DIR;
|
||||
import static com.android.server.am.ActivityManagerService.MY_PID;
|
||||
import static com.android.server.am.ActivityManagerService.STOCK_PM_FLAGS;
|
||||
import static com.android.server.am.ActivityManagerService.dumpStackTraces;
|
||||
import static com.android.server.am.ActivityManagerServiceDumpActivitiesProto.ROOT_WINDOW_CONTAINER;
|
||||
import static com.android.server.am.ActivityManagerServiceDumpProcessesProto.CONFIG_WILL_CHANGE;
|
||||
import static com.android.server.am.ActivityManagerServiceDumpProcessesProto.CONTROLLER;
|
||||
import static com.android.server.am.ActivityManagerServiceDumpProcessesProto.CURRENT_TRACKER;
|
||||
@@ -257,7 +258,6 @@ import com.android.server.SystemServiceManager;
|
||||
import com.android.server.UiThread;
|
||||
import com.android.server.Watchdog;
|
||||
import com.android.server.am.ActivityManagerService;
|
||||
import com.android.server.am.ActivityManagerServiceDumpActivitiesProto;
|
||||
import com.android.server.am.ActivityManagerServiceDumpProcessesProto;
|
||||
import com.android.server.am.AppTimeTracker;
|
||||
import com.android.server.am.BaseErrorDialog;
|
||||
@@ -6963,10 +6963,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
|
||||
public void writeActivitiesToProto(ProtoOutputStream proto) {
|
||||
synchronized (mGlobalLock) {
|
||||
// The output proto of "activity --proto activities"
|
||||
// is ActivityManagerServiceDumpActivitiesProto
|
||||
mRootWindowContainer.dumpDebug(proto,
|
||||
ActivityManagerServiceDumpActivitiesProto.ACTIVITY_STACK_SUPERVISOR,
|
||||
WindowTraceLogLevel.ALL);
|
||||
mRootWindowContainer.dumpDebug(
|
||||
proto, ROOT_WINDOW_CONTAINER, WindowTraceLogLevel.ALL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.server.wm;
|
||||
|
||||
import static android.app.ActivityTaskManager.INVALID_STACK_ID;
|
||||
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
|
||||
import static android.app.ActivityTaskManager.SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
|
||||
@@ -83,10 +84,9 @@ import static android.view.WindowManager.TRANSIT_ACTIVITY_OPEN;
|
||||
import static android.view.WindowManager.TRANSIT_TASK_OPEN;
|
||||
import static android.view.WindowManager.TRANSIT_TASK_TO_FRONT;
|
||||
|
||||
import static com.android.server.am.ActivityDisplayProto.DISPLAY;
|
||||
import static com.android.server.am.ActivityDisplayProto.FOCUSED_STACK_ID;
|
||||
import static com.android.server.am.ActivityDisplayProto.RESUMED_ACTIVITY;
|
||||
import static com.android.server.am.ActivityDisplayProto.SINGLE_TASK_INSTANCE;
|
||||
import static com.android.server.wm.DisplayContentProto.FOCUSED_ROOT_TASK_ID;
|
||||
import static com.android.server.wm.DisplayContentProto.RESUMED_ACTIVITY;
|
||||
import static com.android.server.wm.DisplayContentProto.SINGLE_TASK_INSTANCE;
|
||||
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM;
|
||||
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG;
|
||||
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
|
||||
@@ -111,7 +111,7 @@ import static com.android.server.wm.DisplayContentProto.OVERLAY_WINDOWS;
|
||||
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.STACKS;
|
||||
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;
|
||||
@@ -2733,30 +2733,6 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
|
||||
public void dumpDebug(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
final long token = proto.start(fieldId);
|
||||
dumpDebugInner(proto, DISPLAY, logLevel);
|
||||
proto.write(com.android.server.am.ActivityDisplayProto.ID, mDisplayId);
|
||||
proto.write(SINGLE_TASK_INSTANCE, mSingleTaskInstance);
|
||||
final ActivityStack focusedStack = getFocusedStack();
|
||||
if (focusedStack != null) {
|
||||
proto.write(FOCUSED_STACK_ID, focusedStack.getRootTaskId());
|
||||
final ActivityRecord focusedActivity = focusedStack.getDisplay().getResumedActivity();
|
||||
if (focusedActivity != null) {
|
||||
focusedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
|
||||
}
|
||||
} else {
|
||||
proto.write(FOCUSED_STACK_ID, INVALID_STACK_ID);
|
||||
}
|
||||
for (int stackNdx = getStackCount() - 1; stackNdx >= 0; --stackNdx) {
|
||||
final ActivityStack stack = getStackAt(stackNdx);
|
||||
stack.dumpDebug(proto, com.android.server.am.ActivityDisplayProto.STACKS, logLevel);
|
||||
}
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
// TODO(proto-merge): Remove once protos for ActivityDisplay and DisplayContent are merged.
|
||||
public void dumpDebugInner(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
// Critical log level logs only visible elements to mitigate performance overheard
|
||||
if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
|
||||
return;
|
||||
@@ -2764,11 +2740,12 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
|
||||
final long token = proto.start(fieldId);
|
||||
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
|
||||
|
||||
proto.write(ID, mDisplayId);
|
||||
mRootDisplayArea.dumpDebug(proto, ROOT_DISPLAY_AREA, logLevel);
|
||||
for (int stackNdx = mTaskContainers.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
|
||||
final ActivityStack stack = mTaskContainers.getChildAt(stackNdx);
|
||||
stack.dumpDebugInnerStackOnly(proto, STACKS, logLevel);
|
||||
for (int i = mTaskContainers.getChildCount() - 1; i >= 0; --i) {
|
||||
final ActivityStack stack = mTaskContainers.getChildAt(i);
|
||||
stack.dumpDebug(proto, TASKS, logLevel);
|
||||
}
|
||||
mDividerControllerLocked.dumpDebug(proto, DOCKED_STACK_DIVIDER_CONTROLLER);
|
||||
for (int i = mOverlayContainers.getChildCount() - 1; i >= 0; --i) {
|
||||
@@ -2796,6 +2773,19 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
for (int i = mChangingApps.size() - 1; i >= 0; i--) {
|
||||
mChangingApps.valueAt(i).writeIdentifierToProto(proto, CHANGING_APPS);
|
||||
}
|
||||
|
||||
proto.write(SINGLE_TASK_INSTANCE, mSingleTaskInstance);
|
||||
final ActivityStack focusedStack = getFocusedStack();
|
||||
if (focusedStack != null) {
|
||||
proto.write(FOCUSED_ROOT_TASK_ID, focusedStack.getRootTaskId());
|
||||
final ActivityRecord focusedActivity = focusedStack.getDisplay().getResumedActivity();
|
||||
if (focusedActivity != null) {
|
||||
focusedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
|
||||
}
|
||||
} else {
|
||||
proto.write(FOCUSED_ROOT_TASK_ID, INVALID_TASK_ID);
|
||||
}
|
||||
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,11 +31,11 @@ import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG
|
||||
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_SHADE;
|
||||
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_WITH_WALLPAPER;
|
||||
|
||||
import static com.android.server.am.KeyguardControllerProto.AOD_SHOWING;
|
||||
import static com.android.server.am.KeyguardControllerProto.KEYGUARD_OCCLUDED_STATES;
|
||||
import static com.android.server.am.KeyguardControllerProto.KEYGUARD_SHOWING;
|
||||
import static com.android.server.am.KeyguardOccludedProto.DISPLAY_ID;
|
||||
import static com.android.server.am.KeyguardOccludedProto.KEYGUARD_OCCLUDED;
|
||||
import static com.android.server.wm.KeyguardControllerProto.AOD_SHOWING;
|
||||
import static com.android.server.wm.KeyguardControllerProto.KEYGUARD_OCCLUDED_STATES;
|
||||
import static com.android.server.wm.KeyguardControllerProto.KEYGUARD_SHOWING;
|
||||
import static com.android.server.wm.KeyguardOccludedProto.DISPLAY_ID;
|
||||
import static com.android.server.wm.KeyguardOccludedProto.KEYGUARD_OCCLUDED;
|
||||
import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
|
||||
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
|
||||
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.android.server.wm;
|
||||
|
||||
import static android.app.ActivityTaskManager.INVALID_STACK_ID;
|
||||
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
|
||||
@@ -41,12 +40,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
|
||||
import static android.view.WindowManager.TRANSIT_CRASHING_ACTIVITY_CLOSE;
|
||||
import static android.view.WindowManager.TRANSIT_SHOW_SINGLE_TASK_DISPLAY;
|
||||
|
||||
import static com.android.server.am.ActivityStackSupervisorProto.FOCUSED_STACK_ID;
|
||||
import static com.android.server.am.ActivityStackSupervisorProto.IS_HOME_RECENTS_COMPONENT;
|
||||
import static com.android.server.am.ActivityStackSupervisorProto.KEYGUARD_CONTROLLER;
|
||||
import static com.android.server.am.ActivityStackSupervisorProto.PENDING_ACTIVITIES;
|
||||
import static com.android.server.am.ActivityStackSupervisorProto.RESUMED_ACTIVITY;
|
||||
import static com.android.server.am.ActivityStackSupervisorProto.ROOT_WINDOW_CONTAINER;
|
||||
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
|
||||
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
|
||||
import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
|
||||
@@ -74,6 +67,9 @@ 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;
|
||||
@@ -1278,7 +1274,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
}
|
||||
}
|
||||
|
||||
public void dumpDebugInner(ProtoOutputStream proto, long fieldId,
|
||||
@Override
|
||||
public void dumpDebug(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
|
||||
return;
|
||||
@@ -1290,14 +1287,20 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
final int count = mChildren.size();
|
||||
for (int i = 0; i < count; ++i) {
|
||||
final DisplayContent displayContent = mChildren.get(i);
|
||||
displayContent.dumpDebugInner(proto, DISPLAYS, logLevel);
|
||||
displayContent.dumpDebug(proto, DISPLAYS, logLevel);
|
||||
}
|
||||
}
|
||||
if (logLevel == WindowTraceLogLevel.ALL) {
|
||||
forAllWindows((w) -> {
|
||||
w.writeIdentifierToProto(proto, WINDOWS);
|
||||
w.dumpDebug(proto, WINDOWS, logLevel);
|
||||
}, true);
|
||||
}
|
||||
|
||||
mStackSupervisor.getKeyguardController().dumpDebug(proto, KEYGUARD_CONTROLLER);
|
||||
proto.write(IS_HOME_RECENTS_COMPONENT,
|
||||
mStackSupervisor.mRecentTasks.isRecentsComponentHomeActivity(mCurrentUser));
|
||||
mService.getActivityStartController().dumpDebug(proto, PENDING_ACTIVITIES);
|
||||
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
@@ -3541,15 +3544,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
}
|
||||
}
|
||||
|
||||
public void dumpDisplays(PrintWriter pw) {
|
||||
for (int i = getChildCount() - 1; i >= 0; --i) {
|
||||
final DisplayContent display = getChildAt(i);
|
||||
pw.print("[id:" + display.mDisplayId + " stacks:");
|
||||
display.dumpStacks(pw);
|
||||
pw.print("]");
|
||||
}
|
||||
}
|
||||
|
||||
boolean dumpActivities(FileDescriptor fd, PrintWriter pw, boolean dumpAll, boolean dumpClient,
|
||||
String dumpPackage) {
|
||||
boolean printed = false;
|
||||
@@ -3578,34 +3572,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
return printed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dumpDebug(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
final long token = proto.start(fieldId);
|
||||
dumpDebugInner(proto, ROOT_WINDOW_CONTAINER, logLevel);
|
||||
for (int displayNdx = 0; displayNdx < getChildCount(); ++displayNdx) {
|
||||
final DisplayContent displayContent = getChildAt(displayNdx);
|
||||
displayContent.dumpDebug(proto,
|
||||
com.android.server.am.ActivityStackSupervisorProto.DISPLAYS, logLevel);
|
||||
}
|
||||
mStackSupervisor.getKeyguardController().dumpDebug(proto, KEYGUARD_CONTROLLER);
|
||||
// TODO(b/111541062): Update tests to look for resumed activities on all displays
|
||||
final ActivityStack focusedStack = getTopDisplayFocusedStack();
|
||||
if (focusedStack != null) {
|
||||
proto.write(FOCUSED_STACK_ID, focusedStack.getRootTaskId());
|
||||
final ActivityRecord focusedActivity = focusedStack.getDisplay().getResumedActivity();
|
||||
if (focusedActivity != null) {
|
||||
focusedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
|
||||
}
|
||||
} else {
|
||||
proto.write(FOCUSED_STACK_ID, INVALID_STACK_ID);
|
||||
}
|
||||
proto.write(IS_HOME_RECENTS_COMPONENT,
|
||||
mStackSupervisor.mRecentTasks.isRecentsComponentHomeActivity(mCurrentUser));
|
||||
mService.getActivityStartController().dumpDebug(proto, PENDING_ACTIVITIES);
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
private final class SleepTokenImpl extends ActivityTaskManagerInternal.SleepToken {
|
||||
private final String mTag;
|
||||
private final long mAcquireTime;
|
||||
|
||||
@@ -61,17 +61,6 @@ import static android.view.SurfaceControl.METADATA_TASK_ID;
|
||||
|
||||
import static com.android.internal.policy.DecorView.DECOR_SHADOW_FOCUSED_HEIGHT_IN_DIP;
|
||||
import static com.android.internal.policy.DecorView.DECOR_SHADOW_UNFOCUSED_HEIGHT_IN_DIP;
|
||||
import static com.android.server.am.TaskRecordProto.ACTIVITIES;
|
||||
import static com.android.server.am.TaskRecordProto.ACTIVITY_TYPE;
|
||||
import static com.android.server.am.TaskRecordProto.FULLSCREEN;
|
||||
import static com.android.server.am.TaskRecordProto.LAST_NON_FULLSCREEN_BOUNDS;
|
||||
import static com.android.server.am.TaskRecordProto.MIN_HEIGHT;
|
||||
import static com.android.server.am.TaskRecordProto.MIN_WIDTH;
|
||||
import static com.android.server.am.TaskRecordProto.ORIG_ACTIVITY;
|
||||
import static com.android.server.am.TaskRecordProto.REAL_ACTIVITY;
|
||||
import static com.android.server.am.TaskRecordProto.RESIZE_MODE;
|
||||
import static com.android.server.am.TaskRecordProto.STACK_ID;
|
||||
import static com.android.server.am.TaskRecordProto.TASK;
|
||||
import static com.android.server.wm.ActivityRecord.STARTING_WINDOW_SHOWN;
|
||||
import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
|
||||
import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
|
||||
@@ -90,7 +79,6 @@ import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLAS
|
||||
import static com.android.server.wm.ActivityTaskManagerService.TAG_STACK;
|
||||
import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER;
|
||||
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
|
||||
import static com.android.server.wm.TaskProto.ACTIVITY;
|
||||
import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS;
|
||||
import static com.android.server.wm.TaskProto.FILLS_PARENT;
|
||||
import static com.android.server.wm.TaskProto.SURFACE_HEIGHT;
|
||||
@@ -3160,29 +3148,6 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO(proto-merge): Remove once protos for TaskRecord and Task are merged.
|
||||
void dumpDebugInnerTaskOnly(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final long token = proto.start(fieldId);
|
||||
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
|
||||
proto.write(TaskProto.ID, mTaskId);
|
||||
forAllActivities((r) -> {
|
||||
r.dumpDebug(proto, ACTIVITY);
|
||||
});
|
||||
proto.write(FILLS_PARENT, matchParentBounds());
|
||||
getBounds().dumpDebug(proto, TaskProto.BOUNDS);
|
||||
mOverrideDisplayedBounds.dumpDebug(proto, DISPLAYED_BOUNDS);
|
||||
if (mSurfaceControl != null) {
|
||||
proto.write(SURFACE_WIDTH, mSurfaceControl.getWidth());
|
||||
proto.write(SURFACE_HEIGHT, mSurfaceControl.getHeight());
|
||||
}
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
void dump(PrintWriter pw, String prefix, boolean dumpAll) {
|
||||
super.dump(pw, prefix, dumpAll);
|
||||
@@ -3395,43 +3360,6 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
return toString();
|
||||
}
|
||||
|
||||
void dumpDebugInner(ProtoOutputStream proto, long fieldId,
|
||||
@WindowTraceLogLevel int logLevel) {
|
||||
if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final long token = proto.start(fieldId);
|
||||
dumpDebugInnerTaskOnly(proto, TASK, logLevel);
|
||||
proto.write(com.android.server.am.TaskRecordProto.ID, mTaskId);
|
||||
|
||||
forAllActivities((r) -> {
|
||||
r.dumpDebug(proto, ACTIVITIES);
|
||||
});
|
||||
proto.write(STACK_ID, getRootTaskId());
|
||||
if (mLastNonFullscreenBounds != null) {
|
||||
mLastNonFullscreenBounds.dumpDebug(proto, LAST_NON_FULLSCREEN_BOUNDS);
|
||||
}
|
||||
if (realActivity != null) {
|
||||
proto.write(REAL_ACTIVITY, realActivity.flattenToShortString());
|
||||
}
|
||||
if (origActivity != null) {
|
||||
proto.write(ORIG_ACTIVITY, origActivity.flattenToShortString());
|
||||
}
|
||||
proto.write(ACTIVITY_TYPE, getActivityType());
|
||||
proto.write(RESIZE_MODE, mResizeMode);
|
||||
// TODO: Remove, no longer needed with windowingMode.
|
||||
proto.write(FULLSCREEN, matchParentBounds());
|
||||
|
||||
if (!matchParentBounds()) {
|
||||
final Rect bounds = getRequestedOverrideBounds();
|
||||
bounds.dumpDebug(proto, com.android.server.am.TaskRecordProto.BOUNDS);
|
||||
}
|
||||
proto.write(MIN_WIDTH, mMinWidth);
|
||||
proto.write(MIN_HEIGHT, mMinHeight);
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
/** @see #getNumRunningActivities(TaskActivitiesReport) */
|
||||
static class TaskActivitiesReport implements Consumer<ActivityRecord> {
|
||||
int numRunning;
|
||||
|
||||
@@ -5906,7 +5906,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
*/
|
||||
void dumpDebugLocked(ProtoOutputStream proto, @WindowTraceLogLevel int logLevel) {
|
||||
mPolicy.dumpDebug(proto, POLICY);
|
||||
mRoot.dumpDebugInner(proto, ROOT_WINDOW_CONTAINER, logLevel);
|
||||
mRoot.dumpDebug(proto, ROOT_WINDOW_CONTAINER, logLevel);
|
||||
final DisplayContent topFocusedDisplayContent = mRoot.getTopFocusedDisplayContent();
|
||||
if (topFocusedDisplayContent.mCurrentFocus != null) {
|
||||
topFocusedDisplayContent.mCurrentFocus.writeIdentifierToProto(proto, FOCUSED_WINDOW);
|
||||
|
||||
Reference in New Issue
Block a user