aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2010-09-02 20:28:31 +0900
committerTadashi G. Takaoka <takaoka@google.com>2010-09-02 20:28:31 +0900
commit3d4123fabb51a0c929401d98fca496759a5aa0d6 (patch)
tree5c5dcfbaad8d6f4590ab30ed4d8ebf63940b1ee5 /java/src
parent3491c877dd25df829e5e6541a72f375cc2842ea5 (diff)
downloadlatinime-3d4123fabb51a0c929401d98fca496759a5aa0d6.tar.gz
latinime-3d4123fabb51a0c929401d98fca496759a5aa0d6.tar.xz
latinime-3d4123fabb51a0c929401d98fca496759a5aa0d6.zip
Add PointerTracker argument to long press related methods
This change also adds debugging log to PointerTracker class Bug: 2959169 Change-Id: Ie6cf67681180467bd8ba35d0205ce6727b7684a2
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java19
-rw-r--r--java/src/com/android/inputmethod/latin/PointerTracker.java29
2 files changed, 33 insertions, 15 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index 30042d8a1..14b8143a9 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -254,9 +254,11 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener,
startKeyRepeatTimer(REPEAT_INTERVAL, msg.arg1, tracker);
break;
}
- case MSG_LONGPRESS_KEY:
- openPopupIfRequired(msg.arg1);
+ case MSG_LONGPRESS_KEY: {
+ final PointerTracker tracker = (PointerTracker)msg.obj;
+ openPopupIfRequired(msg.arg1, tracker);
break;
+ }
}
}
@@ -299,9 +301,9 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener,
return mInKeyRepeat;
}
- public void startLongPressTimer(int keyIndex, long delay) {
+ public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker) {
removeMessages(MSG_LONGPRESS_KEY);
- sendMessageDelayed(obtainMessage(MSG_LONGPRESS_KEY, keyIndex, 0), delay);
+ sendMessageDelayed(obtainMessage(MSG_LONGPRESS_KEY, keyIndex, 0, tracker), delay);
}
public void cancelLongPressTimer() {
@@ -962,16 +964,15 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener,
key.x + key.width + getPaddingLeft(), key.y + key.height + getPaddingTop());
}
- private boolean openPopupIfRequired(int keyIndex) {
+ private boolean openPopupIfRequired(int keyIndex, PointerTracker tracker) {
// Check if we have a popup layout specified first.
if (mPopupLayout == 0) {
return false;
}
- if (keyIndex < 0 || keyIndex >= mKeys.length) {
- return false;
- }
- Key popupKey = mKeys[keyIndex];
+ Key popupKey = tracker.getKey(keyIndex);
+ if (popupKey == null)
+ return false;
boolean result = onLongPress(popupKey);
if (result) {
dismissKeyPreview();
diff --git a/java/src/com/android/inputmethod/latin/PointerTracker.java b/java/src/com/android/inputmethod/latin/PointerTracker.java
index 10f51bd48..f5f2c11ff 100644
--- a/java/src/com/android/inputmethod/latin/PointerTracker.java
+++ b/java/src/com/android/inputmethod/latin/PointerTracker.java
@@ -27,6 +27,7 @@ import android.view.ViewConfiguration;
public class PointerTracker {
private static final String TAG = "PointerTracker";
private static final boolean DEBUG = false;
+ private static final boolean DEBUG_MOVE = true && DEBUG;
public interface UIProxy {
public void invalidateKey(Key key);
@@ -155,12 +156,12 @@ public class PointerTracker {
repeatKey(keyIndex);
mHandler.startKeyRepeatTimer(REPEAT_START_DELAY, keyIndex, this);
}
- mHandler.startLongPressTimer(keyIndex, LONGPRESS_TIMEOUT);
+ mHandler.startLongPressTimer(LONGPRESS_TIMEOUT, keyIndex, this);
}
showKeyPreviewAndUpdateKey(keyIndex);
updateMoveDebouncing(touchX, touchY);
if (DEBUG)
- Log.d(TAG, "onDownEvent: [" + mPointerId + "] modifier=" + isModifier());
+ debugLog("onDownEvent:", touchX, touchY);
}
public void onMoveEvent(int touchX, int touchY, long eventTime) {
@@ -169,7 +170,7 @@ public class PointerTracker {
if (mCurrentKey == NOT_A_KEY) {
updateTimeDebouncing(eventTime);
mCurrentKey = keyIndex;
- mHandler.startLongPressTimer(keyIndex, LONGPRESS_TIMEOUT);
+ mHandler.startLongPressTimer(LONGPRESS_TIMEOUT, keyIndex, this);
} else if (isMinorMoveBounce(touchX, touchY, keyIndex, mCurrentKey)) {
updateTimeDebouncing(eventTime);
} else {
@@ -177,7 +178,7 @@ public class PointerTracker {
resetTimeDebouncing(eventTime, mCurrentKey);
resetMoveDebouncing();
mCurrentKey = keyIndex;
- mHandler.startLongPressTimer(keyIndex, LONGPRESS_TIMEOUT);
+ mHandler.startLongPressTimer(LONGPRESS_TIMEOUT, keyIndex, this);
}
} else {
mHandler.cancelLongPressTimer();
@@ -190,11 +191,13 @@ public class PointerTracker {
*/
showKeyPreviewAndUpdateKey(isMinorTimeBounce() ? mLastKey : mCurrentKey);
updateMoveDebouncing(touchX, touchY);
+ if (DEBUG_MOVE)
+ debugLog("onMoveEvent:", touchX, touchY);
}
public void onUpEvent(int touchX, int touchY, long eventTime) {
if (DEBUG)
- Log.d(TAG, "onUpEvent: [" + mPointerId + "] modifier=" + isModifier());
+ debugLog("onUpEvent :", touchX, touchY);
int keyIndex = mKeyDetector.getKeyIndexAndNearbyCodes(touchX, touchY, null);
boolean wasInKeyRepeat = mHandler.isInKeyRepeat();
mHandler.cancelKeyTimers();
@@ -222,7 +225,7 @@ public class PointerTracker {
public void onCancelEvent(int touchX, int touchY, long eventTime) {
if (DEBUG)
- Log.d(TAG, "onCancelEvent: [" + mPointerId + "]");
+ debugLog("onCancelEvt:", touchX, touchY);
mHandler.cancelKeyTimers();
mHandler.cancelPopupPreview();
mProxy.dismissPopupKeyboard();
@@ -412,4 +415,18 @@ public class PointerTracker {
resetMultiTap();
}
}
+
+ private void debugLog(String title, int x, int y) {
+ Key key = getKey(mCurrentKey);
+ final String code;
+ if (key == null) {
+ code = "----";
+ } else {
+ int primaryCode = key.codes[0];
+ code = String.format((primaryCode < 0) ? "%4d" : "0x%02x", primaryCode);
+ }
+ Log.d(TAG,
+ String.format("%s [%d] %d,%d %s %s", title, mPointerId, x, y, code,
+ isModifier() ? "modifier" : ""));
+ }
} \ No newline at end of file