Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipAlphaAnimator.java +2 −1 Original line number Diff line number Diff line Loading @@ -131,9 +131,10 @@ public class PipAlphaAnimator extends ValueAnimator { } private void onAlphaAnimationUpdate(float alpha, SurfaceControl.Transaction tx) { // only set shadow radius on fade in tx.setAlpha(mLeash, alpha) .setCornerRadius(mLeash, mCornerRadius) .setShadowRadius(mLeash, mShadowRadius); .setShadowRadius(mLeash, mDirection == FADE_IN ? mShadowRadius : 0f); tx.apply(); } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip2/animation/PipAlphaAnimatorTest.java +61 −3 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; Loading Loading @@ -126,7 +127,7 @@ public class PipAlphaAnimatorTest { } @Test public void onAnimationStart_setCornerAndShadowRadii() { public void onAnimationStart_fadeInAnimator_setCornerAndShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_IN); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); Loading @@ -143,7 +144,26 @@ public class PipAlphaAnimatorTest { } @Test public void onAnimationUpdate_setCornerAndShadowRadii() { public void onAnimationStart_fadeOutAnimator_setCornerNoShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_OUT); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> { mPipAlphaAnimator.start(); mPipAlphaAnimator.pause(); }); verify(mMockStartTransaction, atLeastOnce()) .setCornerRadius(eq(mTestLeash), eq(TEST_CORNER_RADIUS)); verify(mMockStartTransaction, never()) .setShadowRadius(eq(mTestLeash), eq(TEST_SHADOW_RADIUS)); verify(mMockStartTransaction, atLeastOnce()) .setShadowRadius(eq(mTestLeash), eq(0f)); } @Test public void onAnimationUpdate_fadeInAnimator_setCornerAndShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_IN); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); Loading @@ -160,7 +180,26 @@ public class PipAlphaAnimatorTest { } @Test public void onAnimationEnd_setCornerAndShadowRadii() { public void onAnimationUpdate_fadeOutAnimator_setCornerNoShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_OUT); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> { mPipAlphaAnimator.start(); mPipAlphaAnimator.pause(); }); verify(mMockAnimateTransaction, atLeastOnce()) .setCornerRadius(eq(mTestLeash), eq(TEST_CORNER_RADIUS)); verify(mMockAnimateTransaction, never()) .setShadowRadius(eq(mTestLeash), eq(TEST_SHADOW_RADIUS)); verify(mMockAnimateTransaction, atLeastOnce()) .setShadowRadius(eq(mTestLeash), eq(0f)); } @Test public void onAnimationEnd_fadeInAnimator_setCornerAndShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_IN); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); Loading @@ -176,6 +215,25 @@ public class PipAlphaAnimatorTest { .setShadowRadius(eq(mTestLeash), eq(TEST_SHADOW_RADIUS)); } @Test public void onAnimationEnd_fadeOutAnimator_setCornerNoShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_OUT); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> { mPipAlphaAnimator.start(); mPipAlphaAnimator.end(); }); verify(mMockFinishTransaction, atLeastOnce()) .setCornerRadius(eq(mTestLeash), eq(TEST_CORNER_RADIUS)); verify(mMockFinishTransaction, never()) .setShadowRadius(eq(mTestLeash), eq(TEST_SHADOW_RADIUS)); verify(mMockFinishTransaction, atLeastOnce()) .setShadowRadius(eq(mTestLeash), eq(0f)); } @Test public void onAnimationEnd_fadeInAnimator_leashVisibleAtEnd() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipAlphaAnimator.java +2 −1 Original line number Diff line number Diff line Loading @@ -131,9 +131,10 @@ public class PipAlphaAnimator extends ValueAnimator { } private void onAlphaAnimationUpdate(float alpha, SurfaceControl.Transaction tx) { // only set shadow radius on fade in tx.setAlpha(mLeash, alpha) .setCornerRadius(mLeash, mCornerRadius) .setShadowRadius(mLeash, mShadowRadius); .setShadowRadius(mLeash, mDirection == FADE_IN ? mShadowRadius : 0f); tx.apply(); } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip2/animation/PipAlphaAnimatorTest.java +61 −3 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; Loading Loading @@ -126,7 +127,7 @@ public class PipAlphaAnimatorTest { } @Test public void onAnimationStart_setCornerAndShadowRadii() { public void onAnimationStart_fadeInAnimator_setCornerAndShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_IN); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); Loading @@ -143,7 +144,26 @@ public class PipAlphaAnimatorTest { } @Test public void onAnimationUpdate_setCornerAndShadowRadii() { public void onAnimationStart_fadeOutAnimator_setCornerNoShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_OUT); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> { mPipAlphaAnimator.start(); mPipAlphaAnimator.pause(); }); verify(mMockStartTransaction, atLeastOnce()) .setCornerRadius(eq(mTestLeash), eq(TEST_CORNER_RADIUS)); verify(mMockStartTransaction, never()) .setShadowRadius(eq(mTestLeash), eq(TEST_SHADOW_RADIUS)); verify(mMockStartTransaction, atLeastOnce()) .setShadowRadius(eq(mTestLeash), eq(0f)); } @Test public void onAnimationUpdate_fadeInAnimator_setCornerAndShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_IN); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); Loading @@ -160,7 +180,26 @@ public class PipAlphaAnimatorTest { } @Test public void onAnimationEnd_setCornerAndShadowRadii() { public void onAnimationUpdate_fadeOutAnimator_setCornerNoShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_OUT); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> { mPipAlphaAnimator.start(); mPipAlphaAnimator.pause(); }); verify(mMockAnimateTransaction, atLeastOnce()) .setCornerRadius(eq(mTestLeash), eq(TEST_CORNER_RADIUS)); verify(mMockAnimateTransaction, never()) .setShadowRadius(eq(mTestLeash), eq(TEST_SHADOW_RADIUS)); verify(mMockAnimateTransaction, atLeastOnce()) .setShadowRadius(eq(mTestLeash), eq(0f)); } @Test public void onAnimationEnd_fadeInAnimator_setCornerAndShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_IN); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); Loading @@ -176,6 +215,25 @@ public class PipAlphaAnimatorTest { .setShadowRadius(eq(mTestLeash), eq(TEST_SHADOW_RADIUS)); } @Test public void onAnimationEnd_fadeOutAnimator_setCornerNoShadowRadii() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, mMockFinishTransaction, PipAlphaAnimator.FADE_OUT); mPipAlphaAnimator.setSurfaceControlTransactionFactory(mMockFactory); InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> { mPipAlphaAnimator.start(); mPipAlphaAnimator.end(); }); verify(mMockFinishTransaction, atLeastOnce()) .setCornerRadius(eq(mTestLeash), eq(TEST_CORNER_RADIUS)); verify(mMockFinishTransaction, never()) .setShadowRadius(eq(mTestLeash), eq(TEST_SHADOW_RADIUS)); verify(mMockFinishTransaction, atLeastOnce()) .setShadowRadius(eq(mTestLeash), eq(0f)); } @Test public void onAnimationEnd_fadeInAnimator_leashVisibleAtEnd() { mPipAlphaAnimator = new PipAlphaAnimator(mMockContext, mTestLeash, mMockStartTransaction, Loading