Pass AppOps result for PiP to Transition change.
Bug: 194272108 Test: Enable shell transitions, enter PIP Change-Id: Ic39840615df9c270187f9f810a6755fa22b585b7
This commit is contained in:
@@ -352,6 +352,7 @@ public final class TransitionInfo implements Parcelable {
|
||||
private final Rect mEndAbsBounds = new Rect();
|
||||
private final Point mEndRelOffset = new Point();
|
||||
private ActivityManager.RunningTaskInfo mTaskInfo = null;
|
||||
private boolean mAllowEnterPip;
|
||||
private int mStartRotation = ROTATION_UNDEFINED;
|
||||
private int mEndRotation = ROTATION_UNDEFINED;
|
||||
private int mRotationAnimation = ROTATION_ANIMATION_UNSPECIFIED;
|
||||
@@ -372,6 +373,7 @@ public final class TransitionInfo implements Parcelable {
|
||||
mEndAbsBounds.readFromParcel(in);
|
||||
mEndRelOffset.readFromParcel(in);
|
||||
mTaskInfo = in.readTypedObject(ActivityManager.RunningTaskInfo.CREATOR);
|
||||
mAllowEnterPip = in.readBoolean();
|
||||
mStartRotation = in.readInt();
|
||||
mEndRotation = in.readInt();
|
||||
mRotationAnimation = in.readInt();
|
||||
@@ -415,6 +417,11 @@ public final class TransitionInfo implements Parcelable {
|
||||
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. */
|
||||
public void setRotation(@Surface.Rotation int start, @Surface.Rotation int end) {
|
||||
mStartRotation = start;
|
||||
@@ -492,6 +499,10 @@ public final class TransitionInfo implements Parcelable {
|
||||
return mTaskInfo;
|
||||
}
|
||||
|
||||
public boolean getAllowEnterPip() {
|
||||
return mAllowEnterPip;
|
||||
}
|
||||
|
||||
public int getStartRotation() {
|
||||
return mStartRotation;
|
||||
}
|
||||
@@ -517,6 +528,7 @@ public final class TransitionInfo implements Parcelable {
|
||||
mEndAbsBounds.writeToParcel(dest, flags);
|
||||
mEndRelOffset.writeToParcel(dest, flags);
|
||||
dest.writeTypedObject(mTaskInfo, flags);
|
||||
dest.writeBoolean(mAllowEnterPip);
|
||||
dest.writeInt(mStartRotation);
|
||||
dest.writeInt(mEndRotation);
|
||||
dest.writeInt(mRotationAnimation);
|
||||
|
||||
@@ -216,7 +216,7 @@ public class RemoteAnimationTargetCompat {
|
||||
activityType = ACTIVITY_TYPE_UNDEFINED;
|
||||
}
|
||||
taskInfo = change.getTaskInfo();
|
||||
allowEnterPip = false; /* always false in shell-transition case */
|
||||
allowEnterPip = change.getAllowEnterPip();
|
||||
mStartLeash = null;
|
||||
rotationChange = change.getEndRotation() - change.getStartRotation();
|
||||
windowType = INVALID_WINDOW_TYPE;
|
||||
|
||||
@@ -1070,6 +1070,9 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
|
||||
task.fillTaskInfo(tinfo);
|
||||
change.setTaskInfo(tinfo);
|
||||
change.setRotationAnimation(getTaskRotationAnimation(task));
|
||||
final ActivityRecord topMostActivity = task.getTopMostActivity();
|
||||
change.setAllowEnterPip(topMostActivity != null
|
||||
&& topMostActivity.checkEnterPictureInPictureAppOpsState());
|
||||
}
|
||||
out.addChange(change);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user