diff options
Diffstat (limited to 'java/src')
3 files changed, 37 insertions, 31 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index 361053337..82c77d6cd 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -192,32 +192,47 @@ public final class PointerTracker implements PointerTrackerQueue.Element { gestureStrokeParams.mStaticTimeThresholdAfterFastTyping; } - private boolean wasLastInputTyping() { - return mLastTypingTime >= mLastBatchInputTime; + private void recordTyping(final long eventTime) { + mLastTypingTime = eventTime; + } + + private void recordLetterTyping(final long eventTime) { + mLastLetterTypingTime = eventTime; + // Reset gesture typing time + mLastBatchInputTime = 0; + } + + private void recordGestureTyping(final long eventTime) { + mLastBatchInputTime = eventTime; + // Reset typing time. + mLastTypingTime = 0; + } + + private boolean isInTyping() { + return mLastTypingTime != 0; + } + + private boolean isInBatchInput() { + return mLastBatchInputTime != 0; } public void onCodeInput(final int code, final long eventTime) { - // Record the letter typing time when - // 1. Letter keys are typed successively without any batch input in between. - // 2. A letter key is typed within the threshold time since the last any key typing. - // 3. A non-letter key is typed within the threshold time since the last letter key - // typing. - if (Character.isLetter(code)) { - if (wasLastInputTyping() - || eventTime - mLastTypingTime < mStaticTimeThresholdAfterFastTyping) { - mLastLetterTypingTime = eventTime; + if (Keyboard.isLetterCode(code) && code != Keyboard.CODE_SPACE) { + if (isInTyping() + && eventTime - mLastTypingTime < mStaticTimeThresholdAfterFastTyping) { + recordLetterTyping(eventTime); } } else { if (eventTime - mLastLetterTypingTime < mStaticTimeThresholdAfterFastTyping) { // This non-letter typing should be treated as a part of fast typing. - mLastLetterTypingTime = eventTime; + recordLetterTyping(eventTime); } } - mLastTypingTime = eventTime; + recordTyping(eventTime); } public void onEndBatchInput(final long eventTime) { - mLastBatchInputTime = eventTime; + recordGestureTyping(eventTime); } public long getLastLetterTypingTime() { @@ -225,7 +240,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element { } public boolean needsToSuppressKeyPreviewPopup(final long eventTime) { - return !wasLastInputTyping() + return !isInTyping() && isInBatchInput() && eventTime - mLastBatchInputTime < mSuppressKeyPreviewAfterBatchInputDuration; } } @@ -836,13 +851,11 @@ public final class PointerTracker implements PointerTrackerQueue.Element { // Register move event on gesture tracker. onGestureMoveEvent(x, y, eventTime, true /* isMajorEvent */, key); if (sInGesture) { + mTimerProxy.cancelLongPressTimer(); mCurrentKey = null; setReleasedKeyGraphics(oldKey); return; } - if (mGestureStrokeWithPreviewPoints.hasDetectedFastMove()) { - mTimerProxy.cancelLongPressTimer(); - } } if (key != null) { diff --git a/java/src/com/android/inputmethod/keyboard/internal/GestureStroke.java b/java/src/com/android/inputmethod/keyboard/internal/GestureStroke.java index c406f0c4f..9b1a20159 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/GestureStroke.java +++ b/java/src/com/android/inputmethod/keyboard/internal/GestureStroke.java @@ -190,8 +190,8 @@ public class GestureStroke { return mParams.mDynamicTimeThresholdFrom - decayedThreshold; } - public final boolean isStartOfAGesture() { - if (!hasDetectedFastMove()) { + public boolean isStartOfAGesture() { + if (mDetectFastMoveTime == 0) { return false; } final int size = mEventTimes.getLength(); @@ -200,9 +200,6 @@ public class GestureStroke { } final int lastIndex = size - 1; final int deltaTime = mEventTimes.get(lastIndex) - mDetectFastMoveTime; - if (deltaTime < 0) { - return false; - } final int deltaDistance = getDistance( mXCoordinates.get(lastIndex), mYCoordinates.get(lastIndex), mDetectFastMoveX, mDetectFastMoveY); @@ -243,10 +240,6 @@ public class GestureStroke { mLastMajorEventY = y; } - public final boolean hasDetectedFastMove() { - return mDetectFastMoveTime > 0; - } - private int detectFastMove(final int x, final int y, final int time) { final int size = mEventTimes.getLength(); final int lastIndex = size - 1; @@ -262,7 +255,7 @@ public class GestureStroke { Log.d(TAG, String.format("[%d] detectFastMove: speed=%5.2f", mPointerId, speed)); } // Equivalent to (pixels / msecs < mStartSpeedThreshold / MSEC_PER_SEC) - if (!hasDetectedFastMove() && pixelsPerSec > mDetectFastMoveSpeedThreshold * msecs) { + if (mDetectFastMoveTime == 0 && pixelsPerSec > mDetectFastMoveSpeedThreshold * msecs) { if (DEBUG) { final float speed = (float)pixelsPerSec / msecs / mKeyWidth; Log.d(TAG, String.format( @@ -313,11 +306,11 @@ public class GestureStroke { return currentTime > lastRecognitionTime + mParams.mRecognitionMinimumTime; } - public final void appendAllBatchPoints(final InputPointers out) { + public void appendAllBatchPoints(final InputPointers out) { appendBatchPoints(out, mEventTimes.getLength()); } - public final void appendIncrementalBatchPoints(final InputPointers out) { + public void appendIncrementalBatchPoints(final InputPointers out) { appendBatchPoints(out, mIncrementalRecognitionSize); } diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java index 201a10187..fa9f79ecd 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java @@ -350,7 +350,7 @@ final class BinaryDictionaryGetter { // of the dictionary would lose whitelist functionality. private static boolean hackCanUseDictionaryFile(final Locale locale, final File f) { // Only for English - other languages didn't have a whitelist, hence this - // ad-hoc ## HACK ## + // ad-hock ## HACK ## if (!Locale.ENGLISH.getLanguage().equals(locale.getLanguage())) return true; FileInputStream inStream = null; |