Merge "Set PIP corner radius when enter"
This commit is contained in:
@@ -308,9 +308,11 @@ public class WMShellModule {
|
||||
Transitions transitions, ShellTaskOrganizer shellTaskOrganizer,
|
||||
PipAnimationController pipAnimationController, PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||
PipBoundsState pipBoundsState, PipTransitionState pipTransitionState,
|
||||
PhonePipMenuController pipMenuController) {
|
||||
PhonePipMenuController pipMenuController,
|
||||
PipSurfaceTransactionHelper pipSurfaceTransactionHelper) {
|
||||
return new PipTransition(context, pipBoundsState, pipTransitionState, pipMenuController,
|
||||
pipBoundsAlgorithm, pipAnimationController, transitions, shellTaskOrganizer);
|
||||
pipBoundsAlgorithm, pipAnimationController, transitions, shellTaskOrganizer,
|
||||
pipSurfaceTransactionHelper);
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
|
||||
@@ -62,6 +62,7 @@ public class PipTransition extends PipTransitionController {
|
||||
|
||||
private final PipTransitionState mPipTransitionState;
|
||||
private final int mEnterExitAnimationDuration;
|
||||
private final PipSurfaceTransactionHelper mSurfaceTransactionHelper;
|
||||
private @PipAnimationController.AnimationType int mOneShotAnimationType = ANIM_TYPE_BOUNDS;
|
||||
private Transitions.TransitionFinishCallback mFinishCallback;
|
||||
private Rect mExitDestinationBounds = new Rect();
|
||||
@@ -74,12 +75,14 @@ public class PipTransition extends PipTransitionController {
|
||||
PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||
PipAnimationController pipAnimationController,
|
||||
Transitions transitions,
|
||||
@NonNull ShellTaskOrganizer shellTaskOrganizer) {
|
||||
@NonNull ShellTaskOrganizer shellTaskOrganizer,
|
||||
PipSurfaceTransactionHelper pipSurfaceTransactionHelper) {
|
||||
super(pipBoundsState, pipMenuController, pipBoundsAlgorithm,
|
||||
pipAnimationController, transitions, shellTaskOrganizer);
|
||||
mPipTransitionState = pipTransitionState;
|
||||
mEnterExitAnimationDuration = context.getResources()
|
||||
.getInteger(R.integer.config_pipResizeAnimationDuration);
|
||||
mSurfaceTransactionHelper = pipSurfaceTransactionHelper;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -286,7 +289,10 @@ public class PipTransition extends PipTransitionController {
|
||||
final Rect destinationBounds = mPipBoundsAlgorithm.getEntryDestinationBounds();
|
||||
final Rect currentBounds = taskInfo.configuration.windowConfiguration.getBounds();
|
||||
PipAnimationController.PipTransitionAnimator animator;
|
||||
finishTransaction.setPosition(leash, destinationBounds.left, destinationBounds.top);
|
||||
// Set corner radius for entering pip.
|
||||
mSurfaceTransactionHelper
|
||||
.crop(finishTransaction, leash, destinationBounds)
|
||||
.round(finishTransaction, leash, true /* applyCornerRadius */);
|
||||
if (taskInfo.pictureInPictureParams != null
|
||||
&& taskInfo.pictureInPictureParams.isAutoEnterEnabled()
|
||||
&& mPipTransitionState.getInSwipePipToHomeTransition()) {
|
||||
|
||||
@@ -33,7 +33,6 @@ import com.android.server.wm.flicker.navBarLayerRotatesAndScales
|
||||
import com.android.server.wm.flicker.statusBarLayerRotatesScales
|
||||
import com.android.wm.shell.flicker.helpers.FixedAppHelper
|
||||
import org.junit.Assume.assumeFalse
|
||||
import org.junit.Before
|
||||
import org.junit.FixMethodOrder
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
@@ -84,12 +83,6 @@ class PipRotationTest(testSpec: FlickerTestParameter) : PipTransition(testSpec)
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
fun onBefore() {
|
||||
// This CUJ don't work in shell transitions because of b/204570898 b/204562589 b/206753786
|
||||
assumeFalse(isShellTransitionsEnabled)
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that all parts of the screen are covered at the start and end of the transition
|
||||
*/
|
||||
@@ -128,6 +121,8 @@ class PipRotationTest(testSpec: FlickerTestParameter) : PipTransition(testSpec)
|
||||
@Presubmit
|
||||
@Test
|
||||
fun appLayerRotates_EndingBounds() {
|
||||
// This CUJ don't work in shell transitions because of b/204570898 b/204562589 b/206753786
|
||||
assumeFalse(isShellTransitionsEnabled)
|
||||
testSpec.assertLayersEnd {
|
||||
visibleRegion(fixedApp.component).coversExactly(screenBoundsEnd)
|
||||
}
|
||||
|
||||
@@ -368,6 +368,7 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
|
||||
t.setPosition(targetLeash, tmpPos.x, tmpPos.y);
|
||||
t.setCornerRadius(targetLeash, 0);
|
||||
t.setShadowRadius(targetLeash, 0);
|
||||
t.setMatrix(targetLeash, 1, 0, 0, 1);
|
||||
// The bounds sent to the transition is always a real bounds. This means we lose
|
||||
// information about "null" bounds (inheriting from parent). Core will fix-up
|
||||
// non-organized window surface bounds; however, since Core can't touch organized
|
||||
|
||||
Reference in New Issue
Block a user