Loading core/java/android/window/PictureInPictureSurfaceTransaction.java +21 −2 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { private final Rect mWindowCrop; private boolean mShouldDisableCanAffectSystemUiFlags; private PictureInPictureSurfaceTransaction(Parcel in) { mAlpha = in.readFloat(); mPosition = in.readTypedObject(PointF.CREATOR); Loading @@ -60,6 +62,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { mCornerRadius = in.readFloat(); mShadowRadius = in.readFloat(); mWindowCrop = in.readTypedObject(Rect.CREATOR); mShouldDisableCanAffectSystemUiFlags = in.readBoolean(); } private PictureInPictureSurfaceTransaction(float alpha, @Nullable PointF position, Loading @@ -84,6 +87,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { this(other.mAlpha, other.mPosition, other.mFloat9, other.mRotation, other.mCornerRadius, other.mShadowRadius, other.mWindowCrop); mShouldDisableCanAffectSystemUiFlags = other.mShouldDisableCanAffectSystemUiFlags; } /** @return {@link Matrix} from {@link #mFloat9} */ Loading @@ -103,6 +107,16 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { return mShadowRadius > 0; } /** Sets the internal {@link #mShouldDisableCanAffectSystemUiFlags}. */ public void setShouldDisableCanAffectSystemUiFlags(boolean shouldDisable) { mShouldDisableCanAffectSystemUiFlags = shouldDisable; } /** @return {@code true} if we should disable Task#setCanAffectSystemUiFlags. */ public boolean getShouldDisableCanAffectSystemUiFlags() { return mShouldDisableCanAffectSystemUiFlags; } @Override public boolean equals(Object o) { if (this == o) return true; Loading @@ -114,13 +128,16 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { && Objects.equals(mRotation, that.mRotation) && Objects.equals(mCornerRadius, that.mCornerRadius) && Objects.equals(mShadowRadius, that.mShadowRadius) && Objects.equals(mWindowCrop, that.mWindowCrop); && Objects.equals(mWindowCrop, that.mWindowCrop) && mShouldDisableCanAffectSystemUiFlags == that.mShouldDisableCanAffectSystemUiFlags; } @Override public int hashCode() { return Objects.hash(mAlpha, mPosition, Arrays.hashCode(mFloat9), mRotation, mCornerRadius, mShadowRadius, mWindowCrop); mRotation, mCornerRadius, mShadowRadius, mWindowCrop, mShouldDisableCanAffectSystemUiFlags); } @Override Loading @@ -137,6 +154,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { out.writeFloat(mCornerRadius); out.writeFloat(mShadowRadius); out.writeTypedObject(mWindowCrop, 0 /* flags */); out.writeBoolean(mShouldDisableCanAffectSystemUiFlags); } @Override Loading @@ -150,6 +168,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { + " cornerRadius=" + mCornerRadius + " shadowRadius=" + mShadowRadius + " crop=" + mWindowCrop + " shouldDisableCanAffectSystemUiFlags" + mShouldDisableCanAffectSystemUiFlags + ")"; } Loading services/core/java/com/android/server/wm/RecentsAnimationController.java +6 −6 Original line number Diff line number Diff line Loading @@ -1335,16 +1335,16 @@ public class RecentsAnimationController implements DeathRecipient { mDisplayContent.mPinnedTaskController.setEnterPipTransaction( mFinishTransaction); } mFinishTransaction = null; mFinishOverlay = null; pendingTransaction.apply(); // In the case where we are transferring the transform to the task in preparation // for entering PIP, we disable the task being able to affect sysui flags otherwise // it may cause a flash if (mTask.getActivityType() != mTargetActivityType) { if (mTask.getActivityType() != mTargetActivityType && mFinishTransaction.getShouldDisableCanAffectSystemUiFlags()) { mTask.setCanAffectSystemUiFlags(false); } mFinishTransaction = null; mFinishOverlay = null; pendingTransaction.apply(); } else if (!mTask.isAttached()) { // Apply the task's pending transaction in case it is detached and its transaction // is not reachable. Loading Loading
core/java/android/window/PictureInPictureSurfaceTransaction.java +21 −2 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { private final Rect mWindowCrop; private boolean mShouldDisableCanAffectSystemUiFlags; private PictureInPictureSurfaceTransaction(Parcel in) { mAlpha = in.readFloat(); mPosition = in.readTypedObject(PointF.CREATOR); Loading @@ -60,6 +62,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { mCornerRadius = in.readFloat(); mShadowRadius = in.readFloat(); mWindowCrop = in.readTypedObject(Rect.CREATOR); mShouldDisableCanAffectSystemUiFlags = in.readBoolean(); } private PictureInPictureSurfaceTransaction(float alpha, @Nullable PointF position, Loading @@ -84,6 +87,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { this(other.mAlpha, other.mPosition, other.mFloat9, other.mRotation, other.mCornerRadius, other.mShadowRadius, other.mWindowCrop); mShouldDisableCanAffectSystemUiFlags = other.mShouldDisableCanAffectSystemUiFlags; } /** @return {@link Matrix} from {@link #mFloat9} */ Loading @@ -103,6 +107,16 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { return mShadowRadius > 0; } /** Sets the internal {@link #mShouldDisableCanAffectSystemUiFlags}. */ public void setShouldDisableCanAffectSystemUiFlags(boolean shouldDisable) { mShouldDisableCanAffectSystemUiFlags = shouldDisable; } /** @return {@code true} if we should disable Task#setCanAffectSystemUiFlags. */ public boolean getShouldDisableCanAffectSystemUiFlags() { return mShouldDisableCanAffectSystemUiFlags; } @Override public boolean equals(Object o) { if (this == o) return true; Loading @@ -114,13 +128,16 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { && Objects.equals(mRotation, that.mRotation) && Objects.equals(mCornerRadius, that.mCornerRadius) && Objects.equals(mShadowRadius, that.mShadowRadius) && Objects.equals(mWindowCrop, that.mWindowCrop); && Objects.equals(mWindowCrop, that.mWindowCrop) && mShouldDisableCanAffectSystemUiFlags == that.mShouldDisableCanAffectSystemUiFlags; } @Override public int hashCode() { return Objects.hash(mAlpha, mPosition, Arrays.hashCode(mFloat9), mRotation, mCornerRadius, mShadowRadius, mWindowCrop); mRotation, mCornerRadius, mShadowRadius, mWindowCrop, mShouldDisableCanAffectSystemUiFlags); } @Override Loading @@ -137,6 +154,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { out.writeFloat(mCornerRadius); out.writeFloat(mShadowRadius); out.writeTypedObject(mWindowCrop, 0 /* flags */); out.writeBoolean(mShouldDisableCanAffectSystemUiFlags); } @Override Loading @@ -150,6 +168,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { + " cornerRadius=" + mCornerRadius + " shadowRadius=" + mShadowRadius + " crop=" + mWindowCrop + " shouldDisableCanAffectSystemUiFlags" + mShouldDisableCanAffectSystemUiFlags + ")"; } Loading
services/core/java/com/android/server/wm/RecentsAnimationController.java +6 −6 Original line number Diff line number Diff line Loading @@ -1335,16 +1335,16 @@ public class RecentsAnimationController implements DeathRecipient { mDisplayContent.mPinnedTaskController.setEnterPipTransaction( mFinishTransaction); } mFinishTransaction = null; mFinishOverlay = null; pendingTransaction.apply(); // In the case where we are transferring the transform to the task in preparation // for entering PIP, we disable the task being able to affect sysui flags otherwise // it may cause a flash if (mTask.getActivityType() != mTargetActivityType) { if (mTask.getActivityType() != mTargetActivityType && mFinishTransaction.getShouldDisableCanAffectSystemUiFlags()) { mTask.setCanAffectSystemUiFlags(false); } mFinishTransaction = null; mFinishOverlay = null; pendingTransaction.apply(); } else if (!mTask.isAttached()) { // Apply the task's pending transaction in case it is detached and its transaction // is not reachable. Loading