Merge "Use onCustomRequest to request haptick and audio feedback"

This commit is contained in:
Tadashi G. Takaoka 2011-10-26 07:54:23 -07:00 committed by Android (Google) Code Review
commit ef543c725e
3 changed files with 16 additions and 11 deletions

View file

@ -75,7 +75,6 @@ public class Keyboard {
public static final int CODE_DELETE = -5;
public static final int CODE_SETTINGS = -6;
public static final int CODE_SHORTCUT = -7;
public static final int CODE_HAPTIC_AND_AUDIO_FEEDBACK_ONLY = -98;
// Code value representing the code is not specified.
public static final int CODE_UNSPECIFIED = -99;

View file

@ -348,9 +348,11 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
// When shift key is double tapped, the first tap is correctly processed as usual tap. And
// the second tap is treated as this double tap event, so that we need not mark tracker
// calling setAlreadyProcessed() nor remove the tracker from mPointerQueue.
final int primaryCode = ignore ? Keyboard.CODE_HAPTIC_AND_AUDIO_FEEDBACK_ONLY
: Keyboard.CODE_CAPSLOCK;
mKeyboardActionListener.onCodeInput(primaryCode, null, 0, 0);
if (ignore) {
mKeyboardActionListener.onCustomRequest(LatinIME.CODE_HAPTIC_AND_AUDIO_FEEDBACK);
} else {
mKeyboardActionListener.onCodeInput(Keyboard.CODE_CAPSLOCK, null, 0, 0);
}
}
// This default implementation returns a more keys panel.

View file

@ -1229,6 +1229,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// Virtual codes representing custom requests. These are used in onCustomRequest() below.
public static final int CODE_SHOW_INPUT_METHOD_PICKER = 1;
public static final int CODE_HAPTIC_AND_AUDIO_FEEDBACK = 2;
@Override
public boolean onCustomRequest(int requestCode) {
@ -1240,6 +1241,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
return true;
}
return false;
case CODE_HAPTIC_AND_AUDIO_FEEDBACK:
hapticAndAudioFeedback(Keyboard.CODE_UNSPECIFIED);
return true;
}
return false;
}
@ -1314,11 +1318,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
break;
case Keyboard.CODE_CAPSLOCK:
switcher.toggleCapsLock();
//$FALL-THROUGH$
case Keyboard.CODE_HAPTIC_AND_AUDIO_FEEDBACK_ONLY:
// Dummy code for haptic and audio feedbacks.
vibrate();
playKeyClick(primaryCode);
hapticAndAudioFeedback(primaryCode);
break;
case Keyboard.CODE_SHORTCUT:
mSubtypeSwitcher.switchToShortcutIME();
@ -2172,12 +2172,16 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
loadSettings();
}
private void hapticAndAudioFeedback(int primaryCode) {
vibrate();
playKeyClick(primaryCode);
}
@Override
public void onPress(int primaryCode, boolean withSliding) {
final KeyboardSwitcher switcher = mKeyboardSwitcher;
if (switcher.isVibrateAndSoundFeedbackRequired()) {
vibrate();
playKeyClick(primaryCode);
hapticAndAudioFeedback(primaryCode);
}
final boolean distinctMultiTouch = switcher.hasDistinctMultitouch();
if (distinctMultiTouch && primaryCode == Keyboard.CODE_SHIFT) {