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

Commit cf4e0dc4 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

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

Change-Id: Ie8a3eee8e2030bb429531d0f13df4302d4908072
parents 5f6eeb58 f44a60bd
Loading
Loading
Loading
Loading
+3 −6
Original line number Original line Diff line number Diff line
@@ -174,12 +174,9 @@ public class EditorTouchState {
                int touchSlop = config.getScaledTouchSlop();
                int touchSlop = config.getScaledTouchSlop();
                mMovedEnoughForDrag = distanceSquared > touchSlop * touchSlop;
                mMovedEnoughForDrag = distanceSquared > touchSlop * touchSlop;
                if (mMovedEnoughForDrag) {
                if (mMovedEnoughForDrag) {
                    // If the direction of the swipe motion is within 30 degrees of vertical, it is
                    // If the direction of the swipe motion is within 45 degrees of vertical, it is
                    // considered a vertical drag. We don't actually have to compute the angle to
                    // considered a vertical drag.
                    // implement the check though. When the angle is exactly 30 degrees from
                    mIsDragCloseToVertical = Math.abs(deltaX) <= Math.abs(deltaY);
                    // vertical, 2*deltaX = distance. When the angle is less than 30 degrees from
                    // vertical, 2*deltaX < distance.
                    mIsDragCloseToVertical = (4 * deltaXSquared) <= distanceSquared;
                }
                }
            }
            }
        } else if (action == MotionEvent.ACTION_CANCEL) {
        } else if (action == MotionEvent.ACTION_CANCEL) {
+2 −2
Original line number Original line 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
        // 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
        // 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.
        // 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")));
        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.
        // 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
        // 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
        // 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.
        // 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")));
        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.
        // Swipe right-down along a very steep diagonal path. This should not drag the cursor.
+2 −2
Original line number Original line Diff line number Diff line
@@ -326,9 +326,9 @@ public class EditorTouchStateTest {
        mTouchState.update(event1, mConfig);
        mTouchState.update(event1, mConfig);
        assertSingleTap(mTouchState, 0f, 0f, 0, 0);
        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;
        long event2Time = 1002;
        MotionEvent event2 = moveEvent(event1Time, event2Time, 100f, 173f);
        MotionEvent event2 = moveEvent(event1Time, event2Time, 100f, 90f);
        mTouchState.update(event2, mConfig);
        mTouchState.update(event2, mConfig);
        assertDrag(mTouchState, 0f, 0f, 0, 0, false);
        assertDrag(mTouchState, 0f, 0f, 0, 0, false);