diff options
author | 2013-07-16 12:29:50 +0900 | |
---|---|---|
committer | 2013-07-16 19:21:16 +0900 | |
commit | 6455172a707a1137eb15db8073774982db9dd1fa (patch) | |
tree | 451beddf2f7660adcd346aa5ed0d95cedbe51a0c /java/src/com/android/inputmethod/latin/LatinIME.java | |
parent | 488659e1541f5b6ea915682736d73256d601222d (diff) | |
download | latinime-6455172a707a1137eb15db8073774982db9dd1fa.tar.gz latinime-6455172a707a1137eb15db8073774982db9dd1fa.tar.xz latinime-6455172a707a1137eb15db8073774982db9dd1fa.zip |
Distinguish key press in repeat key
Bug: 9859367
Change-Id: Iad643f9785b193e1918a8363de4fefc3b7558bdf
Diffstat (limited to 'java/src/com/android/inputmethod/latin/LatinIME.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 8f5e57182..7890dbb3f 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -2677,22 +2677,30 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } } + private void hapticAndAudioFeedback(final int code, final boolean isRepeatKey) { + final MainKeyboardView keyboardView = mKeyboardSwitcher.getMainKeyboardView(); + if (keyboardView != null && keyboardView.isInSlidingKeyInput()) { + // No need to feedback while sliding input. + return; + } + if (isRepeatKey && code == Constants.CODE_DELETE && !mConnection.canDeleteCharacters()) { + // No need to feedback when repeating delete key will have no effect. + return; + } + AudioAndHapticFeedbackManager.getInstance().hapticAndAudioFeedback(code, keyboardView); + } + // Callback of the {@link KeyboardActionListener}. This is called when a key is depressed; // release matching call is {@link #onReleaseKey(int,boolean)} below. @Override - public void onPressKey(final int primaryCode, final boolean isSinglePointer) { + public void onPressKey(final int primaryCode, final boolean isRepeatKey, + final boolean isSinglePointer) { mKeyboardSwitcher.onPressKey(primaryCode, isSinglePointer); - final MainKeyboardView mKeyboardView = mKeyboardSwitcher.getMainKeyboardView(); - final boolean noFeedback = (mKeyboardView != null && mKeyboardView.isInSlidingKeyInput()) - || (primaryCode == Constants.CODE_DELETE && !mConnection.canDeleteCharacters()); - if (!noFeedback) { - AudioAndHapticFeedbackManager.getInstance().hapticAndAudioFeedback( - primaryCode, mKeyboardView); - } + hapticAndAudioFeedback(primaryCode, isRepeatKey); } // Callback of the {@link KeyboardActionListener}. This is called when a key is released; - // press matching call is {@link #onPressKey(int,boolean)} above. + // press matching call is {@link #onPressKey(int,boolean,boolean)} above. @Override public void onReleaseKey(final int primaryCode, final boolean withSliding) { mKeyboardSwitcher.onReleaseKey(primaryCode, withSliding); |