Add dumpToProto to TaskFragment
Test: manual: go/winscope & click dump state Bug: 190684677 Change-Id: Ie77fce86348e15d40b963ef14b8dac9c9c5dfc82
This commit is contained in:
@@ -278,7 +278,7 @@ message PinnedTaskControllerProto {
|
||||
message TaskProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
optional WindowContainerProto window_container = 1 [deprecated=true];
|
||||
optional int32 id = 2;
|
||||
reserved 3; // activity
|
||||
optional bool fills_parent = 4;
|
||||
@@ -295,12 +295,12 @@ message TaskProto {
|
||||
optional string real_activity = 13;
|
||||
optional string orig_activity = 14;
|
||||
|
||||
optional int32 display_id = 15;
|
||||
optional int32 display_id = 15 [deprecated=true];
|
||||
optional int32 root_task_id = 16;
|
||||
optional int32 activity_type = 17 [(.android.typedef) = "android.app.WindowConfiguration.ActivityType"];
|
||||
optional int32 activity_type = 17 [(.android.typedef) = "android.app.WindowConfiguration.ActivityType", deprecated=true] ;
|
||||
optional int32 resize_mode = 18 [(.android.typedef) = "android.appwidget.AppWidgetProviderInfo.ResizeModeFlags"];
|
||||
optional int32 min_width = 19;
|
||||
optional int32 min_height = 20;
|
||||
optional int32 min_width = 19 [deprecated=true];
|
||||
optional int32 min_height = 20 [deprecated=true];
|
||||
|
||||
optional .android.graphics.RectProto adjusted_bounds = 21;
|
||||
optional .android.graphics.RectProto last_non_fullscreen_bounds = 22;
|
||||
@@ -312,6 +312,18 @@ message TaskProto {
|
||||
optional bool created_by_organizer = 28;
|
||||
optional string affinity = 29;
|
||||
optional bool has_child_pip_activity = 30;
|
||||
optional TaskFragmentProto task_fragment = 31;
|
||||
}
|
||||
|
||||
/* represents TaskFragment */
|
||||
message TaskFragmentProto {
|
||||
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
|
||||
|
||||
optional WindowContainerProto window_container = 1;
|
||||
optional int32 display_id = 2;
|
||||
optional int32 activity_type = 3 [(.android.typedef) = "android.app.WindowConfiguration.ActivityType"];
|
||||
optional int32 min_width = 4;
|
||||
optional int32 min_height = 5;
|
||||
}
|
||||
|
||||
/* represents ActivityRecordProto */
|
||||
@@ -493,6 +505,8 @@ message WindowContainerChildProto {
|
||||
optional WindowTokenProto window_token = 7;
|
||||
/* represents a WindowState child */
|
||||
optional WindowStateProto window = 8;
|
||||
/* represents a WindowState child */
|
||||
optional TaskFragmentProto task_fragment = 9;
|
||||
}
|
||||
|
||||
/* represents ConfigurationContainer */
|
||||
|
||||
@@ -109,16 +109,12 @@ import static com.android.server.wm.LockTaskController.LOCK_TASK_AUTH_LAUNCHABLE
|
||||
import static com.android.server.wm.LockTaskController.LOCK_TASK_AUTH_LAUNCHABLE_PRIV;
|
||||
import static com.android.server.wm.LockTaskController.LOCK_TASK_AUTH_PINNABLE;
|
||||
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_RECENTS;
|
||||
import static com.android.server.wm.TaskProto.ACTIVITY_TYPE;
|
||||
import static com.android.server.wm.TaskProto.AFFINITY;
|
||||
import static com.android.server.wm.TaskProto.BOUNDS;
|
||||
import static com.android.server.wm.TaskProto.CREATED_BY_ORGANIZER;
|
||||
import static com.android.server.wm.TaskProto.DISPLAY_ID;
|
||||
import static com.android.server.wm.TaskProto.FILLS_PARENT;
|
||||
import static com.android.server.wm.TaskProto.HAS_CHILD_PIP_ACTIVITY;
|
||||
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;
|
||||
@@ -126,7 +122,7 @@ 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.WINDOW_CONTAINER;
|
||||
import static com.android.server.wm.TaskProto.TASK_FRAGMENT;
|
||||
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;
|
||||
@@ -2237,11 +2233,6 @@ class Task extends TaskFragment {
|
||||
}
|
||||
}
|
||||
|
||||
int getDisplayId() {
|
||||
final DisplayContent dc = getDisplayContent();
|
||||
return dc != null ? dc.mDisplayId : INVALID_DISPLAY;
|
||||
}
|
||||
|
||||
/** @return Id of root task. */
|
||||
int getRootTaskId() {
|
||||
return getRootTask().mTaskId;
|
||||
@@ -6059,10 +6050,8 @@ class Task extends TaskFragment {
|
||||
}
|
||||
|
||||
final long token = proto.start(fieldId);
|
||||
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
|
||||
|
||||
proto.write(TaskProto.ID, mTaskId);
|
||||
proto.write(DISPLAY_ID, getDisplayId());
|
||||
proto.write(ROOT_TASK_ID, getRootTaskId());
|
||||
|
||||
if (getTopResumedActivity() != null) {
|
||||
@@ -6074,11 +6063,7 @@ class Task extends TaskFragment {
|
||||
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, BOUNDS);
|
||||
|
||||
@@ -6095,6 +6080,8 @@ class Task extends TaskFragment {
|
||||
proto.write(AFFINITY, affinity);
|
||||
proto.write(HAS_CHILD_PIP_ACTIVITY, mChildPipActivity != null);
|
||||
|
||||
super.dumpDebug(proto, TASK_FRAGMENT, logLevel);
|
||||
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.server.wm;
|
||||
|
||||
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
|
||||
import static android.app.WindowConfiguration.ROTATION_UNDEFINED;
|
||||
@@ -30,6 +31,7 @@ import static android.content.pm.ActivityInfo.FLAG_RESUME_WHILE_PAUSING;
|
||||
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
|
||||
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
|
||||
import static android.content.res.Configuration.ORIENTATION_UNDEFINED;
|
||||
import static android.os.UserHandle.USER_NULL;
|
||||
import static android.view.Display.INVALID_DISPLAY;
|
||||
import static android.view.WindowManager.TRANSIT_CLOSE;
|
||||
import static android.view.WindowManager.TRANSIT_FLAG_OPEN_BEHIND;
|
||||
@@ -51,6 +53,15 @@ import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_USER_
|
||||
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
|
||||
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
|
||||
import static com.android.server.wm.ActivityTaskSupervisor.PRESERVE_WINDOWS;
|
||||
import static com.android.server.wm.IdentifierProto.HASH_CODE;
|
||||
import static com.android.server.wm.IdentifierProto.TITLE;
|
||||
import static com.android.server.wm.IdentifierProto.USER_ID;
|
||||
import static com.android.server.wm.TaskFragmentProto.ACTIVITY_TYPE;
|
||||
import static com.android.server.wm.TaskFragmentProto.DISPLAY_ID;
|
||||
import static com.android.server.wm.TaskFragmentProto.MIN_HEIGHT;
|
||||
import static com.android.server.wm.TaskFragmentProto.MIN_WIDTH;
|
||||
import static com.android.server.wm.TaskFragmentProto.WINDOW_CONTAINER;
|
||||
import static com.android.server.wm.WindowContainerChildProto.TASK_FRAGMENT;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
@@ -68,6 +79,7 @@ import android.graphics.Rect;
|
||||
import android.os.RemoteException;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Slog;
|
||||
import android.util.proto.ProtoOutputStream;
|
||||
import android.view.DisplayInfo;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
@@ -1457,7 +1469,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {
|
||||
}
|
||||
|
||||
private int getTaskId() {
|
||||
return getTask().mTaskId;
|
||||
return getTask() != null ? getTask().mTaskId : INVALID_TASK_ID;
|
||||
}
|
||||
|
||||
private void resolveLeafOnlyOverrideConfigs(Configuration newParentConfig,
|
||||
@@ -1929,4 +1941,39 @@ class TaskFragment extends WindowContainer<WindowContainer> {
|
||||
pw.print(prefix); pw.print("* "); pw.println(this);
|
||||
pw.println(prefix + " mBounds=" + getRequestedOverrideBounds());
|
||||
}
|
||||
|
||||
@Override
|
||||
void writeIdentifierToProto(ProtoOutputStream proto, long fieldId) {
|
||||
final long token = proto.start(fieldId);
|
||||
proto.write(HASH_CODE, System.identityHashCode(this));
|
||||
final ActivityRecord topActivity = topRunningActivity();
|
||||
proto.write(USER_ID, topActivity != null ? topActivity.mUserId : USER_NULL);
|
||||
proto.write(TITLE, topActivity != null ? topActivity.intent.getComponent()
|
||||
.flattenToShortString() : "TaskFragment");
|
||||
proto.end(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
long getProtoFieldId() {
|
||||
return TASK_FRAGMENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dumpDebug(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(DISPLAY_ID, getDisplayId());
|
||||
proto.write(ACTIVITY_TYPE, getActivityType());
|
||||
proto.write(MIN_WIDTH, mMinWidth);
|
||||
proto.write(MIN_HEIGHT, mMinHeight);
|
||||
|
||||
proto.end(token);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user