diff options
Diffstat (limited to 'core/java/android/window/PictureInPictureSurfaceTransaction.java')
| -rw-r--r-- | core/java/android/window/PictureInPictureSurfaceTransaction.java | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/core/java/android/window/PictureInPictureSurfaceTransaction.java b/core/java/android/window/PictureInPictureSurfaceTransaction.java index 2bf2f3193789..0a751c38cfff 100644 --- a/core/java/android/window/PictureInPictureSurfaceTransaction.java +++ b/core/java/android/window/PictureInPictureSurfaceTransaction.java @@ -47,6 +47,8 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { public final float mCornerRadius; + public final float mShadowRadius; + private final Rect mWindowCrop; private PictureInPictureSurfaceTransaction(Parcel in) { @@ -56,11 +58,12 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { in.readFloatArray(mFloat9); mRotation = in.readFloat(); mCornerRadius = in.readFloat(); + mShadowRadius = in.readFloat(); mWindowCrop = in.readTypedObject(Rect.CREATOR); } private PictureInPictureSurfaceTransaction(float alpha, @Nullable PointF position, - @Nullable float[] float9, float rotation, float cornerRadius, + @Nullable float[] float9, float rotation, float cornerRadius, float shadowRadius, @Nullable Rect windowCrop) { mAlpha = alpha; mPosition = position; @@ -73,12 +76,14 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { mRotation = rotation; } mCornerRadius = cornerRadius; + mShadowRadius = shadowRadius; mWindowCrop = (windowCrop == null) ? null : new Rect(windowCrop); } public PictureInPictureSurfaceTransaction(PictureInPictureSurfaceTransaction other) { this(other.mAlpha, other.mPosition, - other.mFloat9, other.mRotation, other.mCornerRadius, other.mWindowCrop); + other.mFloat9, other.mRotation, other.mCornerRadius, other.mShadowRadius, + other.mWindowCrop); } /** @return {@link Matrix} from {@link #mFloat9} */ @@ -93,6 +98,11 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { return mCornerRadius > 0; } + /** @return {@code true} if this transaction contains setting shadow radius. */ + public boolean hasShadowRadiusSet() { + return mShadowRadius > 0; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -103,13 +113,14 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { && Arrays.equals(mFloat9, that.mFloat9) && Objects.equals(mRotation, that.mRotation) && Objects.equals(mCornerRadius, that.mCornerRadius) + && Objects.equals(mShadowRadius, that.mShadowRadius) && Objects.equals(mWindowCrop, that.mWindowCrop); } @Override public int hashCode() { return Objects.hash(mAlpha, mPosition, Arrays.hashCode(mFloat9), - mRotation, mCornerRadius, mWindowCrop); + mRotation, mCornerRadius, mShadowRadius, mWindowCrop); } @Override @@ -124,6 +135,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { out.writeFloatArray(mFloat9); out.writeFloat(mRotation); out.writeFloat(mCornerRadius); + out.writeFloat(mShadowRadius); out.writeTypedObject(mWindowCrop, 0 /* flags */); } @@ -136,6 +148,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { + " matrix=" + matrix.toShortString() + " rotation=" + mRotation + " cornerRadius=" + mCornerRadius + + " shadowRadius=" + mShadowRadius + " crop=" + mWindowCrop + ")"; } @@ -156,6 +169,9 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { if (surfaceTransaction.hasCornerRadiusSet()) { tx.setCornerRadius(surfaceControl, surfaceTransaction.mCornerRadius); } + if (surfaceTransaction.hasShadowRadiusSet()) { + tx.setShadowRadius(surfaceControl, surfaceTransaction.mShadowRadius); + } if (surfaceTransaction.mAlpha != NOT_SET) { tx.setAlpha(surfaceControl, surfaceTransaction.mAlpha); } @@ -178,6 +194,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { private float[] mFloat9; private float mRotation; private float mCornerRadius = NOT_SET; + private float mShadowRadius = NOT_SET; private Rect mWindowCrop; public Builder setAlpha(float alpha) { @@ -201,6 +218,11 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { return this; } + public Builder setShadowRadius(float shadowRadius) { + mShadowRadius = shadowRadius; + return this; + } + public Builder setWindowCrop(@NonNull Rect windowCrop) { mWindowCrop = new Rect(windowCrop); return this; @@ -208,7 +230,7 @@ public final class PictureInPictureSurfaceTransaction implements Parcelable { public PictureInPictureSurfaceTransaction build() { return new PictureInPictureSurfaceTransaction(mAlpha, mPosition, - mFloat9, mRotation, mCornerRadius, mWindowCrop); + mFloat9, mRotation, mCornerRadius, mShadowRadius, mWindowCrop); } } } |
