Loading java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +27 −7 Original line number Diff line number Diff line Loading @@ -154,8 +154,7 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key } break; case MSG_TYPING_STATE_EXPIRED: cancelAndStartAnimators(keyboardView.mAltCodeKeyWhileTypingFadeoutAnimator, keyboardView.mAltCodeKeyWhileTypingFadeinAnimator); startWhileTypingFadeinAnimation(keyboardView); break; } } Loading Loading @@ -229,7 +228,7 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key removeMessages(MSG_LONGPRESS_KEY); } public static void cancelAndStartAnimators(final ObjectAnimator animatorToCancel, private static void cancelAndStartAnimators(final ObjectAnimator animatorToCancel, final ObjectAnimator animatorToStart) { float startFraction = 0.0f; if (animatorToCancel.isStarted()) { Loading @@ -241,18 +240,39 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key animatorToStart.setCurrentPlayTime(startTime); } private static void startWhileTypingFadeinAnimation(final MainKeyboardView keyboardView) { cancelAndStartAnimators(keyboardView.mAltCodeKeyWhileTypingFadeoutAnimator, keyboardView.mAltCodeKeyWhileTypingFadeinAnimator); } private static void startWhileTypingFadeoutAnimation(final MainKeyboardView keyboardView) { cancelAndStartAnimators(keyboardView.mAltCodeKeyWhileTypingFadeinAnimator, keyboardView.mAltCodeKeyWhileTypingFadeoutAnimator); } @Override public void startTypingStateTimer() { public void startTypingStateTimer(Key typedKey) { if (typedKey.isModifier() || typedKey.altCodeWhileTyping()) { return; } final boolean isTyping = isTypingState(); removeMessages(MSG_TYPING_STATE_EXPIRED); final MainKeyboardView keyboardView = getOuterInstance(); // When user hits the space or the enter key, just cancel the while-typing timer. final int typedCode = typedKey.mCode; if (typedCode == Keyboard.CODE_SPACE || typedCode == Keyboard.CODE_ENTER) { startWhileTypingFadeinAnimation(keyboardView); return; } sendMessageDelayed( obtainMessage(MSG_TYPING_STATE_EXPIRED), mParams.mIgnoreAltCodeKeyTimeout); if (isTyping) { return; } final MainKeyboardView keyboardView = getOuterInstance(); cancelAndStartAnimators(keyboardView.mAltCodeKeyWhileTypingFadeinAnimator, keyboardView.mAltCodeKeyWhileTypingFadeoutAnimator); startWhileTypingFadeoutAnimation(keyboardView); } @Override Loading java/src/com/android/inputmethod/keyboard/PointerTracker.java +4 −8 Original line number Diff line number Diff line Loading @@ -82,7 +82,7 @@ public class PointerTracker { } public interface TimerProxy { public void startTypingStateTimer(); public void startTypingStateTimer(Key typedKey); public boolean isTypingState(); public void startKeyRepeatTimer(PointerTracker tracker); public void startLongPressTimer(PointerTracker tracker); Loading @@ -95,7 +95,7 @@ public class PointerTracker { public static class Adapter implements TimerProxy { @Override public void startTypingStateTimer() {} public void startTypingStateTimer(Key typedKey) {} @Override public boolean isTypingState() { return false; } @Override Loading Loading @@ -329,9 +329,7 @@ public class PointerTracker { mListener.onPressKey(key.mCode); final boolean keyboardLayoutHasBeenChanged = mKeyboardLayoutHasBeenChanged; mKeyboardLayoutHasBeenChanged = false; if (!key.altCodeWhileTyping() && !key.isModifier()) { mTimerProxy.startTypingStateTimer(); } mTimerProxy.startTypingStateTimer(key); return keyboardLayoutHasBeenChanged; } return false; Loading Loading @@ -956,9 +954,7 @@ public class PointerTracker { public void onRegisterKey(Key key) { if (key != null) { detectAndSendKey(key, key.mX, key.mY); if (!key.altCodeWhileTyping() && !key.isModifier()) { mTimerProxy.startTypingStateTimer(); } mTimerProxy.startTypingStateTimer(key); } } Loading Loading
java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +27 −7 Original line number Diff line number Diff line Loading @@ -154,8 +154,7 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key } break; case MSG_TYPING_STATE_EXPIRED: cancelAndStartAnimators(keyboardView.mAltCodeKeyWhileTypingFadeoutAnimator, keyboardView.mAltCodeKeyWhileTypingFadeinAnimator); startWhileTypingFadeinAnimation(keyboardView); break; } } Loading Loading @@ -229,7 +228,7 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key removeMessages(MSG_LONGPRESS_KEY); } public static void cancelAndStartAnimators(final ObjectAnimator animatorToCancel, private static void cancelAndStartAnimators(final ObjectAnimator animatorToCancel, final ObjectAnimator animatorToStart) { float startFraction = 0.0f; if (animatorToCancel.isStarted()) { Loading @@ -241,18 +240,39 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key animatorToStart.setCurrentPlayTime(startTime); } private static void startWhileTypingFadeinAnimation(final MainKeyboardView keyboardView) { cancelAndStartAnimators(keyboardView.mAltCodeKeyWhileTypingFadeoutAnimator, keyboardView.mAltCodeKeyWhileTypingFadeinAnimator); } private static void startWhileTypingFadeoutAnimation(final MainKeyboardView keyboardView) { cancelAndStartAnimators(keyboardView.mAltCodeKeyWhileTypingFadeinAnimator, keyboardView.mAltCodeKeyWhileTypingFadeoutAnimator); } @Override public void startTypingStateTimer() { public void startTypingStateTimer(Key typedKey) { if (typedKey.isModifier() || typedKey.altCodeWhileTyping()) { return; } final boolean isTyping = isTypingState(); removeMessages(MSG_TYPING_STATE_EXPIRED); final MainKeyboardView keyboardView = getOuterInstance(); // When user hits the space or the enter key, just cancel the while-typing timer. final int typedCode = typedKey.mCode; if (typedCode == Keyboard.CODE_SPACE || typedCode == Keyboard.CODE_ENTER) { startWhileTypingFadeinAnimation(keyboardView); return; } sendMessageDelayed( obtainMessage(MSG_TYPING_STATE_EXPIRED), mParams.mIgnoreAltCodeKeyTimeout); if (isTyping) { return; } final MainKeyboardView keyboardView = getOuterInstance(); cancelAndStartAnimators(keyboardView.mAltCodeKeyWhileTypingFadeinAnimator, keyboardView.mAltCodeKeyWhileTypingFadeoutAnimator); startWhileTypingFadeoutAnimation(keyboardView); } @Override Loading
java/src/com/android/inputmethod/keyboard/PointerTracker.java +4 −8 Original line number Diff line number Diff line Loading @@ -82,7 +82,7 @@ public class PointerTracker { } public interface TimerProxy { public void startTypingStateTimer(); public void startTypingStateTimer(Key typedKey); public boolean isTypingState(); public void startKeyRepeatTimer(PointerTracker tracker); public void startLongPressTimer(PointerTracker tracker); Loading @@ -95,7 +95,7 @@ public class PointerTracker { public static class Adapter implements TimerProxy { @Override public void startTypingStateTimer() {} public void startTypingStateTimer(Key typedKey) {} @Override public boolean isTypingState() { return false; } @Override Loading Loading @@ -329,9 +329,7 @@ public class PointerTracker { mListener.onPressKey(key.mCode); final boolean keyboardLayoutHasBeenChanged = mKeyboardLayoutHasBeenChanged; mKeyboardLayoutHasBeenChanged = false; if (!key.altCodeWhileTyping() && !key.isModifier()) { mTimerProxy.startTypingStateTimer(); } mTimerProxy.startTypingStateTimer(key); return keyboardLayoutHasBeenChanged; } return false; Loading Loading @@ -956,9 +954,7 @@ public class PointerTracker { public void onRegisterKey(Key key) { if (key != null) { detectAndSendKey(key, key.mX, key.mY); if (!key.altCodeWhileTyping() && !key.isModifier()) { mTimerProxy.startTypingStateTimer(); } mTimerProxy.startTypingStateTimer(key); } } Loading