aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/PointerTracker.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2010-09-02 22:20:27 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-02 22:20:27 -0700
commit22776af828c69db22d90b42d196f487095905c70 (patch)
treee08cfc51b91945e83ed3658147df0f778687a4fb /java/src/com/android/inputmethod/latin/PointerTracker.java
parent2fb112f142bdac2c7cb96da5f264b5575ce611e7 (diff)
parentc5d33b16521de56ad01b0b6308217efb009078b7 (diff)
downloadlatinime-22776af828c69db22d90b42d196f487095905c70.tar.gz
latinime-22776af828c69db22d90b42d196f487095905c70.tar.xz
latinime-22776af828c69db22d90b42d196f487095905c70.zip
am c5d33b16: Fix NPE in LatinKeyboardBaseView
Merge commit 'c5d33b16521de56ad01b0b6308217efb009078b7' into gingerbread-plus-aosp * commit 'c5d33b16521de56ad01b0b6308217efb009078b7': Fix NPE in LatinKeyboardBaseView
Diffstat (limited to 'java/src/com/android/inputmethod/latin/PointerTracker.java')
-rw-r--r--java/src/com/android/inputmethod/latin/PointerTracker.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/latin/PointerTracker.java b/java/src/com/android/inputmethod/latin/PointerTracker.java
index cb45e2100..a4447d58b 100644
--- a/java/src/com/android/inputmethod/latin/PointerTracker.java
+++ b/java/src/com/android/inputmethod/latin/PointerTracker.java
@@ -32,9 +32,6 @@ public class PointerTracker {
public interface UIProxy {
public void invalidateKey(Key key);
public void showPreview(int keyIndex, PointerTracker tracker);
- // TODO: These methods might be temporary.
- public void dismissPopupKeyboard();
- public boolean isMiniKeyboardOnScreen();
}
public final int mPointerId;
@@ -63,6 +60,9 @@ public class PointerTracker {
private int mStartY;
private long mDownTime;
+ // true if event is already translated to a key action (long press or mini-keyboard)
+ private boolean mKeyAlreadyProcessed;
+
// for move de-bouncing
private int mLastCodeX;
private int mLastCodeY;
@@ -140,12 +140,17 @@ public class PointerTracker {
}
}
+ public void setAlreadyProcessed() {
+ mKeyAlreadyProcessed = true;
+ }
+
public void onDownEvent(int x, int y, long eventTime) {
int keyIndex = mKeyDetector.getKeyIndexAndNearbyCodes(x, y, null);
mCurrentKey = keyIndex;
mStartX = x;
mStartY = y;
mDownTime = eventTime;
+ mKeyAlreadyProcessed = false;
startMoveDebouncing(x, y);
startTimeDebouncing(eventTime);
checkMultiTap(eventTime, keyIndex);
@@ -230,7 +235,7 @@ public class PointerTracker {
}
showKeyPreviewAndUpdateKey(NOT_A_KEY);
// If we're not on a repeating key (which sends on a DOWN event)
- if (!wasInKeyRepeat && !mProxy.isMiniKeyboardOnScreen()) {
+ if (!wasInKeyRepeat && !mKeyAlreadyProcessed) {
detectAndSendKey(mCurrentKey, (int)x, (int)y, eventTime);
}
if (isValidKeyIndex(keyIndex))
@@ -242,7 +247,6 @@ public class PointerTracker {
debugLog("onCancelEvt:", x, y);
mHandler.cancelKeyTimers();
mHandler.cancelPopupPreview();
- mProxy.dismissPopupKeyboard();
showKeyPreviewAndUpdateKey(NOT_A_KEY);
int keyIndex = mCurrentKey;
if (isValidKeyIndex(keyIndex))