aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2010-08-27 21:04:11 +0900
committerTadashi G. Takaoka <takaoka@google.com>2010-08-27 21:04:31 +0900
commit00dda50efda107daec8bfcafe2639603b655f183 (patch)
tree810409d496d54098b2750fa9a50f9f0659fb3850 /java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
parent09f530e248a3caf0037ca89aa79a836385a03fab (diff)
downloadlatinime-00dda50efda107daec8bfcafe2639603b655f183.tar.gz
latinime-00dda50efda107daec8bfcafe2639603b655f183.tar.xz
latinime-00dda50efda107daec8bfcafe2639603b655f183.zip
Revert "Show key preview instantaneously"
This reverts commit 09f530e248a3caf0037ca89aa79a836385a03fab. Change-Id: I3106cd22cc1eac750f05bce26df6af3026dfaf86
Diffstat (limited to 'java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java32
1 files changed, 28 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index e3bad80d1..4007c2b55 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -178,6 +178,7 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
/** Listener for {@link OnKeyboardActionListener}. */
private OnKeyboardActionListener mKeyboardActionListener;
+ private static final int DELAY_BEFORE_PREVIEW = 0;
private static final int DELAY_AFTER_PREVIEW = 70;
private static final int DEBOUNCE_TIME = 70;
@@ -244,15 +245,19 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
UIHandler mHandler = new UIHandler();
class UIHandler extends Handler {
- private static final int MSG_DISMISS_PREVIEW = 0;
- private static final int MSG_REPEAT_KEY = 1;
- private static final int MSG_LOGPRESS_KEY = 2;
+ private static final int MSG_POPUP_PREVIEW = 1;
+ private static final int MSG_DISMISS_PREVIEW = 2;
+ private static final int MSG_REPEAT_KEY = 3;
+ private static final int MSG_LOGPRESS_KEY = 4;
private boolean mInKeyRepeat;
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
+ case MSG_POPUP_PREVIEW:
+ showKey(msg.arg1);
+ break;
case MSG_DISMISS_PREVIEW:
mPreviewText.setVisibility(INVISIBLE);
break;
@@ -266,6 +271,15 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
}
}
+ public void popupPreview(int keyIndex, long delay) {
+ removeMessages(MSG_POPUP_PREVIEW);
+ sendMessageDelayed(obtainMessage(MSG_POPUP_PREVIEW, keyIndex, 0), delay);
+ }
+
+ public void cancelPopupPreview() {
+ removeMessages(MSG_POPUP_PREVIEW);
+ }
+
public void dismissPreview(long delay) {
sendMessageDelayed(obtainMessage(MSG_DISMISS_PREVIEW), delay);
}
@@ -304,6 +318,7 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
public void cancelAllMessages() {
cancelKeyTimers();
+ cancelPopupPreview();
cancelDismissPreview();
}
};
@@ -598,6 +613,7 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
}
// Remove any pending messages, except dismissing preview
mHandler.cancelKeyTimers();
+ mHandler.cancelPopupPreview();
mKeyboard = keyboard;
LatinImeLogger.onSetKeyboard(mKeyboard);
List<Key> keys = mKeyboard.getKeys();
@@ -969,11 +985,17 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
// If key changed and preview is on ...
if (oldKeyIndex != mCurrentKeyIndex && mShowPreview) {
if (keyIndex == NOT_A_KEY) {
+ mHandler.cancelPopupPreview();
if (previewPopup.isShowing()) {
mHandler.dismissPreview(DELAY_AFTER_PREVIEW);
}
} else {
- showKey(keyIndex);
+ if (previewPopup.isShowing() && mPreviewText.getVisibility() == VISIBLE) {
+ // Show right away, if it's already visible and finger is moving around
+ showKey(keyIndex);
+ } else {
+ mHandler.popupPreview(keyIndex, DELAY_BEFORE_PREVIEW);
+ }
}
}
}
@@ -1350,6 +1372,7 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
int keyIndex = mProximityKeyDetector.getKeyIndexAndNearbyCodes(touchX, touchY, null);
boolean wasInKeyRepeat = mHandler.isInKeyRepeat();
mHandler.cancelKeyTimers();
+ mHandler.cancelPopupPreview();
if (mDebouncer.isMinorMoveBounce(touchX, touchY, keyIndex, mCurrentKey)) {
mDebouncer.updateTimeDebouncing(eventTime);
} else {
@@ -1372,6 +1395,7 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
private void onCancelEvent(int touchX, int touchY, long eventTime) {
mHandler.cancelKeyTimers();
+ mHandler.cancelPopupPreview();
dismissPopupKeyboard();
mAbortKey = true;
showPreview(NOT_A_KEY);