Merge "Expose the full task info with the remote animation target" into sc-dev

This commit is contained in:
Winson Chung
2021-04-01 03:56:55 +00:00
committed by Android (Google) Code Review
4 changed files with 17 additions and 18 deletions

View File

@@ -34,7 +34,8 @@ import static android.view.RemoteAnimationTargetProto.WINDOW_CONFIGURATION;
import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE; import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
import android.annotation.IntDef; import android.annotation.IntDef;
import android.app.PictureInPictureParams; import android.app.ActivityManager;
import android.app.TaskInfo;
import android.app.WindowConfiguration; import android.app.WindowConfiguration;
import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage;
import android.graphics.Point; import android.graphics.Point;
@@ -189,12 +190,11 @@ public class RemoteAnimationTarget implements Parcelable {
public boolean isNotInRecents; public boolean isNotInRecents;
/** /**
* {@link PictureInPictureParams} to allow launcher to determine if an app should * {@link TaskInfo} to allow the controller to identify information about the task.
* automatically enter PiP on swiping up to home.
* *
* TODO: add this to proto dump * TODO: add this to proto dump
*/ */
public PictureInPictureParams pictureInPictureParams; public ActivityManager.RunningTaskInfo taskInfo;
/** /**
* The {@link android.view.WindowManager.LayoutParams.WindowType} of this window. It's only used * The {@link android.view.WindowManager.LayoutParams.WindowType} of this window. It's only used
@@ -206,11 +206,10 @@ public class RemoteAnimationTarget implements Parcelable {
Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position, Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position,
Rect localBounds, Rect screenSpaceBounds, Rect localBounds, Rect screenSpaceBounds,
WindowConfiguration windowConfig, boolean isNotInRecents, WindowConfiguration windowConfig, boolean isNotInRecents,
SurfaceControl startLeash, Rect startBounds, SurfaceControl startLeash, Rect startBounds, ActivityManager.RunningTaskInfo taskInfo) {
PictureInPictureParams pictureInPictureParams) {
this(taskId, mode, leash, isTranslucent, clipRect, contentInsets, prefixOrderIndex, this(taskId, mode, leash, isTranslucent, clipRect, contentInsets, prefixOrderIndex,
position, localBounds, screenSpaceBounds, windowConfig, isNotInRecents, startLeash, position, localBounds, screenSpaceBounds, windowConfig, isNotInRecents, startLeash,
startBounds, pictureInPictureParams, INVALID_WINDOW_TYPE); startBounds, taskInfo, INVALID_WINDOW_TYPE);
} }
public RemoteAnimationTarget(int taskId, int mode, SurfaceControl leash, boolean isTranslucent, public RemoteAnimationTarget(int taskId, int mode, SurfaceControl leash, boolean isTranslucent,
@@ -218,7 +217,7 @@ public class RemoteAnimationTarget implements Parcelable {
Rect localBounds, Rect screenSpaceBounds, Rect localBounds, Rect screenSpaceBounds,
WindowConfiguration windowConfig, boolean isNotInRecents, WindowConfiguration windowConfig, boolean isNotInRecents,
SurfaceControl startLeash, Rect startBounds, SurfaceControl startLeash, Rect startBounds,
PictureInPictureParams pictureInPictureParams, ActivityManager.RunningTaskInfo taskInfo,
@WindowManager.LayoutParams.WindowType int windowType) { @WindowManager.LayoutParams.WindowType int windowType) {
this.mode = mode; this.mode = mode;
this.taskId = taskId; this.taskId = taskId;
@@ -235,7 +234,7 @@ public class RemoteAnimationTarget implements Parcelable {
this.isNotInRecents = isNotInRecents; this.isNotInRecents = isNotInRecents;
this.startLeash = startLeash; this.startLeash = startLeash;
this.startBounds = startBounds == null ? null : new Rect(startBounds); this.startBounds = startBounds == null ? null : new Rect(startBounds);
this.pictureInPictureParams = pictureInPictureParams; this.taskInfo = taskInfo;
this.windowType = windowType; this.windowType = windowType;
} }
@@ -255,7 +254,7 @@ public class RemoteAnimationTarget implements Parcelable {
isNotInRecents = in.readBoolean(); isNotInRecents = in.readBoolean();
startLeash = in.readTypedObject(SurfaceControl.CREATOR); startLeash = in.readTypedObject(SurfaceControl.CREATOR);
startBounds = in.readTypedObject(Rect.CREATOR); startBounds = in.readTypedObject(Rect.CREATOR);
pictureInPictureParams = in.readTypedObject(PictureInPictureParams.CREATOR); taskInfo = in.readTypedObject(ActivityManager.RunningTaskInfo.CREATOR);
windowType = in.readInt(); windowType = in.readInt();
} }
@@ -281,7 +280,7 @@ public class RemoteAnimationTarget implements Parcelable {
dest.writeBoolean(isNotInRecents); dest.writeBoolean(isNotInRecents);
dest.writeTypedObject(startLeash, 0 /* flags */); dest.writeTypedObject(startLeash, 0 /* flags */);
dest.writeTypedObject(startBounds, 0 /* flags */); dest.writeTypedObject(startBounds, 0 /* flags */);
dest.writeTypedObject(pictureInPictureParams, 0 /* flags */); dest.writeTypedObject(taskInfo, 0 /* flags */);
dest.writeInt(windowType); dest.writeInt(windowType);
} }
@@ -299,7 +298,7 @@ public class RemoteAnimationTarget implements Parcelable {
pw.println(); pw.println();
pw.print(prefix); pw.print("windowConfiguration="); pw.println(windowConfiguration); pw.print(prefix); pw.print("windowConfiguration="); pw.println(windowConfiguration);
pw.print(prefix); pw.print("leash="); pw.println(leash); pw.print(prefix); pw.print("leash="); pw.println(leash);
pw.print(prefix); pw.print("pictureInPictureParams="); pw.println(pictureInPictureParams); pw.print(prefix); pw.print("taskInfo="); pw.println(taskInfo);
pw.print(prefix); pw.print("windowType="); pw.print(windowType); pw.print(prefix); pw.print("windowType="); pw.print(windowType);
} }

View File

@@ -18,7 +18,7 @@ package com.android.systemui.shared.system;
import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE; import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
import android.app.PictureInPictureParams; import android.app.ActivityManager;
import android.app.WindowConfiguration; import android.app.WindowConfiguration;
import android.graphics.Point; import android.graphics.Point;
import android.graphics.Rect; import android.graphics.Rect;
@@ -57,7 +57,7 @@ public class RemoteAnimationTargetCompat {
public final Rect screenSpaceBounds; public final Rect screenSpaceBounds;
public final boolean isNotInRecents; public final boolean isNotInRecents;
public final Rect contentInsets; public final Rect contentInsets;
public final PictureInPictureParams pictureInPictureParams; public final ActivityManager.RunningTaskInfo taskInfo;
public final int rotationChange; public final int rotationChange;
public final int windowType; public final int windowType;
@@ -77,7 +77,7 @@ public class RemoteAnimationTargetCompat {
isNotInRecents = app.isNotInRecents; isNotInRecents = app.isNotInRecents;
contentInsets = app.contentInsets; contentInsets = app.contentInsets;
activityType = app.windowConfiguration.getActivityType(); activityType = app.windowConfiguration.getActivityType();
pictureInPictureParams = app.pictureInPictureParams; taskInfo = app.taskInfo;
rotationChange = 0; rotationChange = 0;
mStartLeash = app.startLeash; mStartLeash = app.startLeash;
@@ -119,7 +119,7 @@ public class RemoteAnimationTargetCompat {
isNotInRecents = true; isNotInRecents = true;
activityType = ACTIVITY_TYPE_UNDEFINED; activityType = ACTIVITY_TYPE_UNDEFINED;
} }
pictureInPictureParams = null; taskInfo = change.getTaskInfo();
mStartLeash = null; mStartLeash = null;
rotationChange = change.getEndRotation() - change.getStartRotation(); rotationChange = change.getEndRotation() - change.getStartRotation();
windowType = INVALID_WINDOW_TYPE; windowType = INVALID_WINDOW_TYPE;

View File

@@ -8507,7 +8507,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
record.mAdapter.mRootTaskBounds, task.getWindowConfiguration(), record.mAdapter.mRootTaskBounds, task.getWindowConfiguration(),
false /*isNotInRecents*/, false /*isNotInRecents*/,
record.mThumbnailAdapter != null ? record.mThumbnailAdapter.mCapturedLeash : null, record.mThumbnailAdapter != null ? record.mThumbnailAdapter.mCapturedLeash : null,
record.mStartBounds, task.getPictureInPictureParams()); record.mStartBounds, task.getTaskInfo());
} }
@Override @Override

View File

@@ -1126,7 +1126,7 @@ public class RecentsAnimationController implements DeathRecipient {
!topApp.fillsParent(), new Rect(), !topApp.fillsParent(), new Rect(),
insets, mTask.getPrefixOrderIndex(), new Point(mBounds.left, mBounds.top), insets, mTask.getPrefixOrderIndex(), new Point(mBounds.left, mBounds.top),
mLocalBounds, mBounds, mTask.getWindowConfiguration(), mLocalBounds, mBounds, mTask.getWindowConfiguration(),
mIsRecentTaskInvisible, null, null, mTask.getPictureInPictureParams()); mIsRecentTaskInvisible, null, null, mTask.getTaskInfo());
return mTarget; return mTarget;
} }