Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +13 −6 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb private PipBoundsState mPipBoundsState; private PipTouchHandler mTouchHandler; private PipTransitionController mPipTransitionController; private TaskStackListenerImpl mTaskStackListener; private Optional<OneHandedController> mOneHandedController; protected final PipImpl mImpl; Loading Loading @@ -291,12 +292,18 @@ public class PipController implements PipTransitionController.PipTransitionCallb mAppOpsListener = pipAppOpsListener; mOneHandedController = oneHandedController; mPipTransitionController = pipTransitionController; mTaskStackListener = taskStackListener; mPipInputConsumer = new PipInputConsumer(WindowManagerGlobal.getWindowManagerService(), INPUT_CONSUMER_PIP, mainExecutor); //TODO: move this to ShellInit when PipController can be injected mMainExecutor.execute(this::init); } public void init() { mPipTransitionController.registerPipTransitionCallback(this); mPipTaskOrganizer.registerOnDisplayIdChangeCallback((int displayId) -> { mPipBoundsState.setDisplayId(displayId); onDisplayChanged(displayController.getDisplayLayout(displayId), onDisplayChanged(mDisplayController.getDisplayLayout(displayId), false /* saveRestoreSnapFraction */); }); mPipBoundsState.setOnMinimalSizeChangeCallback( Loading @@ -321,13 +328,13 @@ public class PipController implements PipTransitionController.PipTransitionCallb mPipInputConsumer.setInputListener(mTouchHandler::handleTouchEvent); mPipInputConsumer.setRegistrationListener(mTouchHandler::onRegistrationChanged); } displayController.addDisplayChangingController(mRotationController); displayController.addDisplayWindowListener(mDisplaysChangedListener); mDisplayController.addDisplayChangingController(mRotationController); mDisplayController.addDisplayWindowListener(mDisplaysChangedListener); // Ensure that we have the display info in case we get calls to update the bounds before the // listener calls back mPipBoundsState.setDisplayId(context.getDisplayId()); mPipBoundsState.setDisplayLayout(new DisplayLayout(context, context.getDisplay())); mPipBoundsState.setDisplayId(mContext.getDisplayId()); mPipBoundsState.setDisplayLayout(new DisplayLayout(mContext, mContext.getDisplay())); try { mWindowManagerShellWrapper.addPinnedStackListener(mPinnedTaskListener); Loading @@ -349,7 +356,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb } // Handle for system task stack changes. taskStackListener.addListener( mTaskStackListener.addListener( new TaskStackListenerCallback() { @Override public void onActivityPinned(String packageName, int userId, int taskId, Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -83,15 +83,15 @@ public class PipControllerTest extends ShellTestCase { @Before public void setUp() throws RemoteException { MockitoAnnotations.initMocks(this); doAnswer(invocation -> { ((Runnable) invocation.getArgument(0)).run(); return null; }).when(mMockExecutor).execute(any()); mPipController = new PipController(mContext, mMockDisplayController, mMockPipAppOpsListener, mMockPipBoundsAlgorithm, mMockPipBoundsState, mMockPipMediaController, mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper, mMockTaskStackListener, mMockOneHandedController, mMockExecutor); doAnswer(invocation -> { ((Runnable) invocation.getArgument(0)).run(); return null; }).when(mMockExecutor).execute(any()); } @Test Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +13 −6 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb private PipBoundsState mPipBoundsState; private PipTouchHandler mTouchHandler; private PipTransitionController mPipTransitionController; private TaskStackListenerImpl mTaskStackListener; private Optional<OneHandedController> mOneHandedController; protected final PipImpl mImpl; Loading Loading @@ -291,12 +292,18 @@ public class PipController implements PipTransitionController.PipTransitionCallb mAppOpsListener = pipAppOpsListener; mOneHandedController = oneHandedController; mPipTransitionController = pipTransitionController; mTaskStackListener = taskStackListener; mPipInputConsumer = new PipInputConsumer(WindowManagerGlobal.getWindowManagerService(), INPUT_CONSUMER_PIP, mainExecutor); //TODO: move this to ShellInit when PipController can be injected mMainExecutor.execute(this::init); } public void init() { mPipTransitionController.registerPipTransitionCallback(this); mPipTaskOrganizer.registerOnDisplayIdChangeCallback((int displayId) -> { mPipBoundsState.setDisplayId(displayId); onDisplayChanged(displayController.getDisplayLayout(displayId), onDisplayChanged(mDisplayController.getDisplayLayout(displayId), false /* saveRestoreSnapFraction */); }); mPipBoundsState.setOnMinimalSizeChangeCallback( Loading @@ -321,13 +328,13 @@ public class PipController implements PipTransitionController.PipTransitionCallb mPipInputConsumer.setInputListener(mTouchHandler::handleTouchEvent); mPipInputConsumer.setRegistrationListener(mTouchHandler::onRegistrationChanged); } displayController.addDisplayChangingController(mRotationController); displayController.addDisplayWindowListener(mDisplaysChangedListener); mDisplayController.addDisplayChangingController(mRotationController); mDisplayController.addDisplayWindowListener(mDisplaysChangedListener); // Ensure that we have the display info in case we get calls to update the bounds before the // listener calls back mPipBoundsState.setDisplayId(context.getDisplayId()); mPipBoundsState.setDisplayLayout(new DisplayLayout(context, context.getDisplay())); mPipBoundsState.setDisplayId(mContext.getDisplayId()); mPipBoundsState.setDisplayLayout(new DisplayLayout(mContext, mContext.getDisplay())); try { mWindowManagerShellWrapper.addPinnedStackListener(mPinnedTaskListener); Loading @@ -349,7 +356,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb } // Handle for system task stack changes. taskStackListener.addListener( mTaskStackListener.addListener( new TaskStackListenerCallback() { @Override public void onActivityPinned(String packageName, int userId, int taskId, Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -83,15 +83,15 @@ public class PipControllerTest extends ShellTestCase { @Before public void setUp() throws RemoteException { MockitoAnnotations.initMocks(this); doAnswer(invocation -> { ((Runnable) invocation.getArgument(0)).run(); return null; }).when(mMockExecutor).execute(any()); mPipController = new PipController(mContext, mMockDisplayController, mMockPipAppOpsListener, mMockPipBoundsAlgorithm, mMockPipBoundsState, mMockPipMediaController, mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper, mMockTaskStackListener, mMockOneHandedController, mMockExecutor); doAnswer(invocation -> { ((Runnable) invocation.getArgument(0)).run(); return null; }).when(mMockExecutor).execute(any()); } @Test Loading