Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 749b2b84 authored by Sebastian Franco's avatar Sebastian Franco
Browse files

Prevent dragging widgets to another page in tests when starting a drag.

The function Launchable.startDrag it's supposed to grab and icon or widget
and start the dragging by moving it only in the verticall position but
because it uses the coordinates of the object before entering the
SPRING_LOADED_STATE_ORDINAL state then the coordiates where it moves
are outisde of the cell layout and it moves to a new page. This only happens
if the phone is too slow and it triggers the page change, otherwise it would
be too fast.

To fix it, I'm moving the icon/widget to the center of the screen minus
getStartDragThreshold() to ensure the drag is always triggered.

Fix: 242323136
Fix: 244224955
Fix: 241019568
Fix: 241583798
Test: atest ReorderWidgets
Change-Id: I0e431b994aa4a3d5c8be45b6c73263732553b36c
parent 2ae4420a
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import com.android.launcher3.tapl.Widget;
import com.android.launcher3.tapl.WidgetResizeFrame;
import com.android.launcher3.ui.AbstractLauncherUiTest;
import com.android.launcher3.ui.TaplTestsLauncher3;
import com.android.launcher3.util.rule.ScreenRecordRule.ScreenRecord;
import com.android.launcher3.util.rule.ShellCommandRule;
import com.android.launcher3.views.DoubleShadowBubbleTextView;
import com.android.launcher3.widget.LauncherAppWidgetHostView;
@@ -141,26 +140,22 @@ public class ReorderWidgets extends AbstractLauncherUiTest {
        runTestCase(testCaseMap.get(iconGridDimensions));
    }

    @ScreenRecord // b/242323136
    @Test
    public void simpleReorder() {
        runTestCaseMap(SimpleReorderCase.TEST_BY_GRID_SIZE,
                SimpleReorderCase.class.getSimpleName());
    }

    @ScreenRecord // b/242323136
    @Test
    public void pushTest() {
        runTestCaseMap(PushReorderCase.TEST_BY_GRID_SIZE, PushReorderCase.class.getSimpleName());
    }

    @ScreenRecord // b/242323136
    @Test
    public void fullReorder() {
        runTestCaseMap(FullReorderCase.TEST_BY_GRID_SIZE, FullReorderCase.class.getSimpleName());
    }

    @ScreenRecord // b/242323136
    @Test
    public void moveOutReorder() {
        runTestCaseMap(MoveOutReorderCase.TEST_BY_GRID_SIZE,
+4 −3
Original line number Diff line number Diff line
@@ -85,9 +85,10 @@ public abstract class Launchable {
    }

    Point startDrag(long downTime, Runnable expectLongClickEvents, boolean runToSpringLoadedState) {
        final Point iconCenter = getObject().getVisibleCenter();
        final Point dragStartCenter = new Point(iconCenter.x,
                iconCenter.y - getStartDragThreshold());
        Point iconCenter = getObject().getVisibleCenter();
        final Point displaySize = mLauncher.getRealDisplaySize();
        final Point dragStartCenter = new Point(displaySize.x / 2,
                displaySize.y / 2 - getStartDragThreshold());

        if (runToSpringLoadedState) {
            mLauncher.runToState(() -> movePointerForStartDrag(