diff options
| author | Hongwei Wang <hwwang@google.com> | 2022-03-28 13:49:45 -0700 |
|---|---|---|
| committer | Hongwei Wang <hwwang@google.com> | 2022-03-28 16:43:46 -0700 |
| commit | 2708c3a74d04c756b6e7e4ae85bdef05a37589e3 (patch) | |
| tree | 2c4c8eff80f22691d04a55077043ce1fab0982cd /core/java | |
| parent | 53e39e5d061064fdf34eccabc7b3c6bc29a1a703 (diff) | |
Handle PiP shadow radius in WMShell
Deprecate also the shadow radius for PiP in Task
Bug: 206508708
Test: Verify the PiP enter/exit/move/resize transitions
Change-Id: I8ff83dd4e626a3455373fed6c908cf131ecae8fe
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/WindowConfiguration.java | 3 | ||||
| -rw-r--r-- | core/java/android/window/PictureInPictureSurfaceTransaction.java | 30 | ||||
| -rw-r--r-- | core/java/com/android/internal/policy/DecorView.java | 5 |
3 files changed, 26 insertions, 12 deletions
diff --git a/core/java/android/app/WindowConfiguration.java b/core/java/android/app/WindowConfiguration.java index 5c1ab3879487..e502ba03bf8e 100644 --- a/core/java/android/app/WindowConfiguration.java +++ b/core/java/android/app/WindowConfiguration.java @@ -222,9 +222,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu }) public @interface WindowConfig {} - /** @hide */ - public static final int PINNED_WINDOWING_MODE_ELEVATION_IN_DIP = 5; - @UnsupportedAppUsage public WindowConfiguration() { unset(); 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); } } } diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java index 89ac72255306..13ebe3c4dbb7 100644 --- a/core/java/com/android/internal/policy/DecorView.java +++ b/core/java/com/android/internal/policy/DecorView.java @@ -16,9 +16,7 @@ package com.android.internal.policy; -import static android.app.WindowConfiguration.PINNED_WINDOWING_MODE_ELEVATION_IN_DIP; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; -import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static android.os.Build.VERSION_CODES.M; import static android.os.Build.VERSION_CODES.N; @@ -2549,9 +2547,6 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind // Convert the DP elevation into physical pixels. elevation = dipToPx(elevation); mElevationAdjustedForStack = true; - } else if (windowingMode == WINDOWING_MODE_PINNED) { - elevation = dipToPx(PINNED_WINDOWING_MODE_ELEVATION_IN_DIP); - mElevationAdjustedForStack = true; } else { mElevationAdjustedForStack = false; } |
