aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorKen Wakasa <kwakasa@google.com>2010-06-30 18:38:50 -0700
committerGerrit Code Review <gerrit2@ppgnte-ubiq63.twd.corp.google.com>2010-06-30 18:38:50 -0700
commitb54abe22ab9cc683b15b2863e870c1c36a141e0e (patch)
treeaa926e3b5e2a2541b2c03dda713c7c6296cb48a6 /java/src
parentc891d4d16cce1fd7fce08738ee3bdba946998f20 (diff)
parent59d271ee763efac79c07e8224490e3755284e603 (diff)
downloadlatinime-b54abe22ab9cc683b15b2863e870c1c36a141e0e.tar.gz
latinime-b54abe22ab9cc683b15b2863e870c1c36a141e0e.tar.xz
latinime-b54abe22ab9cc683b15b2863e870c1c36a141e0e.zip
Merge "Add key debounce. bug: 2517112"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index 7f35ea98e..4205aadcf 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -182,6 +182,8 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
private int mVerticalCorrection;
private int mProximityThreshold;
+ private int mKeyDebounceThreshold;
+ private static final int KEY_DEBOUNCE_FACTOR = 6;
private boolean mPreviewCentered = false;
private boolean mShowPreview = true;
@@ -633,6 +635,9 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
if (dimensionSum < 0 || length == 0) return;
mProximityThreshold = (int) (dimensionSum * 1.4f / length);
mProximityThreshold *= mProximityThreshold; // Square it
+
+ // 1/KEY_DEBOUNCE_FACTOR of distance between adjacent keys
+ mKeyDebounceThreshold = mProximityThreshold / KEY_DEBOUNCE_FACTOR;
}
@Override
@@ -1158,6 +1163,13 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
return result;
}
+ private boolean isMinorMoveForKeyDebounce(int x, int y) {
+ // TODO: Check the coordinate against each key border. The current
+ // logic is pretty simple.
+ return ((x - mLastCodeX) * (x - mLastCodeX) +
+ (y - mLastCodeY) * (y - mLastCodeY)) < mKeyDebounceThreshold;
+ }
+
private boolean onModifiedTouchEvent(MotionEvent me, boolean possiblePoly) {
int touchX = (int) me.getX() - getPaddingLeft();
int touchY = (int) me.getY() + mVerticalCorrection - getPaddingTop();
@@ -1231,7 +1243,8 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
mCurrentKey = keyIndex;
mCurrentKeyTime = eventTime - mDownTime;
} else {
- if (keyIndex == mCurrentKey) {
+ if (keyIndex == mCurrentKey
+ || isMinorMoveForKeyDebounce(touchX, touchY)) {
mCurrentKeyTime += eventTime - mLastMoveTime;
continueLongPress = true;
} else if (mRepeatKeyIndex == NOT_A_KEY) {