From d63f2035bd19558ecde8f92a1d2452cb6eadcec8 Mon Sep 17 00:00:00 2001 From: Nikita Dubrovsky Date: Wed, 20 Nov 2019 14:33:21 -0800 Subject: Consolidate tracking of touch state in Editor (editable TextView) The goal of these changes is to consolidate the state that needs to be tracked for user motion events (touches, clicks, etc), in order to make it easier to add/update functionality in the future. These changes are intended to fully preserve existing behavior from the user perspective. For the most part, the logic is completely unchanged (just that the code is pulled out), but it's worth calling out the following subtle changes to the logic. These changes don't affect any user-visible behavior. 1) In Editor.onTouchEvent, the recorded position of the last down event is now updated before SelectionModifierCursorController.onTouchEvent() is invoked. 2) In Editor.updateTapState (now in EditorTouchState.update), instead of using SystemClock.uptimeMillis() for the event time, we use event.getEventTime(). Bug: 143852764 Test: Manual testing and unit test atest FrameworksCoreTests:EditorTouchStateTest Change-Id: Ic40b5e53412294d365bc9d787e7013a44fe11ffa --- core/java/android/widget/TextView.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'core/java/android/widget/TextView.java') diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 90e8ef2c6423..ee169f25b778 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -10860,7 +10860,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override public boolean onTouchEvent(MotionEvent event) { if (DEBUG_CURSOR) { - logCursor("onTouchEvent", MotionEvent.actionToString(event.getActionMasked())); + logCursor("onTouchEvent", "%d: %s (%f,%f)", + event.getSequenceNumber(), + MotionEvent.actionToString(event.getActionMasked()), + event.getX(), event.getY()); } final int action = event.getActionMasked(); -- cgit v1.2.3