Merge "Use long click timeout for handwriting" into tm-dev

This commit is contained in:
Haoyu Zhang
2022-03-16 23:01:21 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 8 deletions

View File

@@ -55,10 +55,10 @@ public class HandwritingInitiator {
*/ */
private final int mTouchSlop; private final int mTouchSlop;
/** /**
* The timeout used to distinguish tap from handwriting. If the stylus doesn't move before this * The timeout used to distinguish tap or long click from handwriting. If the stylus doesn't
* timeout, it's not considered as handwriting. * move before this timeout, it's not considered as handwriting.
*/ */
private final long mTapTimeoutInMillis; private final long mHandwritingTimeoutInMillis;
private State mState = new State(); private State mState = new State();
private final HandwritingAreaTracker mHandwritingAreasTracker = new HandwritingAreaTracker(); private final HandwritingAreaTracker mHandwritingAreasTracker = new HandwritingAreaTracker();
@@ -90,7 +90,7 @@ public class HandwritingInitiator {
public HandwritingInitiator(@NonNull ViewConfiguration viewConfiguration, public HandwritingInitiator(@NonNull ViewConfiguration viewConfiguration,
@NonNull InputMethodManager inputMethodManager) { @NonNull InputMethodManager inputMethodManager) {
mTouchSlop = viewConfiguration.getScaledTouchSlop(); mTouchSlop = viewConfiguration.getScaledTouchSlop();
mTapTimeoutInMillis = ViewConfiguration.getTapTimeout(); mHandwritingTimeoutInMillis = ViewConfiguration.getLongPressTimeout();
mImm = inputMethodManager; mImm = inputMethodManager;
} }
@@ -145,7 +145,7 @@ public class HandwritingInitiator {
final long timeElapsed = final long timeElapsed =
motionEvent.getEventTime() - mState.mStylusDownTimeInMillis; motionEvent.getEventTime() - mState.mStylusDownTimeInMillis;
if (timeElapsed > mTapTimeoutInMillis) { if (timeElapsed > mHandwritingTimeoutInMillis) {
reset(); reset();
return; return;
} }

View File

@@ -60,7 +60,7 @@ import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class HandwritingInitiatorTest { public class HandwritingInitiatorTest {
private static final int TOUCH_SLOP = 8; private static final int TOUCH_SLOP = 8;
private static final long TAP_TIMEOUT = ViewConfiguration.getTapTimeout(); private static final long TIMEOUT = ViewConfiguration.getLongPressTimeout();
private static final Rect sHwArea = new Rect(100, 200, 500, 500); private static final Rect sHwArea = new Rect(100, 200, 500, 500);
private HandwritingInitiator mHandwritingInitiator; private HandwritingInitiator mHandwritingInitiator;
@@ -177,7 +177,7 @@ public class HandwritingInitiatorTest {
} }
@Test @Test
public void onTouchEvent_notStartHandwriting_when_stylusMove_afterTapTimeOut() { public void onTouchEvent_notStartHandwriting_when_stylusMove_afterTimeOut() {
mHandwritingInitiator.onInputConnectionCreated(mTestView); mHandwritingInitiator.onInputConnectionCreated(mTestView);
final int x1 = 10; final int x1 = 10;
final int y1 = 10; final int y1 = 10;
@@ -187,7 +187,7 @@ public class HandwritingInitiatorTest {
final int x2 = x1 + TOUCH_SLOP * 2; final int x2 = x1 + TOUCH_SLOP * 2;
final int y2 = y1; final int y2 = y1;
final long time2 = time1 + TAP_TIMEOUT + 10L; final long time2 = time1 + TIMEOUT + 10L;
MotionEvent stylusEvent2 = createStylusEvent(ACTION_MOVE, x2, y2, time2); MotionEvent stylusEvent2 = createStylusEvent(ACTION_MOVE, x2, y2, time2);
mHandwritingInitiator.onTouchEvent(stylusEvent2); mHandwritingInitiator.onTouchEvent(stylusEvent2);