aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java4
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java72
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java9
3 files changed, 30 insertions, 55 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 64bdc9591..1010adbe0 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -171,10 +171,6 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
sendMessageDelayed(obtainMessage(MSG_DISMISS_KEY_PREVIEW, tracker), delay);
}
- public void cancelDismissKeyPreview(PointerTracker tracker) {
- removeMessages(MSG_DISMISS_KEY_PREVIEW, tracker);
- }
-
public void cancelAllDismissKeyPreviews() {
removeMessages(MSG_DISMISS_KEY_PREVIEW);
}
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 5b03ef4a1..e66ea7b79 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -199,8 +199,7 @@ public class PointerTracker {
public static void dismissAllKeyPreviews() {
for (final PointerTracker tracker : sTrackers) {
- tracker.setReleasedKeyGraphics();
- tracker.dismissKeyPreview();
+ tracker.setReleasedKeyGraphics(tracker.mKeyIndex);
}
}
@@ -323,11 +322,8 @@ public class PointerTracker {
return key != null && key.mCode == Keyboard.CODE_SPACE;
}
- public void setReleasedKeyGraphics() {
- setReleasedKeyGraphics(mKeyIndex);
- }
-
private void setReleasedKeyGraphics(int keyIndex) {
+ mDrawingProxy.dismissKeyPreview(this);
final Key key = getKey(keyIndex);
if (key != null) {
key.onReleased();
@@ -336,6 +332,9 @@ public class PointerTracker {
}
private void setPressedKeyGraphics(int keyIndex) {
+ if (isKeyPreviewRequired(keyIndex)) {
+ mDrawingProxy.showKeyPreview(keyIndex, this);
+ }
final Key key = getKey(keyIndex);
if (key != null && key.isEnabled()) {
key.onPressed();
@@ -343,6 +342,18 @@ public class PointerTracker {
}
}
+ // The modifier key, such as shift key, should not show its key preview.
+ private boolean isKeyPreviewRequired(int keyIndex) {
+ final Key key = getKey(keyIndex);
+ if (key == null || !key.isEnabled())
+ return false;
+ final int code = key.mCode;
+ if (isModifierCode(code) || code == Keyboard.CODE_DELETE
+ || code == Keyboard.CODE_ENTER || code == Keyboard.CODE_SPACE)
+ return false;
+ return true;
+ }
+
public int getLastX() {
return mLastX;
}
@@ -438,7 +449,6 @@ public class PointerTracker {
startRepeatKey(keyIndex);
startLongPressTimer(keyIndex);
- showKeyPreview(keyIndex);
setPressedKeyGraphics(keyIndex);
}
}
@@ -471,7 +481,6 @@ public class PointerTracker {
keyIndex = onMoveKey(x, y);
onMoveToNewKey(keyIndex, x, y);
startLongPressTimer(keyIndex);
- showKeyPreview(keyIndex);
setPressedKeyGraphics(keyIndex);
} else if (isMajorEnoughMoveToBeOnNewKey(x, y, keyIndex)) {
// The pointer has been slid in to the new key from the previous key, we must call
@@ -491,7 +500,6 @@ public class PointerTracker {
onMoveToNewKey(keyIndex, x, y);
startLongPressTimer(keyIndex);
setPressedKeyGraphics(keyIndex);
- showKeyPreview(keyIndex);
} else {
// HACK: On some devices, quick successive touches may be translated to sudden
// move by touch panel firmware. This hack detects the case and translates the
@@ -503,11 +511,10 @@ public class PointerTracker {
if (DEBUG_MODE)
Log.w(TAG, String.format("onMoveEvent: sudden move is translated to "
+ "up[%d,%d]/down[%d,%d] events", lastX, lastY, x, y));
- onUpEventInternal(lastX, lastY, eventTime, true);
+ onUpEventInternal(lastX, lastY, eventTime);
onDownEventInternal(x, y, eventTime);
} else {
mKeyAlreadyProcessed = true;
- dismissKeyPreview();
setReleasedKeyGraphics(oldKeyIndex);
}
}
@@ -524,7 +531,6 @@ public class PointerTracker {
onMoveToNewKey(keyIndex, x, y);
} else {
mKeyAlreadyProcessed = true;
- dismissKeyPreview();
}
}
}
@@ -539,27 +545,26 @@ public class PointerTracker {
if (isModifier()) {
// Before processing an up event of modifier key, all pointers already being
// tracked should be released.
- queue.releaseAllPointersExcept(this, eventTime, true);
+ queue.releaseAllPointersExcept(this, eventTime);
} else {
queue.releaseAllPointersOlderThan(this, eventTime);
}
queue.remove(this);
}
- onUpEventInternal(x, y, eventTime, true);
+ onUpEventInternal(x, y, eventTime);
}
// Let this pointer tracker know that one of newer-than-this pointer trackers got an up event.
// This pointer tracker needs to keep the key top graphics "pressed", but needs to get a
// "virtual" up event.
- public void onPhantomUpEvent(int x, int y, long eventTime, boolean updateReleasedKeyGraphics) {
+ public void onPhantomUpEvent(int x, int y, long eventTime) {
if (DEBUG_EVENT)
printTouchEvent("onPhntEvent:", x, y, eventTime);
- onUpEventInternal(x, y, eventTime, updateReleasedKeyGraphics);
+ onUpEventInternal(x, y, eventTime);
mKeyAlreadyProcessed = true;
}
- private void onUpEventInternal(int x, int y, long eventTime,
- boolean updateReleasedKeyGraphics) {
+ private void onUpEventInternal(int x, int y, long eventTime) {
mTimerProxy.cancelKeyTimers();
mDrawingProxy.cancelShowKeyPreview(this);
mIsInSlidingKeyInput = false;
@@ -573,9 +578,7 @@ public class PointerTracker {
keyY = mKeyY;
}
final int keyIndex = onUpKey(keyX, keyY, eventTime);
- dismissKeyPreview();
- if (updateReleasedKeyGraphics)
- setReleasedKeyGraphics(keyIndex);
+ setReleasedKeyGraphics(keyIndex);
if (mKeyAlreadyProcessed)
return;
if (!mIsRepeatableKey) {
@@ -585,8 +588,7 @@ public class PointerTracker {
public void onLongPressed() {
mKeyAlreadyProcessed = true;
- setReleasedKeyGraphics();
- dismissKeyPreview();
+ setReleasedKeyGraphics(mKeyIndex);
final PointerTrackerQueue queue = sPointerTrackerQueue;
if (queue != null) {
queue.remove(this);
@@ -599,7 +601,7 @@ public class PointerTracker {
final PointerTrackerQueue queue = sPointerTrackerQueue;
if (queue != null) {
- queue.releaseAllPointersExcept(this, eventTime, true);
+ queue.releaseAllPointersExcept(this, eventTime);
queue.remove(this);
}
onCancelEventInternal();
@@ -608,7 +610,6 @@ public class PointerTracker {
private void onCancelEventInternal() {
mTimerProxy.cancelKeyTimers();
mDrawingProxy.cancelShowKeyPreview(this);
- dismissKeyPreview();
setReleasedKeyGraphics(mKeyIndex);
mIsInSlidingKeyInput = false;
}
@@ -616,7 +617,6 @@ public class PointerTracker {
private void startRepeatKey(int keyIndex) {
final Key key = getKey(keyIndex);
if (key != null && key.mRepeatable) {
- dismissKeyPreview();
onRepeatKey(keyIndex);
mTimerProxy.startKeyRepeatTimer(sDelayBeforeKeyRepeatStart, keyIndex, this);
mIsRepeatableKey = true;
@@ -646,26 +646,6 @@ public class PointerTracker {
}
}
- // The modifier key, such as shift key, should not show its key preview.
- private boolean isKeyPreviewNotRequired(int keyIndex) {
- final Key key = getKey(keyIndex);
- if (key == null || !key.isEnabled())
- return true;
- final int code = key.mCode;
- return isModifierCode(code) || code == Keyboard.CODE_DELETE
- || code == Keyboard.CODE_ENTER || code == Keyboard.CODE_SPACE;
- }
-
- private void showKeyPreview(int keyIndex) {
- if (isKeyPreviewNotRequired(keyIndex))
- return;
- mDrawingProxy.showKeyPreview(keyIndex, this);
- }
-
- private void dismissKeyPreview() {
- mDrawingProxy.dismissKeyPreview(this);
- }
-
private void startLongPressTimer(int keyIndex) {
Key key = getKey(keyIndex);
if (key.mCode == Keyboard.CODE_SHIFT) {
diff --git a/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java b/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java
index 545b27fdc..55175e046 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java
@@ -37,22 +37,21 @@ public class PointerTrackerQueue {
if (t.isModifier()) {
oldestPos++;
} else {
- t.onPhantomUpEvent(t.getLastX(), t.getLastY(), eventTime, true);
+ t.onPhantomUpEvent(t.getLastX(), t.getLastY(), eventTime);
queue.remove(oldestPos);
}
}
}
public void releaseAllPointers(long eventTime) {
- releaseAllPointersExcept(null, eventTime, true);
+ releaseAllPointersExcept(null, eventTime);
}
- public void releaseAllPointersExcept(PointerTracker tracker, long eventTime,
- boolean updateReleasedKeyGraphics) {
+ public void releaseAllPointersExcept(PointerTracker tracker, long eventTime) {
for (PointerTracker t : mQueue) {
if (t == tracker)
continue;
- t.onPhantomUpEvent(t.getLastX(), t.getLastY(), eventTime, updateReleasedKeyGraphics);
+ t.onPhantomUpEvent(t.getLastX(), t.getLastY(), eventTime);
}
mQueue.clear();
if (tracker != null)