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

Commit e5c36cd1 authored by Nikita Dubrovsky's avatar Nikita Dubrovsky Committed by Automerger Merge Worker
Browse files

Merge "Change cursor drag threshold from 30 to 45 degrees from vertical" into...

Merge "Change cursor drag threshold from 30 to 45 degrees from vertical" into rvc-dev am: f44a60bd am: 3df7b0eb

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12052997

Change-Id: Ic99d0569c13c27002a330d61428bb9211eac903f
parents 6e0221d5 3df7b0eb
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -174,12 +174,9 @@ public class EditorTouchState {
                int touchSlop = config.getScaledTouchSlop();
                mMovedEnoughForDrag = distanceSquared > touchSlop * touchSlop;
                if (mMovedEnoughForDrag) {
                    // If the direction of the swipe motion is within 30 degrees of vertical, it is
                    // considered a vertical drag. We don't actually have to compute the angle to
                    // implement the check though. When the angle is exactly 30 degrees from
                    // vertical, 2*deltaX = distance. When the angle is less than 30 degrees from
                    // vertical, 2*deltaX < distance.
                    mIsDragCloseToVertical = (4 * deltaXSquared) <= distanceSquared;
                    // If the direction of the swipe motion is within 45 degrees of vertical, it is
                    // considered a vertical drag.
                    mIsDragCloseToVertical = Math.abs(deltaX) <= Math.abs(deltaY);
                }
            }
        } else if (action == MotionEvent.ACTION_CANCEL) {
+2 −2
Original line number Diff line number Diff line
@@ -145,7 +145,7 @@ public class EditorCursorDragTest {
        // Swipe along a diagonal path. This should drag the cursor. Because we snap the finger to
        // the handle as the touch moves downwards (and because we have some slop to avoid jumping
        // across lines), the cursor position will end up higher than the finger position.
        onView(withId(R.id.textview)).perform(dragOnText(text.indexOf("line1"), text.indexOf("3")));
        onView(withId(R.id.textview)).perform(dragOnText(text.indexOf("line1"), text.indexOf("2")));
        onView(withId(R.id.textview)).check(hasInsertionPointerAtIndex(text.indexOf("1")));

        // Swipe right-down along a very steep diagonal path. This should not drag the cursor.
@@ -181,7 +181,7 @@ public class EditorCursorDragTest {
        // Swipe along a diagonal path. This should drag the cursor. Because we snap the finger to
        // the handle as the touch moves downwards (and because we have some slop to avoid jumping
        // across lines), the cursor position will end up higher than the finger position.
        onView(withId(R.id.textview)).perform(dragOnText(text.indexOf("line1"), text.indexOf("3")));
        onView(withId(R.id.textview)).perform(dragOnText(text.indexOf("line1"), text.indexOf("2")));
        onView(withId(R.id.textview)).check(hasInsertionPointerAtIndex(text.indexOf("1")));

        // Swipe right-down along a very steep diagonal path. This should not drag the cursor.
+2 −2
Original line number Diff line number Diff line
@@ -326,9 +326,9 @@ public class EditorTouchStateTest {
        mTouchState.update(event1, mConfig);
        assertSingleTap(mTouchState, 0f, 0f, 0, 0);

        // Simulate an ACTION_MOVE event that is > 30 deg from vertical.
        // Simulate an ACTION_MOVE event that is > 45 deg from vertical.
        long event2Time = 1002;
        MotionEvent event2 = moveEvent(event1Time, event2Time, 100f, 173f);
        MotionEvent event2 = moveEvent(event1Time, event2Time, 100f, 90f);
        mTouchState.update(event2, mConfig);
        assertDrag(mTouchState, 0f, 0f, 0, 0, false);