diff --git a/java/src/org/futo/inputmethod/keyboard/PointerTracker.java b/java/src/org/futo/inputmethod/keyboard/PointerTracker.java index e09c182dc5..1e1a15a0a6 100644 --- a/java/src/org/futo/inputmethod/keyboard/PointerTracker.java +++ b/java/src/org/futo/inputmethod/keyboard/PointerTracker.java @@ -34,6 +34,7 @@ import org.futo.inputmethod.keyboard.internal.PointerTrackerQueue; import org.futo.inputmethod.keyboard.internal.TimerProxy; import org.futo.inputmethod.keyboard.internal.TypingTimeRecorder; +import org.futo.inputmethod.latin.AudioAndHapticFeedbackManager; import org.futo.inputmethod.latin.R; import org.futo.inputmethod.latin.common.Constants; import org.futo.inputmethod.latin.common.CoordinateUtils; @@ -161,6 +162,8 @@ public PointerTrackerParams(final TypedArray mainKeyboardViewAttr) { private MoreKeysPanel mMoreKeysPanel; private static final int MULTIPLIER_FOR_LONG_PRESS_TIMEOUT_IN_SLIDING_INPUT = 3; + // Short vibration duration (ms) for each cursor step during spacebar swipe. + private static final int CURSOR_MOVE_VIBRATION_DURATION = 5; // true if this pointer is in the dragging finger mode. boolean mIsInDraggingFinger; // true if this pointer is sliding from a modifier key and in the sliding key input mode, @@ -970,6 +973,11 @@ private void onMoveEventInternal(final int x, final int y, final long eventTime) sListener.onSwipeLanguage(steps); } else { sListener.onMovePointer(steps); + final AudioAndHapticFeedbackManager feedbackManager = + AudioAndHapticFeedbackManager.getInstance(); + if (settingsValues.mVibrateOn) { + feedbackManager.vibrate(CURSOR_MOVE_VIBRATION_DURATION); + } } } @@ -993,6 +1001,11 @@ private void onMoveEventInternal(final int x, final int y, final long eventTime) if(settingsValues.mIsRTL) steps = -steps; sListener.onMoveDeletePointer(steps); + final AudioAndHapticFeedbackManager feedbackManager = + AudioAndHapticFeedbackManager.getInstance(); + if (settingsValues.mVibrateOn) { + feedbackManager.vibrate(CURSOR_MOVE_VIBRATION_DURATION); + } } mLastX = x;