Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java +4 −2 Original line number Diff line number Diff line Loading @@ -96,7 +96,8 @@ public class DisplayLayout { /** * Different from {@link #equals(Object)}, this method compares the basic geometry properties * of two {@link DisplayLayout} objects including width, height, rotation, density and cutout. * of two {@link DisplayLayout} objects including width, height, rotation, density, cutout and * insets. * @return {@code true} if the given {@link DisplayLayout} is identical geometry wise. */ public boolean isSameGeometry(@NonNull DisplayLayout other) { Loading @@ -104,7 +105,8 @@ public class DisplayLayout { && mHeight == other.mHeight && mRotation == other.mRotation && mDensityDpi == other.mDensityDpi && Objects.equals(mCutout, other.mCutout); && Objects.equals(mCutout, other.mCutout) && Objects.equals(mStableInsets, other.mStableInsets); } @Override Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +2 −1 Original line number Diff line number Diff line Loading @@ -333,6 +333,7 @@ public abstract class WMShellModule { WindowManagerShellWrapper windowManagerShellWrapper, TaskStackListenerImpl taskStackListener, PipParamsChangedForwarder pipParamsChangedForwarder, DisplayInsetsController displayInsetsController, Optional<OneHandedController> oneHandedController, @ShellMainThread ShellExecutor mainExecutor) { return Optional.ofNullable(PipController.create( Loading @@ -341,7 +342,7 @@ public abstract class WMShellModule { pipBoundsState, pipMotionHelper, pipMediaController, phonePipMenuController, pipTaskOrganizer, pipTransitionState, pipTouchHandler, pipTransitionController, windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder, oneHandedController, mainExecutor)); displayInsetsController, oneHandedController, mainExecutor)); } @WMSingleton Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +17 −1 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import android.os.UserManager; import android.util.Pair; import android.util.Size; import android.view.DisplayInfo; import android.view.InsetsState; import android.view.SurfaceControl; import android.view.WindowManagerGlobal; import android.window.WindowContainerTransaction; Loading @@ -64,6 +65,7 @@ import com.android.wm.shell.R; import com.android.wm.shell.WindowManagerShellWrapper; import com.android.wm.shell.common.DisplayChangeController; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayInsetsController; import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.RemoteCallable; import com.android.wm.shell.common.ShellExecutor; Loading Loading @@ -135,6 +137,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb private PipTransitionController mPipTransitionController; private TaskStackListenerImpl mTaskStackListener; private PipParamsChangedForwarder mPipParamsChangedForwarder; private DisplayInsetsController mDisplayInsetsController; private Optional<OneHandedController> mOneHandedController; private final ShellCommandHandler mShellCommandHandler; private final ShellController mShellController; Loading Loading @@ -338,6 +341,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb WindowManagerShellWrapper windowManagerShellWrapper, TaskStackListenerImpl taskStackListener, PipParamsChangedForwarder pipParamsChangedForwarder, DisplayInsetsController displayInsetsController, Optional<OneHandedController> oneHandedController, ShellExecutor mainExecutor) { if (!context.getPackageManager().hasSystemFeature(FEATURE_PICTURE_IN_PICTURE)) { Loading @@ -351,7 +355,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb pipBoundsState, pipMotionHelper, pipMediaController, phonePipMenuController, pipTaskOrganizer, pipTransitionState, pipTouchHandler, pipTransitionController, windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder, oneHandedController, mainExecutor) displayInsetsController, oneHandedController, mainExecutor) .mImpl; } Loading @@ -374,6 +378,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb WindowManagerShellWrapper windowManagerShellWrapper, TaskStackListenerImpl taskStackListener, PipParamsChangedForwarder pipParamsChangedForwarder, DisplayInsetsController displayInsetsController, Optional<OneHandedController> oneHandedController, ShellExecutor mainExecutor ) { Loading Loading @@ -407,6 +412,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb mEnterAnimationDuration = mContext.getResources() .getInteger(R.integer.config_pipEnterAnimationDuration); mPipParamsChangedForwarder = pipParamsChangedForwarder; mDisplayInsetsController = displayInsetsController; shellInit.addInitCallback(this::onInit, this); } Loading Loading @@ -549,6 +555,16 @@ public class PipController implements PipTransitionController.PipTransitionCallb } }); mDisplayInsetsController.addInsetsChangedListener(mPipBoundsState.getDisplayId(), new DisplayInsetsController.OnInsetsChangedListener() { @Override public void insetsChanged(InsetsState insetsState) { onDisplayChanged( mDisplayController.getDisplayLayout(mPipBoundsState.getDisplayId()), false /* saveRestoreSnapFraction */); } }); mOneHandedController.ifPresent(controller -> { controller.registerTransitionCallback( new OneHandedTransitionCallback() { Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +7 −5 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.util.Size; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.WindowManagerShellWrapper; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayInsetsController; import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.TaskStackListenerImpl; Loading Loading @@ -99,7 +100,8 @@ public class PipControllerTest extends ShellTestCase { @Mock private TaskStackListenerImpl mMockTaskStackListener; @Mock private ShellExecutor mMockExecutor; @Mock private Optional<OneHandedController> mMockOneHandedController; @Mock private PipParamsChangedForwarder mPipParamsChangedForwarder; @Mock private PipParamsChangedForwarder mMockPipParamsChangedForwarder; @Mock private DisplayInsetsController mMockDisplayInsetsController; @Mock private DisplayLayout mMockDisplayLayout1; @Mock private DisplayLayout mMockDisplayLayout2; Loading @@ -120,8 +122,8 @@ public class PipControllerTest extends ShellTestCase { mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController, mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState, mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper, mMockTaskStackListener, mPipParamsChangedForwarder, mMockOneHandedController, mMockExecutor); mMockTaskStackListener, mMockPipParamsChangedForwarder, mMockDisplayInsetsController, mMockOneHandedController, mMockExecutor); mShellInit.init(); when(mMockPipBoundsAlgorithm.getSnapAlgorithm()).thenReturn(mMockPipSnapAlgorithm); when(mMockPipTouchHandler.getMotionHelper()).thenReturn(mMockPipMotionHelper); Loading Loading @@ -186,8 +188,8 @@ public class PipControllerTest extends ShellTestCase { mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController, mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState, mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper, mMockTaskStackListener, mPipParamsChangedForwarder, mMockOneHandedController, mMockExecutor)); mMockTaskStackListener, mMockPipParamsChangedForwarder, mMockDisplayInsetsController, mMockOneHandedController, mMockExecutor)); } @Test Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java +4 −2 Original line number Diff line number Diff line Loading @@ -96,7 +96,8 @@ public class DisplayLayout { /** * Different from {@link #equals(Object)}, this method compares the basic geometry properties * of two {@link DisplayLayout} objects including width, height, rotation, density and cutout. * of two {@link DisplayLayout} objects including width, height, rotation, density, cutout and * insets. * @return {@code true} if the given {@link DisplayLayout} is identical geometry wise. */ public boolean isSameGeometry(@NonNull DisplayLayout other) { Loading @@ -104,7 +105,8 @@ public class DisplayLayout { && mHeight == other.mHeight && mRotation == other.mRotation && mDensityDpi == other.mDensityDpi && Objects.equals(mCutout, other.mCutout); && Objects.equals(mCutout, other.mCutout) && Objects.equals(mStableInsets, other.mStableInsets); } @Override Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +2 −1 Original line number Diff line number Diff line Loading @@ -333,6 +333,7 @@ public abstract class WMShellModule { WindowManagerShellWrapper windowManagerShellWrapper, TaskStackListenerImpl taskStackListener, PipParamsChangedForwarder pipParamsChangedForwarder, DisplayInsetsController displayInsetsController, Optional<OneHandedController> oneHandedController, @ShellMainThread ShellExecutor mainExecutor) { return Optional.ofNullable(PipController.create( Loading @@ -341,7 +342,7 @@ public abstract class WMShellModule { pipBoundsState, pipMotionHelper, pipMediaController, phonePipMenuController, pipTaskOrganizer, pipTransitionState, pipTouchHandler, pipTransitionController, windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder, oneHandedController, mainExecutor)); displayInsetsController, oneHandedController, mainExecutor)); } @WMSingleton Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +17 −1 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import android.os.UserManager; import android.util.Pair; import android.util.Size; import android.view.DisplayInfo; import android.view.InsetsState; import android.view.SurfaceControl; import android.view.WindowManagerGlobal; import android.window.WindowContainerTransaction; Loading @@ -64,6 +65,7 @@ import com.android.wm.shell.R; import com.android.wm.shell.WindowManagerShellWrapper; import com.android.wm.shell.common.DisplayChangeController; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayInsetsController; import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.RemoteCallable; import com.android.wm.shell.common.ShellExecutor; Loading Loading @@ -135,6 +137,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb private PipTransitionController mPipTransitionController; private TaskStackListenerImpl mTaskStackListener; private PipParamsChangedForwarder mPipParamsChangedForwarder; private DisplayInsetsController mDisplayInsetsController; private Optional<OneHandedController> mOneHandedController; private final ShellCommandHandler mShellCommandHandler; private final ShellController mShellController; Loading Loading @@ -338,6 +341,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb WindowManagerShellWrapper windowManagerShellWrapper, TaskStackListenerImpl taskStackListener, PipParamsChangedForwarder pipParamsChangedForwarder, DisplayInsetsController displayInsetsController, Optional<OneHandedController> oneHandedController, ShellExecutor mainExecutor) { if (!context.getPackageManager().hasSystemFeature(FEATURE_PICTURE_IN_PICTURE)) { Loading @@ -351,7 +355,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb pipBoundsState, pipMotionHelper, pipMediaController, phonePipMenuController, pipTaskOrganizer, pipTransitionState, pipTouchHandler, pipTransitionController, windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder, oneHandedController, mainExecutor) displayInsetsController, oneHandedController, mainExecutor) .mImpl; } Loading @@ -374,6 +378,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb WindowManagerShellWrapper windowManagerShellWrapper, TaskStackListenerImpl taskStackListener, PipParamsChangedForwarder pipParamsChangedForwarder, DisplayInsetsController displayInsetsController, Optional<OneHandedController> oneHandedController, ShellExecutor mainExecutor ) { Loading Loading @@ -407,6 +412,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb mEnterAnimationDuration = mContext.getResources() .getInteger(R.integer.config_pipEnterAnimationDuration); mPipParamsChangedForwarder = pipParamsChangedForwarder; mDisplayInsetsController = displayInsetsController; shellInit.addInitCallback(this::onInit, this); } Loading Loading @@ -549,6 +555,16 @@ public class PipController implements PipTransitionController.PipTransitionCallb } }); mDisplayInsetsController.addInsetsChangedListener(mPipBoundsState.getDisplayId(), new DisplayInsetsController.OnInsetsChangedListener() { @Override public void insetsChanged(InsetsState insetsState) { onDisplayChanged( mDisplayController.getDisplayLayout(mPipBoundsState.getDisplayId()), false /* saveRestoreSnapFraction */); } }); mOneHandedController.ifPresent(controller -> { controller.registerTransitionCallback( new OneHandedTransitionCallback() { Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +7 −5 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.util.Size; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.WindowManagerShellWrapper; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayInsetsController; import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.TaskStackListenerImpl; Loading Loading @@ -99,7 +100,8 @@ public class PipControllerTest extends ShellTestCase { @Mock private TaskStackListenerImpl mMockTaskStackListener; @Mock private ShellExecutor mMockExecutor; @Mock private Optional<OneHandedController> mMockOneHandedController; @Mock private PipParamsChangedForwarder mPipParamsChangedForwarder; @Mock private PipParamsChangedForwarder mMockPipParamsChangedForwarder; @Mock private DisplayInsetsController mMockDisplayInsetsController; @Mock private DisplayLayout mMockDisplayLayout1; @Mock private DisplayLayout mMockDisplayLayout2; Loading @@ -120,8 +122,8 @@ public class PipControllerTest extends ShellTestCase { mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController, mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState, mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper, mMockTaskStackListener, mPipParamsChangedForwarder, mMockOneHandedController, mMockExecutor); mMockTaskStackListener, mMockPipParamsChangedForwarder, mMockDisplayInsetsController, mMockOneHandedController, mMockExecutor); mShellInit.init(); when(mMockPipBoundsAlgorithm.getSnapAlgorithm()).thenReturn(mMockPipSnapAlgorithm); when(mMockPipTouchHandler.getMotionHelper()).thenReturn(mMockPipMotionHelper); Loading Loading @@ -186,8 +188,8 @@ public class PipControllerTest extends ShellTestCase { mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController, mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState, mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper, mMockTaskStackListener, mPipParamsChangedForwarder, mMockOneHandedController, mMockExecutor)); mMockTaskStackListener, mMockPipParamsChangedForwarder, mMockDisplayInsetsController, mMockOneHandedController, mMockExecutor)); } @Test Loading