aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/PointerTracker.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2010-09-03 00:48:16 +0900
committerTadashi G. Takaoka <takaoka@google.com>2010-09-03 04:51:37 +0900
commit07221a4ad11fa5ae6275c107f1f86260691bd505 (patch)
tree0cb55d8afb2121acc8c57bc5403753a237a28eb1 /java/src/com/android/inputmethod/latin/PointerTracker.java
parentf0fd506520052dbced70872663f9d61b1ab957d1 (diff)
downloadlatinime-07221a4ad11fa5ae6275c107f1f86260691bd505.tar.gz
latinime-07221a4ad11fa5ae6275c107f1f86260691bd505.tar.xz
latinime-07221a4ad11fa5ae6275c107f1f86260691bd505.zip
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
Diffstat (limited to 'java/src/com/android/inputmethod/latin/PointerTracker.java')
-rw-r--r--java/src/com/android/inputmethod/latin/PointerTracker.java20
1 files changed, 19 insertions, 1 deletions
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;