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.java8
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java23
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java9
3 files changed, 19 insertions, 21 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index b51dbb906..804ccf658 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -260,7 +260,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
mKeyHintLabelSize = (int)(keyHeight * mKeyHintLabelRatio);
}
- public void brendAlpha(Paint paint) {
+ public void blendAlpha(Paint paint) {
final int color = paint.getColor();
paint.setARGB((paint.getAlpha() * mAnimAlpha) / ALPHA_OPAQUE,
Color.red(color), Color.green(color), Color.blue(color));
@@ -600,7 +600,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
// Make label invisible
paint.setColor(Color.TRANSPARENT);
}
- params.brendAlpha(paint);
+ params.blendAlpha(paint);
canvas.drawText(label, 0, label.length(), positionX, baseline, paint);
// Turn off drop shadow and reset x-scale.
paint.setShadowLayer(0, 0, 0, 0);
@@ -645,7 +645,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
hintSize = params.mKeyHintLetterSize;
}
paint.setColor(hintColor);
- params.brendAlpha(paint);
+ params.blendAlpha(paint);
paint.setTextSize(hintSize);
final float hintX, hintY;
if (key.hasHintLabel()) {
@@ -715,7 +715,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
paint.setTextSize(params.mKeyHintLetterSize);
paint.setColor(params.mKeyHintLabelColor);
- params.brendAlpha(paint);
+ params.blendAlpha(paint);
paint.setTextAlign(Align.CENTER);
final float hintX = keyWidth - params.mKeyHintLetterPadding
- getCharWidth(KEY_LABEL_REFERENCE_CHAR, paint) / 2;
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index 5ebf92cf7..7fadb3b8a 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -227,26 +227,22 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
removeMessages(MSG_LONGPRESS_KEY);
}
- public static void cancelAndStartAnimators(ObjectAnimator animatorToCancel,
- ObjectAnimator animatorToStart) {
- if (animatorToCancel != null && animatorToCancel.isStarted()) {
+ public static void cancelAndStartAnimators(final ObjectAnimator animatorToCancel,
+ final ObjectAnimator animatorToStart) {
+ float startFraction = 0.0f;
+ if (animatorToCancel.isStarted()) {
animatorToCancel.cancel();
+ startFraction = 1.0f - animatorToCancel.getAnimatedFraction();
}
- // TODO: Start the animation with an initial value that is the same as the final value
- // of the above animation when it gets cancelled.
- if (animatorToStart != null && !animatorToStart.isStarted()) {
- animatorToStart.start();
- }
- }
-
- private void cancelTypingStateTimer() {
- removeMessages(MSG_TYPING_STATE_EXPIRED);
+ final long startTime = (long)(animatorToStart.getDuration() * startFraction);
+ animatorToStart.start();
+ animatorToStart.setCurrentPlayTime(startTime);
}
@Override
public void startTypingStateTimer() {
final boolean isTyping = isTypingState();
- cancelTypingStateTimer();
+ removeMessages(MSG_TYPING_STATE_EXPIRED);
sendMessageDelayed(
obtainMessage(MSG_TYPING_STATE_EXPIRED), mParams.mIgnoreAltCodeKeyTimeout);
if (isTyping) {
@@ -286,7 +282,6 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
public void cancelAllMessages() {
cancelKeyTimers();
- cancelTypingStateTimer();
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 24ab54730..37d9b6ac7 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -248,6 +248,9 @@ public class PointerTracker {
mListener.onPressKey(key.mCode);
final boolean keyboardLayoutHasBeenChanged = mKeyboardLayoutHasBeenChanged;
mKeyboardLayoutHasBeenChanged = false;
+ if (!key.altCodeWhileTyping() && !key.isModifier()) {
+ mTimerProxy.startTypingStateTimer();
+ }
return keyboardLayoutHasBeenChanged;
}
return false;
@@ -279,9 +282,6 @@ public class PointerTracker {
} else if (code != Keyboard.CODE_UNSPECIFIED) {
mListener.onCodeInput(code, x, y);
}
- if (!key.altCodeWhileTyping() && !key.isModifier()) {
- mTimerProxy.startTypingStateTimer();
- }
}
}
@@ -734,6 +734,9 @@ public class PointerTracker {
public void onRepeatKey(Key key) {
if (key != null) {
detectAndSendKey(key, key.mX, key.mY);
+ if (!key.altCodeWhileTyping() && !key.isModifier()) {
+ mTimerProxy.startTypingStateTimer();
+ }
}
}