diff options
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java | 17 | ||||
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipSurfaceTransactionHelper.java | 5 |
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; } |