summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java17
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipSurfaceTransactionHelper.java5
2 files changed, 14 insertions, 8 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
index 51e229e13284..337900088c92 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
@@ -432,6 +432,11 @@ public class PipAnimationController {
return !isOutPipDirection(mTransitionDirection);
}
+ boolean shouldApplyShadowRadius() {
+ return !isOutPipDirection(mTransitionDirection)
+ && !isRemovePipDirection(mTransitionDirection);
+ }
+
boolean inScaleTransition() {
if (mAnimationType != ANIM_TYPE_BOUNDS) return false;
final int direction = getTransitionDirection();
@@ -483,7 +488,7 @@ public class PipAnimationController {
setCurrentValue(alpha);
getSurfaceTransactionHelper().alpha(tx, leash, alpha)
.round(tx, leash, shouldApplyCornerRadius())
- .shadow(tx, leash);
+ .shadow(tx, leash, shouldApplyShadowRadius());
tx.apply();
}
@@ -497,7 +502,7 @@ public class PipAnimationController {
.resetScale(tx, leash, getDestinationBounds())
.crop(tx, leash, getDestinationBounds())
.round(tx, leash, shouldApplyCornerRadius())
- .shadow(tx, leash);
+ .shadow(tx, leash, shouldApplyShadowRadius());
tx.show(leash);
tx.apply();
}
@@ -585,7 +590,7 @@ public class PipAnimationController {
getSurfaceTransactionHelper().crop(tx, leash, base)
.scale(tx, leash, base, bounds, angle)
.round(tx, leash, base, bounds)
- .shadow(tx, leash);
+ .shadow(tx, leash, shouldApplyShadowRadius());
}
} else {
final Rect insets = computeInsets(fraction);
@@ -596,7 +601,7 @@ public class PipAnimationController {
sourceBounds.inset(insets);
getSurfaceTransactionHelper()
.round(tx, leash, sourceBounds, bounds)
- .shadow(tx, leash);
+ .shadow(tx, leash, shouldApplyShadowRadius());
}
}
if (!handlePipTransaction(leash, tx, bounds)) {
@@ -649,7 +654,7 @@ public class PipAnimationController {
if (shouldApplyCornerRadius()) {
getSurfaceTransactionHelper()
.round(tx, leash, sourceBounds, bounds)
- .shadow(tx, leash);
+ .shadow(tx, leash, shouldApplyShadowRadius());
}
tx.apply();
}
@@ -668,7 +673,7 @@ public class PipAnimationController {
getSurfaceTransactionHelper()
.alpha(tx, leash, 1f)
.round(tx, leash, shouldApplyCornerRadius())
- .shadow(tx, leash);
+ .shadow(tx, leash, shouldApplyShadowRadius());
// TODO(b/178632364): this is a work around for the black background when
// entering PiP in buttion navigation mode.
if (isInPipDirection(direction)) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipSurfaceTransactionHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipSurfaceTransactionHelper.java
index 7447fb54d636..00f62d435b68 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipSurfaceTransactionHelper.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipSurfaceTransactionHelper.java
@@ -206,8 +206,9 @@ public class PipSurfaceTransactionHelper {
* Operates the shadow radius on a given transaction and leash
* @return same {@link PipSurfaceTransactionHelper} instance for method chaining
*/
- public PipSurfaceTransactionHelper shadow(SurfaceControl.Transaction tx, SurfaceControl leash) {
- tx.setShadowRadius(leash, mShadowRadius);
+ public PipSurfaceTransactionHelper shadow(SurfaceControl.Transaction tx, SurfaceControl leash,
+ boolean applyShadowRadius) {
+ tx.setShadowRadius(leash, applyShadowRadius ? mShadowRadius : 0);
return this;
}