summaryrefslogtreecommitdiff
path: root/core/java/android/window/PictureInPictureSurfaceTransaction.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/window/PictureInPictureSurfaceTransaction.java')
-rw-r--r--core/java/android/window/PictureInPictureSurfaceTransaction.java30
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);
}
}
}