Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +1 −3 Original line number Diff line number Diff line Loading @@ -60,7 +60,6 @@ import android.window.WindowContainerToken; import android.window.WindowContainerTransaction; import android.window.WindowContainerTransactionCallback; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.os.SomeArgs; import com.android.wm.shell.R; Loading Loading @@ -551,8 +550,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, return null; } @VisibleForTesting void enterPipWithAlphaAnimation(Rect destinationBounds, long durationMs) { private void enterPipWithAlphaAnimation(Rect destinationBounds, long durationMs) { // If we are fading the PIP in, then we should move the pip to the final location as // soon as possible, but set the alpha immediately since the transaction can take a // while to process Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java +3 −78 Original line number Diff line number Diff line Loading @@ -16,29 +16,14 @@ package com.android.wm.shell.pip; import static junit.framework.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.app.PictureInPictureParams; import android.content.ComponentName; import android.graphics.Rect; import android.os.RemoteException; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.util.Rational; import android.view.DisplayInfo; import android.window.WindowContainerToken; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.common.DisplayController; Loading Loading @@ -67,19 +52,14 @@ public class PipTaskOrganizerTest extends PipTestCase { @Mock private PipUiEventLogger mMockPipUiEventLogger; @Mock private Optional<SplitScreen> mMockOptionalSplitScreen; @Mock private ShellTaskOrganizer mMockShellTaskOrganizer; private PipBoundsState mPipBoundsState; private ComponentName mComponent1; @Mock private PipBoundsState mMockPipBoundsState; @Before public void setUp() throws RemoteException { MockitoAnnotations.initMocks(this); mComponent1 = new ComponentName(mContext, "component1"); mPipBoundsState = new PipBoundsState(); mSpiedPipTaskOrganizer = spy(new PipTaskOrganizer(mContext, mPipBoundsState, mSpiedPipTaskOrganizer = new PipTaskOrganizer(mContext, mMockPipBoundsState, mMockPipBoundsHandler, mMockPipSurfaceTransactionHelper, mMockOptionalSplitScreen, mMockdDisplayController, mMockPipUiEventLogger, mMockShellTaskOrganizer)); preparePipTaskOrg(); mMockdDisplayController, mMockPipUiEventLogger, mMockShellTaskOrganizer); } @Test Loading @@ -91,59 +71,4 @@ public class PipTaskOrganizerTest extends PipTestCase { public void instantiatePipTaskOrganizer_addsDisplayWindowListener() { verify(mMockdDisplayController).addDisplayWindowListener(any()); } @Test public void startSwipePipToHome_updatesAspectRatio() { final Rational aspectRatio = new Rational(2, 1); mSpiedPipTaskOrganizer.startSwipePipToHome(mComponent1, null, createPipParams(aspectRatio)); assertEquals(aspectRatio.floatValue(), mPipBoundsState.getAspectRatio(), 0.01f); } @Test public void onTaskAppeared_updatesAspectRatio() { final Rational aspectRatio = new Rational(2, 1); mSpiedPipTaskOrganizer.onTaskAppeared(createTaskInfo( createPipParams(aspectRatio)), null /* leash */); assertEquals(aspectRatio.floatValue(), mPipBoundsState.getAspectRatio(), 0.01f); } @Test public void onTaskInfoChanged_updatesAspectRatioIfChanged() { final Rational startAspectRatio = new Rational(2, 1); final Rational newAspectRatio = new Rational(1, 2); mSpiedPipTaskOrganizer.onTaskAppeared(createTaskInfo( createPipParams(startAspectRatio)), null /* leash */); mSpiedPipTaskOrganizer.onTaskInfoChanged(createTaskInfo(createPipParams(newAspectRatio))); assertEquals(newAspectRatio.floatValue(), mPipBoundsState.getAspectRatio(), 0.01f); } private void preparePipTaskOrg() { final DisplayInfo info = new DisplayInfo(); when(mMockPipBoundsHandler.getDestinationBounds(any(), any())).thenReturn(new Rect()); when(mMockPipBoundsHandler.getDestinationBounds(any(), any(), anyBoolean())) .thenReturn(new Rect()); when(mMockPipBoundsHandler.getDisplayInfo()).thenReturn(info); mSpiedPipTaskOrganizer.setOneShotAnimationType(PipAnimationController.ANIM_TYPE_ALPHA); doNothing().when(mSpiedPipTaskOrganizer).enterPipWithAlphaAnimation(any(), anyLong()); doNothing().when(mSpiedPipTaskOrganizer).scheduleAnimateResizePip(any(), anyInt(), any()); } private static ActivityManager.RunningTaskInfo createTaskInfo(PictureInPictureParams params) { final ActivityManager.RunningTaskInfo info = new ActivityManager.RunningTaskInfo(); info.token = mock(WindowContainerToken.class); info.pictureInPictureParams = params; return info; } private static PictureInPictureParams createPipParams(Rational aspectRatio) { return new PictureInPictureParams.Builder() .setAspectRatio(aspectRatio) .build(); } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +1 −3 Original line number Diff line number Diff line Loading @@ -60,7 +60,6 @@ import android.window.WindowContainerToken; import android.window.WindowContainerTransaction; import android.window.WindowContainerTransactionCallback; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.os.SomeArgs; import com.android.wm.shell.R; Loading Loading @@ -551,8 +550,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, return null; } @VisibleForTesting void enterPipWithAlphaAnimation(Rect destinationBounds, long durationMs) { private void enterPipWithAlphaAnimation(Rect destinationBounds, long durationMs) { // If we are fading the PIP in, then we should move the pip to the final location as // soon as possible, but set the alpha immediately since the transaction can take a // while to process Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java +3 −78 Original line number Diff line number Diff line Loading @@ -16,29 +16,14 @@ package com.android.wm.shell.pip; import static junit.framework.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.app.PictureInPictureParams; import android.content.ComponentName; import android.graphics.Rect; import android.os.RemoteException; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.util.Rational; import android.view.DisplayInfo; import android.window.WindowContainerToken; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.common.DisplayController; Loading Loading @@ -67,19 +52,14 @@ public class PipTaskOrganizerTest extends PipTestCase { @Mock private PipUiEventLogger mMockPipUiEventLogger; @Mock private Optional<SplitScreen> mMockOptionalSplitScreen; @Mock private ShellTaskOrganizer mMockShellTaskOrganizer; private PipBoundsState mPipBoundsState; private ComponentName mComponent1; @Mock private PipBoundsState mMockPipBoundsState; @Before public void setUp() throws RemoteException { MockitoAnnotations.initMocks(this); mComponent1 = new ComponentName(mContext, "component1"); mPipBoundsState = new PipBoundsState(); mSpiedPipTaskOrganizer = spy(new PipTaskOrganizer(mContext, mPipBoundsState, mSpiedPipTaskOrganizer = new PipTaskOrganizer(mContext, mMockPipBoundsState, mMockPipBoundsHandler, mMockPipSurfaceTransactionHelper, mMockOptionalSplitScreen, mMockdDisplayController, mMockPipUiEventLogger, mMockShellTaskOrganizer)); preparePipTaskOrg(); mMockdDisplayController, mMockPipUiEventLogger, mMockShellTaskOrganizer); } @Test Loading @@ -91,59 +71,4 @@ public class PipTaskOrganizerTest extends PipTestCase { public void instantiatePipTaskOrganizer_addsDisplayWindowListener() { verify(mMockdDisplayController).addDisplayWindowListener(any()); } @Test public void startSwipePipToHome_updatesAspectRatio() { final Rational aspectRatio = new Rational(2, 1); mSpiedPipTaskOrganizer.startSwipePipToHome(mComponent1, null, createPipParams(aspectRatio)); assertEquals(aspectRatio.floatValue(), mPipBoundsState.getAspectRatio(), 0.01f); } @Test public void onTaskAppeared_updatesAspectRatio() { final Rational aspectRatio = new Rational(2, 1); mSpiedPipTaskOrganizer.onTaskAppeared(createTaskInfo( createPipParams(aspectRatio)), null /* leash */); assertEquals(aspectRatio.floatValue(), mPipBoundsState.getAspectRatio(), 0.01f); } @Test public void onTaskInfoChanged_updatesAspectRatioIfChanged() { final Rational startAspectRatio = new Rational(2, 1); final Rational newAspectRatio = new Rational(1, 2); mSpiedPipTaskOrganizer.onTaskAppeared(createTaskInfo( createPipParams(startAspectRatio)), null /* leash */); mSpiedPipTaskOrganizer.onTaskInfoChanged(createTaskInfo(createPipParams(newAspectRatio))); assertEquals(newAspectRatio.floatValue(), mPipBoundsState.getAspectRatio(), 0.01f); } private void preparePipTaskOrg() { final DisplayInfo info = new DisplayInfo(); when(mMockPipBoundsHandler.getDestinationBounds(any(), any())).thenReturn(new Rect()); when(mMockPipBoundsHandler.getDestinationBounds(any(), any(), anyBoolean())) .thenReturn(new Rect()); when(mMockPipBoundsHandler.getDisplayInfo()).thenReturn(info); mSpiedPipTaskOrganizer.setOneShotAnimationType(PipAnimationController.ANIM_TYPE_ALPHA); doNothing().when(mSpiedPipTaskOrganizer).enterPipWithAlphaAnimation(any(), anyLong()); doNothing().when(mSpiedPipTaskOrganizer).scheduleAnimateResizePip(any(), anyInt(), any()); } private static ActivityManager.RunningTaskInfo createTaskInfo(PictureInPictureParams params) { final ActivityManager.RunningTaskInfo info = new ActivityManager.RunningTaskInfo(); info.token = mock(WindowContainerToken.class); info.pictureInPictureParams = params; return info; } private static PictureInPictureParams createPipParams(Rational aspectRatio) { return new PictureInPictureParams.Builder() .setAspectRatio(aspectRatio) .build(); } }