Merge "Pass AppOps result for PiP to Transition change." into sc-v2-dev am: b37ecaa4dc

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15484573

Change-Id: Ib9f1a11fea9f91b42be19eb5d3f43a6cd581c9c0
This commit is contained in:
Ben Lin
2021-08-10 07:20:41 +00:00
committed by Automerger Merge Worker
3 changed files with 16 additions and 1 deletions

View File

@@ -352,6 +352,7 @@ public final class TransitionInfo implements Parcelable {
private final Rect mEndAbsBounds = new Rect(); private final Rect mEndAbsBounds = new Rect();
private final Point mEndRelOffset = new Point(); private final Point mEndRelOffset = new Point();
private ActivityManager.RunningTaskInfo mTaskInfo = null; private ActivityManager.RunningTaskInfo mTaskInfo = null;
private boolean mAllowEnterPip;
private int mStartRotation = ROTATION_UNDEFINED; private int mStartRotation = ROTATION_UNDEFINED;
private int mEndRotation = ROTATION_UNDEFINED; private int mEndRotation = ROTATION_UNDEFINED;
private int mRotationAnimation = ROTATION_ANIMATION_UNSPECIFIED; private int mRotationAnimation = ROTATION_ANIMATION_UNSPECIFIED;
@@ -372,6 +373,7 @@ public final class TransitionInfo implements Parcelable {
mEndAbsBounds.readFromParcel(in); mEndAbsBounds.readFromParcel(in);
mEndRelOffset.readFromParcel(in); mEndRelOffset.readFromParcel(in);
mTaskInfo = in.readTypedObject(ActivityManager.RunningTaskInfo.CREATOR); mTaskInfo = in.readTypedObject(ActivityManager.RunningTaskInfo.CREATOR);
mAllowEnterPip = in.readBoolean();
mStartRotation = in.readInt(); mStartRotation = in.readInt();
mEndRotation = in.readInt(); mEndRotation = in.readInt();
mRotationAnimation = in.readInt(); mRotationAnimation = in.readInt();
@@ -415,6 +417,11 @@ public final class TransitionInfo implements Parcelable {
mTaskInfo = taskInfo; mTaskInfo = taskInfo;
} }
/** Sets the allowEnterPip flag which represents AppOpsManager check on PiP permission */
public void setAllowEnterPip(boolean allowEnterPip) {
mAllowEnterPip = allowEnterPip;
}
/** Sets the start and end rotation of this container. */ /** Sets the start and end rotation of this container. */
public void setRotation(@Surface.Rotation int start, @Surface.Rotation int end) { public void setRotation(@Surface.Rotation int start, @Surface.Rotation int end) {
mStartRotation = start; mStartRotation = start;
@@ -492,6 +499,10 @@ public final class TransitionInfo implements Parcelable {
return mTaskInfo; return mTaskInfo;
} }
public boolean getAllowEnterPip() {
return mAllowEnterPip;
}
public int getStartRotation() { public int getStartRotation() {
return mStartRotation; return mStartRotation;
} }
@@ -517,6 +528,7 @@ public final class TransitionInfo implements Parcelable {
mEndAbsBounds.writeToParcel(dest, flags); mEndAbsBounds.writeToParcel(dest, flags);
mEndRelOffset.writeToParcel(dest, flags); mEndRelOffset.writeToParcel(dest, flags);
dest.writeTypedObject(mTaskInfo, flags); dest.writeTypedObject(mTaskInfo, flags);
dest.writeBoolean(mAllowEnterPip);
dest.writeInt(mStartRotation); dest.writeInt(mStartRotation);
dest.writeInt(mEndRotation); dest.writeInt(mEndRotation);
dest.writeInt(mRotationAnimation); dest.writeInt(mRotationAnimation);

View File

@@ -216,7 +216,7 @@ public class RemoteAnimationTargetCompat {
activityType = ACTIVITY_TYPE_UNDEFINED; activityType = ACTIVITY_TYPE_UNDEFINED;
} }
taskInfo = change.getTaskInfo(); taskInfo = change.getTaskInfo();
allowEnterPip = false; /* always false in shell-transition case */ allowEnterPip = change.getAllowEnterPip();
mStartLeash = null; mStartLeash = null;
rotationChange = change.getEndRotation() - change.getStartRotation(); rotationChange = change.getEndRotation() - change.getStartRotation();
windowType = INVALID_WINDOW_TYPE; windowType = INVALID_WINDOW_TYPE;

View File

@@ -1070,6 +1070,9 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
task.fillTaskInfo(tinfo); task.fillTaskInfo(tinfo);
change.setTaskInfo(tinfo); change.setTaskInfo(tinfo);
change.setRotationAnimation(getTaskRotationAnimation(task)); change.setRotationAnimation(getTaskRotationAnimation(task));
final ActivityRecord topMostActivity = task.getTopMostActivity();
change.setAllowEnterPip(topMostActivity != null
&& topMostActivity.checkEnterPictureInPictureAppOpsState());
} }
out.addChange(change); out.addChange(change);
} }