Merge "Do not set shadow when leaving PiP mode" into tm-dev
This commit is contained in:
@@ -432,6 +432,11 @@ public class PipAnimationController {
|
|||||||
return !isOutPipDirection(mTransitionDirection);
|
return !isOutPipDirection(mTransitionDirection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean shouldApplyShadowRadius() {
|
||||||
|
return !isOutPipDirection(mTransitionDirection)
|
||||||
|
&& !isRemovePipDirection(mTransitionDirection);
|
||||||
|
}
|
||||||
|
|
||||||
boolean inScaleTransition() {
|
boolean inScaleTransition() {
|
||||||
if (mAnimationType != ANIM_TYPE_BOUNDS) return false;
|
if (mAnimationType != ANIM_TYPE_BOUNDS) return false;
|
||||||
final int direction = getTransitionDirection();
|
final int direction = getTransitionDirection();
|
||||||
@@ -483,7 +488,7 @@ public class PipAnimationController {
|
|||||||
setCurrentValue(alpha);
|
setCurrentValue(alpha);
|
||||||
getSurfaceTransactionHelper().alpha(tx, leash, alpha)
|
getSurfaceTransactionHelper().alpha(tx, leash, alpha)
|
||||||
.round(tx, leash, shouldApplyCornerRadius())
|
.round(tx, leash, shouldApplyCornerRadius())
|
||||||
.shadow(tx, leash);
|
.shadow(tx, leash, shouldApplyShadowRadius());
|
||||||
tx.apply();
|
tx.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -497,7 +502,7 @@ public class PipAnimationController {
|
|||||||
.resetScale(tx, leash, getDestinationBounds())
|
.resetScale(tx, leash, getDestinationBounds())
|
||||||
.crop(tx, leash, getDestinationBounds())
|
.crop(tx, leash, getDestinationBounds())
|
||||||
.round(tx, leash, shouldApplyCornerRadius())
|
.round(tx, leash, shouldApplyCornerRadius())
|
||||||
.shadow(tx, leash);
|
.shadow(tx, leash, shouldApplyShadowRadius());
|
||||||
tx.show(leash);
|
tx.show(leash);
|
||||||
tx.apply();
|
tx.apply();
|
||||||
}
|
}
|
||||||
@@ -585,7 +590,7 @@ public class PipAnimationController {
|
|||||||
getSurfaceTransactionHelper().crop(tx, leash, base)
|
getSurfaceTransactionHelper().crop(tx, leash, base)
|
||||||
.scale(tx, leash, base, bounds, angle)
|
.scale(tx, leash, base, bounds, angle)
|
||||||
.round(tx, leash, base, bounds)
|
.round(tx, leash, base, bounds)
|
||||||
.shadow(tx, leash);
|
.shadow(tx, leash, shouldApplyShadowRadius());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
final Rect insets = computeInsets(fraction);
|
final Rect insets = computeInsets(fraction);
|
||||||
@@ -596,7 +601,7 @@ public class PipAnimationController {
|
|||||||
sourceBounds.inset(insets);
|
sourceBounds.inset(insets);
|
||||||
getSurfaceTransactionHelper()
|
getSurfaceTransactionHelper()
|
||||||
.round(tx, leash, sourceBounds, bounds)
|
.round(tx, leash, sourceBounds, bounds)
|
||||||
.shadow(tx, leash);
|
.shadow(tx, leash, shouldApplyShadowRadius());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!handlePipTransaction(leash, tx, bounds)) {
|
if (!handlePipTransaction(leash, tx, bounds)) {
|
||||||
@@ -649,7 +654,7 @@ public class PipAnimationController {
|
|||||||
if (shouldApplyCornerRadius()) {
|
if (shouldApplyCornerRadius()) {
|
||||||
getSurfaceTransactionHelper()
|
getSurfaceTransactionHelper()
|
||||||
.round(tx, leash, sourceBounds, bounds)
|
.round(tx, leash, sourceBounds, bounds)
|
||||||
.shadow(tx, leash);
|
.shadow(tx, leash, shouldApplyShadowRadius());
|
||||||
}
|
}
|
||||||
tx.apply();
|
tx.apply();
|
||||||
}
|
}
|
||||||
@@ -668,7 +673,7 @@ public class PipAnimationController {
|
|||||||
getSurfaceTransactionHelper()
|
getSurfaceTransactionHelper()
|
||||||
.alpha(tx, leash, 1f)
|
.alpha(tx, leash, 1f)
|
||||||
.round(tx, leash, shouldApplyCornerRadius())
|
.round(tx, leash, shouldApplyCornerRadius())
|
||||||
.shadow(tx, leash);
|
.shadow(tx, leash, shouldApplyShadowRadius());
|
||||||
// TODO(b/178632364): this is a work around for the black background when
|
// TODO(b/178632364): this is a work around for the black background when
|
||||||
// entering PiP in buttion navigation mode.
|
// entering PiP in buttion navigation mode.
|
||||||
if (isInPipDirection(direction)) {
|
if (isInPipDirection(direction)) {
|
||||||
|
|||||||
@@ -206,8 +206,9 @@ public class PipSurfaceTransactionHelper {
|
|||||||
* Operates the shadow radius on a given transaction and leash
|
* Operates the shadow radius on a given transaction and leash
|
||||||
* @return same {@link PipSurfaceTransactionHelper} instance for method chaining
|
* @return same {@link PipSurfaceTransactionHelper} instance for method chaining
|
||||||
*/
|
*/
|
||||||
public PipSurfaceTransactionHelper shadow(SurfaceControl.Transaction tx, SurfaceControl leash) {
|
public PipSurfaceTransactionHelper shadow(SurfaceControl.Transaction tx, SurfaceControl leash,
|
||||||
tx.setShadowRadius(leash, mShadowRadius);
|
boolean applyShadowRadius) {
|
||||||
|
tx.setShadowRadius(leash, applyShadowRadius ? mShadowRadius : 0);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user