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 12:51:03 +0900
committerTadashi G. Takaoka <takaoka@google.com>2010-09-03 13:03:08 +0900
commitc5d33b16521de56ad01b0b6308217efb009078b7 (patch)
treee08cfc51b91945e83ed3658147df0f778687a4fb /java/src/com/android/inputmethod/latin/PointerTracker.java
parent7083b7486ec62ab06818e1bfbd0694d5f3563473 (diff)
downloadlatinime-c5d33b16521de56ad01b0b6308217efb009078b7.tar.gz
latinime-c5d33b16521de56ad01b0b6308217efb009078b7.tar.xz
latinime-c5d33b16521de56ad01b0b6308217efb009078b7.zip
Fix NPE in LatinKeyboardBaseView
This change also refactors some mini-keyboard related methods in LatinKeyboardBaseView and PointerTracker class. Bug: 2973236 Change-Id: I3190fe89ea3ac3c6d351ed4b6d77de98a0aa65db
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))