Loading services/core/java/com/android/server/wm/TaskPositioner.java +22 −14 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ 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 android.annotation.IntDef; import android.annotation.NonNull; import android.app.IActivityTaskManager; import android.graphics.Point; import android.graphics.Rect; Loading Loading @@ -104,6 +105,7 @@ class TaskPositioner implements IBinder.DeathRecipient { @VisibleForTesting Task mTask; WindowState mWindow; private boolean mResizing; private boolean mPreserveOrientation; private boolean mStartOrientationWasLandscape; Loading Loading @@ -238,8 +240,9 @@ class TaskPositioner implements IBinder.DeathRecipient { /** * @param displayContent The Display that the window being dragged is on. * @param win The window which will be dragged. */ void register(DisplayContent displayContent) { void register(DisplayContent displayContent, @NonNull WindowState win) { final Display display = displayContent.getDisplay(); if (DEBUG_TASK_POSITIONING) { Loading Loading @@ -309,6 +312,17 @@ class TaskPositioner implements IBinder.DeathRecipient { display.getRealSize(mMaxVisibleSize); mDragEnded = false; try { mClientCallback = win.mClient.asBinder(); mClientCallback.linkToDeath(this, 0 /* flags */); } catch (RemoteException e) { // The caller has died, so clean up TaskPositioningController. mService.mTaskPositioningController.finishTaskPositioning(); return; } mWindow = win; mTask = win.getTask(); } void unregister() { Loading Loading @@ -341,25 +355,19 @@ class TaskPositioner implements IBinder.DeathRecipient { ProtoLog.d(WM_DEBUG_ORIENTATION, "Resuming rotation after re-position"); mDisplayContent.getDisplayRotation().resume(); mDisplayContent = null; if (mClientCallback != null) { mClientCallback.unlinkToDeath(this, 0 /* flags */); } mWindow = null; } void startDrag(WindowState win, boolean resize, boolean preserveOrientation, float startX, void startDrag(boolean resize, boolean preserveOrientation, float startX, float startY) { if (DEBUG_TASK_POSITIONING) { Slog.d(TAG, "startDrag: win=" + win + ", resize=" + resize Slog.d(TAG, "startDrag: win=" + mWindow + ", resize=" + resize + ", preserveOrientation=" + preserveOrientation + ", {" + startX + ", " + startY + "}"); } try { mClientCallback = win.mClient.asBinder(); mClientCallback.linkToDeath(this, 0 /* flags */); } catch (RemoteException e) { // The caller has died, so clean up TaskPositioningController. mService.mTaskPositioningController.finishTaskPositioning(); return; } mTask = win.getTask(); // Use the bounds of the task which accounts for // multiple app windows. Don't use any bounds from win itself as it // may not be the same size as the task. Loading services/core/java/com/android/server/wm/TaskPositioningController.java +2 −2 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ class TaskPositioningController { mPositioningDisplay = displayContent; mTaskPositioner = TaskPositioner.create(mService); mTaskPositioner.register(displayContent); mTaskPositioner.register(displayContent, win); // We need to grab the touch focus so that the touch events during the // resizing/scrolling are not sent to the app. 'win' is the main window Loading @@ -187,7 +187,7 @@ class TaskPositioningController { return false; } mTaskPositioner.startDrag(win, resize, preserveOrientation, startX, startY); mTaskPositioner.startDrag(resize, preserveOrientation, startX, startY); return true; } Loading services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java +36 −39 Original line number Diff line number Diff line Loading @@ -66,7 +66,6 @@ public class TaskPositionerTests extends WindowTestsBase { private int mMinVisibleWidth; private int mMinVisibleHeight; private TaskPositioner mPositioner; private WindowState mWindow; @Before public void setUp() { Loading @@ -81,17 +80,16 @@ public class TaskPositionerTests extends WindowTestsBase { mMinVisibleHeight = dipToPixel(MINIMUM_VISIBLE_HEIGHT_IN_DP, dm); removeGlobalMinSizeRestriction(); WindowState win = createWindow(null, TYPE_BASE_APPLICATION, "window"); mPositioner = new TaskPositioner(mWm, mWm.mAtmService); mPositioner.register(mDisplayContent); mWindow = createWindow(null, TYPE_BASE_APPLICATION, "window"); mPositioner.mTask = mWindow.getTask(); mWindow.getStack().setWindowingMode(WINDOWING_MODE_FREEFORM); mPositioner.register(mDisplayContent, win); win.getStack().setWindowingMode(WINDOWING_MODE_FREEFORM); } @After public void tearDown() { mWindow = null; mPositioner = null; } Loading Loading @@ -122,8 +120,8 @@ public class TaskPositionerTests extends WindowTestsBase { mPositioner.mTask.setBounds(r, true); // Start a drag resize starting upper left. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); assertBoundsEquals(r, mPositioner.getWindowDragBounds()); // Drag to a good landscape size. Loading @@ -149,8 +147,8 @@ public class TaskPositionerTests extends WindowTestsBase { mPositioner.getWindowDragBounds()); // Start a drag resize left and see that only the left coord changes.. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); // Drag to the left. mPositioner.resizeDrag(0.0f, midY); Loading Loading @@ -184,8 +182,8 @@ public class TaskPositionerTests extends WindowTestsBase { mPositioner.mTask.setBounds(r, true); // Drag upper left. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.resizeDrag(0.0f, 0.0f); assertNotEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -193,8 +191,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag upper. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, midX, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, midX, r.top - MOUSE_DELTA_Y); mPositioner.resizeDrag(0.0f, 0.0f); assertEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -202,8 +200,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag upper right. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.resizeDrag(r.right + 100, 0.0f); assertEquals(r.left, mPositioner.getWindowDragBounds().left); assertNotEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -211,8 +209,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag right. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, midY); mPositioner.resizeDrag(r.right + 100, 0.0f); assertEquals(r.left, mPositioner.getWindowDragBounds().left); assertNotEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -220,8 +218,7 @@ public class TaskPositionerTests extends WindowTestsBase { assertEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag bottom right. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, r.bottom + MOUSE_DELTA_Y); mPositioner.resizeDrag(r.right + 100, r.bottom + 100); assertEquals(r.left, mPositioner.getWindowDragBounds().left); Loading @@ -230,8 +227,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertNotEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag bottom. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, midX, r.bottom + MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, midX, r.bottom + MOUSE_DELTA_Y); mPositioner.resizeDrag(r.right + 100, r.bottom + 100); assertEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -239,8 +236,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertNotEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag bottom left. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.bottom + MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.bottom + MOUSE_DELTA_Y); mPositioner.resizeDrag(0.0f, r.bottom + 100); assertNotEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -248,8 +245,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertNotEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag left. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.resizeDrag(0.0f, r.bottom + 100); assertNotEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -266,8 +263,8 @@ public class TaskPositionerTests extends WindowTestsBase { final Rect r = new Rect(100, 220, 700, 520); mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); assertBoundsEquals(r, mPositioner.getWindowDragBounds()); // Drag to a good landscape size. Loading Loading @@ -305,8 +302,8 @@ public class TaskPositionerTests extends WindowTestsBase { final int midY = (r.top + r.bottom) / 2; mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); // Drag to the left. mPositioner.resizeDrag(0.0f, midY); Loading Loading @@ -346,8 +343,8 @@ public class TaskPositionerTests extends WindowTestsBase { final int midX = (r.left + r.right) / 2; mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /*resizing*/, true /*preserveOrientation*/, midX, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /*resizing*/, true /*preserveOrientation*/, midX, r.top - MOUSE_DELTA_Y); // Drag to the left (no change). mPositioner.resizeDrag(0.0f, r.top); Loading Loading @@ -382,8 +379,8 @@ public class TaskPositionerTests extends WindowTestsBase { final Rect r = new Rect(330, 100, 630, 600); mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /*resizing*/, true /*preserveOrientation*/, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /*resizing*/, true /*preserveOrientation*/, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); assertBoundsEquals(r, mPositioner.getWindowDragBounds()); // Drag to a good landscape size. Loading Loading @@ -416,8 +413,8 @@ public class TaskPositionerTests extends WindowTestsBase { final int midY = (r.top + r.bottom) / 2; mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); // Drag to the left. mPositioner.resizeDrag(0.0f, midY); Loading Loading @@ -459,8 +456,8 @@ public class TaskPositionerTests extends WindowTestsBase { final int midX = (r.left + r.right) / 2; mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /* resizing */, true /* preserveOrientation */, midX, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, true /* preserveOrientation */, midX, r.top - MOUSE_DELTA_Y); // Drag to the left (no change). mPositioner.resizeDrag(0.0f, r.top); Loading Loading @@ -502,7 +499,7 @@ public class TaskPositionerTests extends WindowTestsBase { public void testFinishingMovingWhenBinderDied() { spyOn(mWm.mTaskPositioningController); mPositioner.startDrag(mWindow, false, false, 0 /* startX */, 0 /* startY */); mPositioner.startDrag(false, false, 0 /* startX */, 0 /* startY */); verify(mWm.mTaskPositioningController, never()).finishTaskPositioning(); mPositioner.binderDied(); verify(mWm.mTaskPositioningController).finishTaskPositioning(); Loading Loading
services/core/java/com/android/server/wm/TaskPositioner.java +22 −14 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ 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 android.annotation.IntDef; import android.annotation.NonNull; import android.app.IActivityTaskManager; import android.graphics.Point; import android.graphics.Rect; Loading Loading @@ -104,6 +105,7 @@ class TaskPositioner implements IBinder.DeathRecipient { @VisibleForTesting Task mTask; WindowState mWindow; private boolean mResizing; private boolean mPreserveOrientation; private boolean mStartOrientationWasLandscape; Loading Loading @@ -238,8 +240,9 @@ class TaskPositioner implements IBinder.DeathRecipient { /** * @param displayContent The Display that the window being dragged is on. * @param win The window which will be dragged. */ void register(DisplayContent displayContent) { void register(DisplayContent displayContent, @NonNull WindowState win) { final Display display = displayContent.getDisplay(); if (DEBUG_TASK_POSITIONING) { Loading Loading @@ -309,6 +312,17 @@ class TaskPositioner implements IBinder.DeathRecipient { display.getRealSize(mMaxVisibleSize); mDragEnded = false; try { mClientCallback = win.mClient.asBinder(); mClientCallback.linkToDeath(this, 0 /* flags */); } catch (RemoteException e) { // The caller has died, so clean up TaskPositioningController. mService.mTaskPositioningController.finishTaskPositioning(); return; } mWindow = win; mTask = win.getTask(); } void unregister() { Loading Loading @@ -341,25 +355,19 @@ class TaskPositioner implements IBinder.DeathRecipient { ProtoLog.d(WM_DEBUG_ORIENTATION, "Resuming rotation after re-position"); mDisplayContent.getDisplayRotation().resume(); mDisplayContent = null; if (mClientCallback != null) { mClientCallback.unlinkToDeath(this, 0 /* flags */); } mWindow = null; } void startDrag(WindowState win, boolean resize, boolean preserveOrientation, float startX, void startDrag(boolean resize, boolean preserveOrientation, float startX, float startY) { if (DEBUG_TASK_POSITIONING) { Slog.d(TAG, "startDrag: win=" + win + ", resize=" + resize Slog.d(TAG, "startDrag: win=" + mWindow + ", resize=" + resize + ", preserveOrientation=" + preserveOrientation + ", {" + startX + ", " + startY + "}"); } try { mClientCallback = win.mClient.asBinder(); mClientCallback.linkToDeath(this, 0 /* flags */); } catch (RemoteException e) { // The caller has died, so clean up TaskPositioningController. mService.mTaskPositioningController.finishTaskPositioning(); return; } mTask = win.getTask(); // Use the bounds of the task which accounts for // multiple app windows. Don't use any bounds from win itself as it // may not be the same size as the task. Loading
services/core/java/com/android/server/wm/TaskPositioningController.java +2 −2 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ class TaskPositioningController { mPositioningDisplay = displayContent; mTaskPositioner = TaskPositioner.create(mService); mTaskPositioner.register(displayContent); mTaskPositioner.register(displayContent, win); // We need to grab the touch focus so that the touch events during the // resizing/scrolling are not sent to the app. 'win' is the main window Loading @@ -187,7 +187,7 @@ class TaskPositioningController { return false; } mTaskPositioner.startDrag(win, resize, preserveOrientation, startX, startY); mTaskPositioner.startDrag(resize, preserveOrientation, startX, startY); return true; } Loading
services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java +36 −39 Original line number Diff line number Diff line Loading @@ -66,7 +66,6 @@ public class TaskPositionerTests extends WindowTestsBase { private int mMinVisibleWidth; private int mMinVisibleHeight; private TaskPositioner mPositioner; private WindowState mWindow; @Before public void setUp() { Loading @@ -81,17 +80,16 @@ public class TaskPositionerTests extends WindowTestsBase { mMinVisibleHeight = dipToPixel(MINIMUM_VISIBLE_HEIGHT_IN_DP, dm); removeGlobalMinSizeRestriction(); WindowState win = createWindow(null, TYPE_BASE_APPLICATION, "window"); mPositioner = new TaskPositioner(mWm, mWm.mAtmService); mPositioner.register(mDisplayContent); mWindow = createWindow(null, TYPE_BASE_APPLICATION, "window"); mPositioner.mTask = mWindow.getTask(); mWindow.getStack().setWindowingMode(WINDOWING_MODE_FREEFORM); mPositioner.register(mDisplayContent, win); win.getStack().setWindowingMode(WINDOWING_MODE_FREEFORM); } @After public void tearDown() { mWindow = null; mPositioner = null; } Loading Loading @@ -122,8 +120,8 @@ public class TaskPositionerTests extends WindowTestsBase { mPositioner.mTask.setBounds(r, true); // Start a drag resize starting upper left. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); assertBoundsEquals(r, mPositioner.getWindowDragBounds()); // Drag to a good landscape size. Loading @@ -149,8 +147,8 @@ public class TaskPositionerTests extends WindowTestsBase { mPositioner.getWindowDragBounds()); // Start a drag resize left and see that only the left coord changes.. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); // Drag to the left. mPositioner.resizeDrag(0.0f, midY); Loading Loading @@ -184,8 +182,8 @@ public class TaskPositionerTests extends WindowTestsBase { mPositioner.mTask.setBounds(r, true); // Drag upper left. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.resizeDrag(0.0f, 0.0f); assertNotEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -193,8 +191,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag upper. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, midX, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, midX, r.top - MOUSE_DELTA_Y); mPositioner.resizeDrag(0.0f, 0.0f); assertEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -202,8 +200,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag upper right. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.resizeDrag(r.right + 100, 0.0f); assertEquals(r.left, mPositioner.getWindowDragBounds().left); assertNotEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -211,8 +209,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag right. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, midY); mPositioner.resizeDrag(r.right + 100, 0.0f); assertEquals(r.left, mPositioner.getWindowDragBounds().left); assertNotEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -220,8 +218,7 @@ public class TaskPositionerTests extends WindowTestsBase { assertEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag bottom right. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.right + MOUSE_DELTA_X, r.bottom + MOUSE_DELTA_Y); mPositioner.resizeDrag(r.right + 100, r.bottom + 100); assertEquals(r.left, mPositioner.getWindowDragBounds().left); Loading @@ -230,8 +227,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertNotEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag bottom. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, midX, r.bottom + MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, midX, r.bottom + MOUSE_DELTA_Y); mPositioner.resizeDrag(r.right + 100, r.bottom + 100); assertEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -239,8 +236,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertNotEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag bottom left. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.bottom + MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.bottom + MOUSE_DELTA_Y); mPositioner.resizeDrag(0.0f, r.bottom + 100); assertNotEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -248,8 +245,8 @@ public class TaskPositionerTests extends WindowTestsBase { assertNotEquals(r.bottom, mPositioner.getWindowDragBounds().bottom); // Drag left. mPositioner.startDrag(mWindow, true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, false /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.resizeDrag(0.0f, r.bottom + 100); assertNotEquals(r.left, mPositioner.getWindowDragBounds().left); assertEquals(r.right, mPositioner.getWindowDragBounds().right); Loading @@ -266,8 +263,8 @@ public class TaskPositionerTests extends WindowTestsBase { final Rect r = new Rect(100, 220, 700, 520); mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); assertBoundsEquals(r, mPositioner.getWindowDragBounds()); // Drag to a good landscape size. Loading Loading @@ -305,8 +302,8 @@ public class TaskPositionerTests extends WindowTestsBase { final int midY = (r.top + r.bottom) / 2; mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); // Drag to the left. mPositioner.resizeDrag(0.0f, midY); Loading Loading @@ -346,8 +343,8 @@ public class TaskPositionerTests extends WindowTestsBase { final int midX = (r.left + r.right) / 2; mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /*resizing*/, true /*preserveOrientation*/, midX, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /*resizing*/, true /*preserveOrientation*/, midX, r.top - MOUSE_DELTA_Y); // Drag to the left (no change). mPositioner.resizeDrag(0.0f, r.top); Loading Loading @@ -382,8 +379,8 @@ public class TaskPositionerTests extends WindowTestsBase { final Rect r = new Rect(330, 100, 630, 600); mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /*resizing*/, true /*preserveOrientation*/, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /*resizing*/, true /*preserveOrientation*/, r.left - MOUSE_DELTA_X, r.top - MOUSE_DELTA_Y); assertBoundsEquals(r, mPositioner.getWindowDragBounds()); // Drag to a good landscape size. Loading Loading @@ -416,8 +413,8 @@ public class TaskPositionerTests extends WindowTestsBase { final int midY = (r.top + r.bottom) / 2; mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); mPositioner.startDrag(true /* resizing */, true /* preserveOrientation */, r.left - MOUSE_DELTA_X, midY); // Drag to the left. mPositioner.resizeDrag(0.0f, midY); Loading Loading @@ -459,8 +456,8 @@ public class TaskPositionerTests extends WindowTestsBase { final int midX = (r.left + r.right) / 2; mPositioner.mTask.setBounds(r, true); mPositioner.startDrag(mWindow, true /* resizing */, true /* preserveOrientation */, midX, r.top - MOUSE_DELTA_Y); mPositioner.startDrag(true /* resizing */, true /* preserveOrientation */, midX, r.top - MOUSE_DELTA_Y); // Drag to the left (no change). mPositioner.resizeDrag(0.0f, r.top); Loading Loading @@ -502,7 +499,7 @@ public class TaskPositionerTests extends WindowTestsBase { public void testFinishingMovingWhenBinderDied() { spyOn(mWm.mTaskPositioningController); mPositioner.startDrag(mWindow, false, false, 0 /* startX */, 0 /* startY */); mPositioner.startDrag(false, false, 0 /* startX */, 0 /* startY */); verify(mWm.mTaskPositioningController, never()).finishTaskPositioning(); mPositioner.binderDied(); verify(mWm.mTaskPositioningController).finishTaskPositioning(); Loading