From 07221a4ad11fa5ae6275c107f1f86260691bd505 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Fri, 3 Sep 2010 00:48:16 +0900 Subject: Support sliding pop-up mini-keyboard input TODO: - Remove close button on mini-keyboard - Dismiss mini-keyboard when finger leave the screen while no key is selected This change also renames some instance variables to have more meaningful name. Bug: 2959169 Change-Id: I9fd79116a647d7be82415c6e9e7cdaf6edcb2bf6 --- .../android/inputmethod/latin/PointerTracker.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'java/src/com/android/inputmethod/latin/PointerTracker.java') diff --git a/java/src/com/android/inputmethod/latin/PointerTracker.java b/java/src/com/android/inputmethod/latin/PointerTracker.java index 5b5cbe5cc..cb45e2100 100644 --- a/java/src/com/android/inputmethod/latin/PointerTracker.java +++ b/java/src/com/android/inputmethod/latin/PointerTracker.java @@ -61,6 +61,7 @@ public class PointerTracker { private int mCurrentKey = NOT_A_KEY; private int mStartX; private int mStartY; + private long mDownTime; // for move de-bouncing private int mLastCodeX; @@ -144,6 +145,7 @@ public class PointerTracker { mCurrentKey = keyIndex; mStartX = x; mStartY = y; + mDownTime = eventTime; startMoveDebouncing(x, y); startTimeDebouncing(eventTime); checkMultiTap(eventTime, keyIndex); @@ -181,7 +183,19 @@ public class PointerTracker { mHandler.startLongPressTimer(LONGPRESS_TIMEOUT, keyIndex, this); } } else { - mHandler.cancelLongPressTimer(); + if (mCurrentKey != NOT_A_KEY) { + updateTimeDebouncing(eventTime); + mCurrentKey = keyIndex; + mHandler.cancelLongPressTimer(); + } else if (isMinorMoveBounce(x, y, keyIndex, mCurrentKey)) { + updateTimeDebouncing(eventTime); + } else { + resetMultiTap(); + resetTimeDebouncing(eventTime, mCurrentKey); + resetMoveDebouncing(); + mCurrentKey = keyIndex; + mHandler.cancelLongPressTimer(); + } } /* * While time debouncing is in effect, mCurrentKey holds the new key and this tracker @@ -252,6 +266,10 @@ public class PointerTracker { return mLastY; } + public long getDownTime() { + return mDownTime; + } + // These package scope methods are only for debugging purpose. /* package */ int getStartX() { return mStartX; -- cgit v1.2.3-83-g751a