Loading services/core/java/com/android/server/wm/TaskPositioner.java +21 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,8 @@ class TaskPositioner { private static final String TAG_LOCAL = "TaskPositioner"; private static final String TAG = TAG_WITH_CLASS_NAME ? TAG_LOCAL : TAG_WM; private static Factory sFactory; // The margin the pointer position has to be within the side of the screen to be // considered at the side of the screen. static final int SIDE_MARGIN_DIP = 100; Loading Loading @@ -214,6 +216,7 @@ class TaskPositioner { } } /** Use {@link #create(WindowManagerService)} instead **/ TaskPositioner(WindowManagerService service) { mService = service; } Loading Loading @@ -622,4 +625,22 @@ class TaskPositioner { public String toShortString() { return TAG; } static void setFactory(Factory factory) { sFactory = factory; } static TaskPositioner create(WindowManagerService service) { if (sFactory == null) { sFactory = new Factory() {}; } return sFactory.create(service); } interface Factory { default TaskPositioner create(WindowManagerService service) { return new TaskPositioner(service); } } } services/core/java/com/android/server/wm/TaskPositioningController.java +1 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ class TaskPositioningController { } Display display = displayContent.getDisplay(); mTaskPositioner = new TaskPositioner(mService); mTaskPositioner = TaskPositioner.create(mService); mTaskPositioner.register(displayContent); mInputMonitor.updateInputWindowsLw(true /*force*/); Loading services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java +21 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import static com.android.server.wm.WindowManagerService.dipToPixel; import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_HEIGHT_IN_DP; import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_WIDTH_IN_DP; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; /** Loading @@ -57,6 +58,9 @@ public class TaskPositionerTests extends WindowTestsBase { @Before public void setUp() throws Exception { super.setUp(); TaskPositioner.setFactory(null); final Display display = mDisplayContent.getDisplay(); final DisplayMetrics dm = new DisplayMetrics(); display.getMetrics(dm); Loading @@ -65,10 +69,26 @@ public class TaskPositionerTests extends WindowTestsBase { mMinVisibleWidth = dipToPixel(MINIMUM_VISIBLE_WIDTH_IN_DP, dm); mMinVisibleHeight = dipToPixel(MINIMUM_VISIBLE_HEIGHT_IN_DP, dm); mPositioner = new TaskPositioner(sWm); mPositioner = TaskPositioner.create(sWm); mPositioner.register(mDisplayContent); } @Test public void testOverrideFactory() throws Exception { final boolean[] created = new boolean[1]; created[0] = false; TaskPositioner.setFactory(new TaskPositioner.Factory() { @Override public TaskPositioner create(WindowManagerService service) { created[0] = true; return null; } }); assertNull(TaskPositioner.create(sWm)); assertTrue(created[0]); } /** * This tests that free resizing will allow to change the orientation as well * as does some basic tests (e.g. dragging in Y only will keep X stable). Loading Loading
services/core/java/com/android/server/wm/TaskPositioner.java +21 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,8 @@ class TaskPositioner { private static final String TAG_LOCAL = "TaskPositioner"; private static final String TAG = TAG_WITH_CLASS_NAME ? TAG_LOCAL : TAG_WM; private static Factory sFactory; // The margin the pointer position has to be within the side of the screen to be // considered at the side of the screen. static final int SIDE_MARGIN_DIP = 100; Loading Loading @@ -214,6 +216,7 @@ class TaskPositioner { } } /** Use {@link #create(WindowManagerService)} instead **/ TaskPositioner(WindowManagerService service) { mService = service; } Loading Loading @@ -622,4 +625,22 @@ class TaskPositioner { public String toShortString() { return TAG; } static void setFactory(Factory factory) { sFactory = factory; } static TaskPositioner create(WindowManagerService service) { if (sFactory == null) { sFactory = new Factory() {}; } return sFactory.create(service); } interface Factory { default TaskPositioner create(WindowManagerService service) { return new TaskPositioner(service); } } }
services/core/java/com/android/server/wm/TaskPositioningController.java +1 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ class TaskPositioningController { } Display display = displayContent.getDisplay(); mTaskPositioner = new TaskPositioner(mService); mTaskPositioner = TaskPositioner.create(mService); mTaskPositioner.register(displayContent); mInputMonitor.updateInputWindowsLw(true /*force*/); Loading
services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java +21 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import static com.android.server.wm.WindowManagerService.dipToPixel; import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_HEIGHT_IN_DP; import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_WIDTH_IN_DP; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; /** Loading @@ -57,6 +58,9 @@ public class TaskPositionerTests extends WindowTestsBase { @Before public void setUp() throws Exception { super.setUp(); TaskPositioner.setFactory(null); final Display display = mDisplayContent.getDisplay(); final DisplayMetrics dm = new DisplayMetrics(); display.getMetrics(dm); Loading @@ -65,10 +69,26 @@ public class TaskPositionerTests extends WindowTestsBase { mMinVisibleWidth = dipToPixel(MINIMUM_VISIBLE_WIDTH_IN_DP, dm); mMinVisibleHeight = dipToPixel(MINIMUM_VISIBLE_HEIGHT_IN_DP, dm); mPositioner = new TaskPositioner(sWm); mPositioner = TaskPositioner.create(sWm); mPositioner.register(mDisplayContent); } @Test public void testOverrideFactory() throws Exception { final boolean[] created = new boolean[1]; created[0] = false; TaskPositioner.setFactory(new TaskPositioner.Factory() { @Override public TaskPositioner create(WindowManagerService service) { created[0] = true; return null; } }); assertNull(TaskPositioner.create(sWm)); assertTrue(created[0]); } /** * This tests that free resizing will allow to change the orientation as well * as does some basic tests (e.g. dragging in Y only will keep X stable). Loading