aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-07-08 19:26:50 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-07-08 19:26:50 -0700
commitd719fe1f5c8badd00f7e8ef57d0209c31f0fbcea (patch)
treebc83c8e30f4c6aca641d81812ca7c39b7cecba50 /java/src
parent6ec10e53a413ca240a54b8ca41f3c9bee4bc5585 (diff)
parent2321caa1f9eb6c2d616bc36f11f5b48eebf144fe (diff)
downloadlatinime-d719fe1f5c8badd00f7e8ef57d0209c31f0fbcea.tar.gz
latinime-d719fe1f5c8badd00f7e8ef57d0209c31f0fbcea.tar.xz
latinime-d719fe1f5c8badd00f7e8ef57d0209c31f0fbcea.zip
Merge "Narrower key timer handler static inner class to TimerProxy interface"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java9
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java35
2 files changed, 29 insertions, 15 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java
index 60af1ecc2..06cd319de 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java
@@ -33,6 +33,7 @@ import android.widget.PopupWindow;
import com.android.inputmethod.accessibility.AccessibilityUtils;
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
+import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
import com.android.inputmethod.keyboard.internal.MiniKeyboardBuilder;
import com.android.inputmethod.keyboard.internal.PointerTrackerQueue;
import com.android.inputmethod.latin.R;
@@ -86,7 +87,8 @@ public class LatinKeyboardBaseView extends KeyboardView {
private final KeyTimerHandler mKeyTimerHandler = new KeyTimerHandler(this);
- public static class KeyTimerHandler extends StaticInnerHandlerWrapper<LatinKeyboardBaseView> {
+ private static class KeyTimerHandler extends StaticInnerHandlerWrapper<LatinKeyboardBaseView>
+ implements TimerProxy {
private static final int MSG_REPEAT_KEY = 1;
private static final int MSG_LONGPRESS_KEY = 2;
private static final int MSG_LONGPRESS_SHIFT_KEY = 3;
@@ -116,6 +118,7 @@ public class LatinKeyboardBaseView extends KeyboardView {
}
}
+ @Override
public void startKeyRepeatTimer(long delay, int keyIndex, PointerTracker tracker) {
mInKeyRepeat = true;
sendMessageDelayed(obtainMessage(MSG_REPEAT_KEY, keyIndex, 0, tracker), delay);
@@ -130,11 +133,13 @@ public class LatinKeyboardBaseView extends KeyboardView {
return mInKeyRepeat;
}
+ @Override
public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker) {
cancelLongPressTimers();
sendMessageDelayed(obtainMessage(MSG_LONGPRESS_KEY, keyIndex, 0, tracker), delay);
}
+ @Override
public void startLongPressShiftTimer(long delay, int keyIndex, PointerTracker tracker) {
cancelLongPressTimers();
if (ENABLE_CAPSLOCK_BY_LONGPRESS) {
@@ -143,11 +148,13 @@ public class LatinKeyboardBaseView extends KeyboardView {
}
}
+ @Override
public void cancelLongPressTimers() {
removeMessages(MSG_LONGPRESS_KEY);
removeMessages(MSG_LONGPRESS_SHIFT_KEY);
}
+ @Override
public void cancelKeyTimers() {
cancelKeyRepeatTimer();
cancelLongPressTimers();
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 5fe93bdd4..c960c7613 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -22,7 +22,6 @@ import android.os.SystemClock;
import android.util.Log;
import android.view.MotionEvent;
-import com.android.inputmethod.keyboard.LatinKeyboardBaseView.KeyTimerHandler;
import com.android.inputmethod.keyboard.internal.PointerTrackerQueue;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.R;
@@ -45,6 +44,14 @@ public class PointerTracker {
public void dismissKeyPreview(PointerTracker tracker);
}
+ public interface TimerProxy {
+ public void startKeyRepeatTimer(long delay, int keyIndex, PointerTracker tracker);
+ public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker);
+ public void startLongPressShiftTimer(long delay, int keyIndex, PointerTracker tracker);
+ public void cancelLongPressTimers();
+ public void cancelKeyTimers();
+ }
+
public final int mPointerId;
// Timing constants
@@ -53,7 +60,7 @@ public class PointerTracker {
private final int mLongPressShiftKeyTimeout;
private final DrawingProxy mDrawingProxy;
- private final KeyTimerHandler mKeyTimerHandler;
+ private final TimerProxy mTimerProxy;
private final PointerTrackerQueue mPointerTrackerQueue;
private KeyDetector mKeyDetector;
private KeyboardActionListener mListener = EMPTY_LISTENER;
@@ -119,13 +126,13 @@ public class PointerTracker {
public void onCancelInput() {}
};
- public PointerTracker(int id, Context context, KeyTimerHandler keyTimerHandler,
- KeyDetector keyDetector, DrawingProxy drawingProxy, PointerTrackerQueue queue) {
- if (drawingProxy == null || keyTimerHandler == null || keyDetector == null)
+ public PointerTracker(int id, Context context, TimerProxy timerProxy, KeyDetector keyDetector,
+ DrawingProxy drawingProxy, PointerTrackerQueue queue) {
+ if (drawingProxy == null || timerProxy == null || keyDetector == null)
throw new NullPointerException();
mPointerId = id;
mDrawingProxy = drawingProxy;
- mKeyTimerHandler = keyTimerHandler;
+ mTimerProxy = timerProxy;
mPointerTrackerQueue = queue; // This is null for non-distinct multi-touch device.
setKeyDetectorInner(keyDetector);
mKeyboardSwitcher = KeyboardSwitcher.getInstance();
@@ -442,7 +449,7 @@ public class PointerTracker {
setReleasedKeyGraphics(oldKeyIndex);
callListenerOnRelease(oldKey, oldKey.mCode, true);
startSlidingKeyInput(oldKey);
- mKeyTimerHandler.cancelKeyTimers();
+ mTimerProxy.cancelKeyTimers();
startRepeatKey(keyIndex);
if (mIsAllowedSlidingKeyInput) {
// This onPress call may have changed keyboard layout. Those cases are detected
@@ -501,7 +508,7 @@ public class PointerTracker {
setReleasedKeyGraphics(oldKeyIndex);
callListenerOnRelease(oldKey, oldKey.mCode, true);
startSlidingKeyInput(oldKey);
- mKeyTimerHandler.cancelLongPressTimers();
+ mTimerProxy.cancelLongPressTimers();
if (mIsAllowedSlidingKeyInput) {
onMoveToNewKey(keyIndex, x, y);
} else {
@@ -542,7 +549,7 @@ public class PointerTracker {
private void onUpEventInternal(int x, int y, long eventTime,
boolean updateReleasedKeyGraphics) {
- mKeyTimerHandler.cancelKeyTimers();
+ mTimerProxy.cancelKeyTimers();
mDrawingProxy.cancelShowKeyPreview(this);
mIsInSlidingKeyInput = false;
final int keyX, keyY;
@@ -602,7 +609,7 @@ public class PointerTracker {
}
private void onCancelEventInternal() {
- mKeyTimerHandler.cancelKeyTimers();
+ mTimerProxy.cancelKeyTimers();
mDrawingProxy.cancelShowKeyPreview(this);
dismissKeyPreview();
setReleasedKeyGraphics(mKeyIndex);
@@ -614,7 +621,7 @@ public class PointerTracker {
if (key != null && key.mRepeatable) {
dismissKeyPreview();
onRepeatKey(keyIndex);
- mKeyTimerHandler.startKeyRepeatTimer(mDelayBeforeKeyRepeatStart, keyIndex, this);
+ mTimerProxy.startKeyRepeatTimer(mDelayBeforeKeyRepeatStart, keyIndex, this);
mIsRepeatableKey = true;
} else {
mIsRepeatableKey = false;
@@ -668,16 +675,16 @@ public class PointerTracker {
private void startLongPressTimer(int keyIndex) {
Key key = getKey(keyIndex);
if (key.mCode == Keyboard.CODE_SHIFT) {
- mKeyTimerHandler.startLongPressShiftTimer(mLongPressShiftKeyTimeout, keyIndex, this);
+ mTimerProxy.startLongPressShiftTimer(mLongPressShiftKeyTimeout, keyIndex, this);
} else if (key.hasUppercaseLetter() && mKeyboard.isManualTemporaryUpperCase()) {
// We need not start long press timer on the key which has manual temporary upper case
// code defined and the keyboard is in manual temporary upper case mode.
return;
} else if (mKeyboardSwitcher.isInMomentarySwitchState()) {
// We use longer timeout for sliding finger input started from the symbols mode key.
- mKeyTimerHandler.startLongPressTimer(mLongPressKeyTimeout * 3, keyIndex, this);
+ mTimerProxy.startLongPressTimer(mLongPressKeyTimeout * 3, keyIndex, this);
} else {
- mKeyTimerHandler.startLongPressTimer(mLongPressKeyTimeout, keyIndex, this);
+ mTimerProxy.startLongPressTimer(mLongPressKeyTimeout, keyIndex, this);
}
}