summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/PointerTracker.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-07-04 19:59:57 +0900
committerTadashi G. Takaoka <takaoka@google.com>2011-07-04 22:32:21 +0900
commita19b84dcf65bd70caa0fc72089cfe043b023a898 (patch)
tree22000ca2fda581e07c03c827a27f55e84009dc1f /java/src/com/android/inputmethod/keyboard/PointerTracker.java
parent5f6816fa8bf259f0340a3d12c551d1532f647d66 (diff)
Move key hysteresis distance parameter to KeyDetector class
Bug: 4768084 Change-Id: Ib8771afd7363a4a5590b2b4a586e3014c026be34
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/PointerTracker.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java19
1 files changed, 10 insertions, 9 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 68284cd1b..ed93978ac 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -56,7 +56,7 @@ public class PointerTracker {
private final LatinKeyboardBaseView mKeyboardView;
private final UIProxy mProxy;
private final UIHandler mHandler;
- private final KeyDetector mKeyDetector;
+ private KeyDetector mKeyDetector;
private KeyboardActionListener mListener = EMPTY_LISTENER;
private final KeyboardSwitcher mKeyboardSwitcher;
private final boolean mHasDistinctMultitouch;
@@ -67,7 +67,6 @@ public class PointerTracker {
private Keyboard mKeyboard;
private List<Key> mKeys;
- private int mKeyHysteresisDistanceSquared = -1;
private int mKeyQuarterWidthSquared;
private final PointerTrackerKeyState mKeyState;
@@ -198,12 +197,13 @@ public class PointerTracker {
mListener.onCancelInput();
}
- public void setKeyboard(Keyboard keyboard, float keyHysteresisDistance) {
- if (keyboard == null || keyHysteresisDistance < 0)
- throw new IllegalArgumentException();
+ public void setKeyboard(Keyboard keyboard, KeyDetector keyDetector) {
+ if (keyboard == null || keyDetector == null)
+ throw new NullPointerException();
mKeyboard = keyboard;
mKeys = keyboard.getKeys();
- mKeyHysteresisDistanceSquared = (int)(keyHysteresisDistance * keyHysteresisDistance);
+ mKeyDetector = keyDetector;
+ mKeyState.setKeyDetector(keyDetector);
final int keyQuarterWidth = keyboard.getKeyWidth() / 4;
mKeyQuarterWidthSquared = keyQuarterWidth * keyQuarterWidth;
// Mark that keyboard layout has been changed.
@@ -602,13 +602,14 @@ public class PointerTracker {
}
private boolean isMajorEnoughMoveToBeOnNewKey(int x, int y, int newKey) {
- if (mKeys == null || mKeyHysteresisDistanceSquared < 0)
- throw new IllegalStateException("keyboard and/or hysteresis not set");
+ if (mKeys == null || mKeyDetector == null)
+ throw new NullPointerException("keyboard and/or key detector not set");
int curKey = mKeyState.getKeyIndex();
if (newKey == curKey) {
return false;
} else if (isValidKeyIndex(curKey)) {
- return mKeys.get(curKey).squaredDistanceToEdge(x, y) >= mKeyHysteresisDistanceSquared;
+ return mKeys.get(curKey).squaredDistanceToEdge(x, y)
+ >= mKeyDetector.getKeyHysteresisDistanceSquared();
} else {
return true;
}