Loading java/src/com/android/inputmethod/keyboard/PointerTracker.java +12 −9 Original line number Diff line number Diff line Loading @@ -121,6 +121,8 @@ public class PointerTracker { private static boolean sConfigGestureInputEnabledByBuildConfig; private static final ArrayList<PointerTracker> sTrackers = new ArrayList<PointerTracker>(); private static final InputPointers sAggregratedPointers = new InputPointers( GestureStroke.DEFAULT_CAPACITY); private static PointerTrackerQueue sPointerTrackerQueue; // HACK: Change gesture detection criteria depending on this variable. // TODO: Find more comprehensive ways to detect a gesture start. Loading Loading @@ -257,23 +259,19 @@ public class PointerTracker { // TODO: To handle multi-touch gestures we may want to move this method to // {@link PointerTrackerQueue}. private static InputPointers getIncrementalBatchPoints() { // TODO: Avoid creating a new instance here? final InputPointers pointers = new InputPointers(GestureStroke.DEFAULT_CAPACITY); for (final PointerTracker tracker : sTrackers) { tracker.mGestureStroke.appendIncrementalBatchPoints(pointers); tracker.mGestureStroke.appendIncrementalBatchPoints(sAggregratedPointers); } return pointers; return sAggregratedPointers; } // TODO: To handle multi-touch gestures we may want to move this method to // {@link PointerTrackerQueue}. private static InputPointers getAllBatchPoints() { // TODO: Avoid creating a new instance here? final InputPointers pointers = new InputPointers(GestureStroke.DEFAULT_CAPACITY); for (final PointerTracker tracker : sTrackers) { tracker.mGestureStroke.appendAllBatchPoints(pointers); tracker.mGestureStroke.appendAllBatchPoints(sAggregratedPointers); } return pointers; return sAggregratedPointers; } // TODO: To handle multi-touch gestures we may want to move this method to Loading @@ -282,6 +280,7 @@ public class PointerTracker { for (final PointerTracker tracker : sTrackers) { tracker.mGestureStroke.reset(); } sAggregratedPointers.reset(); } private PointerTracker(int id, KeyEventHandler handler) { Loading Loading @@ -645,6 +644,8 @@ public class PointerTracker { if (sIsGestureEnabled && mIsAlphabetKeyboard && key != null && Keyboard.isLetterCode(key.mCode)) { mIsPossibleGesture = true; // TODO: pointer times should be relative to first down even in entire batch input // instead of resetting to 0 for each new down event. mGestureStroke.addPoint(x, y, 0, false); } } Loading Loading @@ -869,7 +870,9 @@ public class PointerTracker { } return; } // This event will be recognized as a regular code input. Clear unused batch points so they // are not mistakenly included in the next batch event. clearBatchInputPointsOfAllPointerTrackers(); if (mKeyAlreadyProcessed) return; if (mCurrentKey != null && !mCurrentKey.isRepeatable()) { Loading java/src/com/android/inputmethod/keyboard/internal/GestureStroke.java +8 −2 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ public class GestureStroke { private float mLength; private float mAngle; private int mIncrementalRecognitionSize; private int mLastIncrementalBatchSize; private long mLastPointTime; private int mLastPointX; private int mLastPointY; Loading Loading @@ -73,6 +74,7 @@ public class GestureStroke { mLength = 0; mAngle = 0; mIncrementalRecognitionSize = 0; mLastIncrementalBatchSize = 0; mLastPointTime = 0; mInputPointers.reset(); } Loading Loading @@ -126,11 +128,15 @@ public class GestureStroke { } public void appendAllBatchPoints(final InputPointers out) { out.append(mInputPointers, 0, mInputPointers.getPointerSize()); final int size = mInputPointers.getPointerSize(); out.append(mInputPointers, mLastIncrementalBatchSize, size - mLastIncrementalBatchSize); mLastIncrementalBatchSize = size; } public void appendIncrementalBatchPoints(final InputPointers out) { out.append(mInputPointers, 0, mIncrementalRecognitionSize); out.append(mInputPointers, mLastIncrementalBatchSize, mIncrementalRecognitionSize - mLastIncrementalBatchSize); mLastIncrementalBatchSize = mIncrementalRecognitionSize; } private static float getDistance(final int p1x, final int p1y, Loading Loading
java/src/com/android/inputmethod/keyboard/PointerTracker.java +12 −9 Original line number Diff line number Diff line Loading @@ -121,6 +121,8 @@ public class PointerTracker { private static boolean sConfigGestureInputEnabledByBuildConfig; private static final ArrayList<PointerTracker> sTrackers = new ArrayList<PointerTracker>(); private static final InputPointers sAggregratedPointers = new InputPointers( GestureStroke.DEFAULT_CAPACITY); private static PointerTrackerQueue sPointerTrackerQueue; // HACK: Change gesture detection criteria depending on this variable. // TODO: Find more comprehensive ways to detect a gesture start. Loading Loading @@ -257,23 +259,19 @@ public class PointerTracker { // TODO: To handle multi-touch gestures we may want to move this method to // {@link PointerTrackerQueue}. private static InputPointers getIncrementalBatchPoints() { // TODO: Avoid creating a new instance here? final InputPointers pointers = new InputPointers(GestureStroke.DEFAULT_CAPACITY); for (final PointerTracker tracker : sTrackers) { tracker.mGestureStroke.appendIncrementalBatchPoints(pointers); tracker.mGestureStroke.appendIncrementalBatchPoints(sAggregratedPointers); } return pointers; return sAggregratedPointers; } // TODO: To handle multi-touch gestures we may want to move this method to // {@link PointerTrackerQueue}. private static InputPointers getAllBatchPoints() { // TODO: Avoid creating a new instance here? final InputPointers pointers = new InputPointers(GestureStroke.DEFAULT_CAPACITY); for (final PointerTracker tracker : sTrackers) { tracker.mGestureStroke.appendAllBatchPoints(pointers); tracker.mGestureStroke.appendAllBatchPoints(sAggregratedPointers); } return pointers; return sAggregratedPointers; } // TODO: To handle multi-touch gestures we may want to move this method to Loading @@ -282,6 +280,7 @@ public class PointerTracker { for (final PointerTracker tracker : sTrackers) { tracker.mGestureStroke.reset(); } sAggregratedPointers.reset(); } private PointerTracker(int id, KeyEventHandler handler) { Loading Loading @@ -645,6 +644,8 @@ public class PointerTracker { if (sIsGestureEnabled && mIsAlphabetKeyboard && key != null && Keyboard.isLetterCode(key.mCode)) { mIsPossibleGesture = true; // TODO: pointer times should be relative to first down even in entire batch input // instead of resetting to 0 for each new down event. mGestureStroke.addPoint(x, y, 0, false); } } Loading Loading @@ -869,7 +870,9 @@ public class PointerTracker { } return; } // This event will be recognized as a regular code input. Clear unused batch points so they // are not mistakenly included in the next batch event. clearBatchInputPointsOfAllPointerTrackers(); if (mKeyAlreadyProcessed) return; if (mCurrentKey != null && !mCurrentKey.isRepeatable()) { Loading
java/src/com/android/inputmethod/keyboard/internal/GestureStroke.java +8 −2 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ public class GestureStroke { private float mLength; private float mAngle; private int mIncrementalRecognitionSize; private int mLastIncrementalBatchSize; private long mLastPointTime; private int mLastPointX; private int mLastPointY; Loading Loading @@ -73,6 +74,7 @@ public class GestureStroke { mLength = 0; mAngle = 0; mIncrementalRecognitionSize = 0; mLastIncrementalBatchSize = 0; mLastPointTime = 0; mInputPointers.reset(); } Loading Loading @@ -126,11 +128,15 @@ public class GestureStroke { } public void appendAllBatchPoints(final InputPointers out) { out.append(mInputPointers, 0, mInputPointers.getPointerSize()); final int size = mInputPointers.getPointerSize(); out.append(mInputPointers, mLastIncrementalBatchSize, size - mLastIncrementalBatchSize); mLastIncrementalBatchSize = size; } public void appendIncrementalBatchPoints(final InputPointers out) { out.append(mInputPointers, 0, mIncrementalRecognitionSize); out.append(mInputPointers, mLastIncrementalBatchSize, mIncrementalRecognitionSize - mLastIncrementalBatchSize); mLastIncrementalBatchSize = mIncrementalRecognitionSize; } private static float getDistance(final int p1x, final int p1y, Loading