Merge "Change cursor drag threshold from 30 to 45 degrees from vertical" into rvc-dev am: f44a60bd69 am: cf4e0dc46b am: c84cbdb149 am: 1bf451125b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12052997 Change-Id: Ia7fbe25cc8074d6d33480737b8762522a9958939
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -143,7 +143,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.
|
||||
@@ -179,7 +179,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.
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user