diff --git a/KeyHandler/src/org/lineageos/settings/device/KeyHandler.java b/KeyHandler/src/org/lineageos/settings/device/KeyHandler.java index 8cf4cf1..9705c31 100644 --- a/KeyHandler/src/org/lineageos/settings/device/KeyHandler.java +++ b/KeyHandler/src/org/lineageos/settings/device/KeyHandler.java @@ -32,6 +32,12 @@ public class KeyHandler implements DeviceKeyHandler { private static final int MODE_VIBRATION = 602; private static final int MODE_SILENCE = 603; + // Vibration effects + private static final VibrationEffect MODE_NORMAL_EFFECT = + VibrationEffect.createOneShot(250, VibrationEffect.DEFAULT_AMPLITUDE); + private static final VibrationEffect MODE_VIBRATION_EFFECT = + VibrationEffect.get(VibrationEffect.EFFECT_DOUBLE_CLICK); + private final Context mContext; private final AudioManager mAudioManager; private final Vibrator mVibrator; @@ -49,9 +55,11 @@ public class KeyHandler implements DeviceKeyHandler { switch (scanCode) { case MODE_NORMAL: mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_NORMAL); + doHapticFeedback(MODE_NORMAL_EFFECT); break; case MODE_VIBRATION: mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_VIBRATE); + doHapticFeedback(MODE_VIBRATION_EFFECT); break; case MODE_SILENCE: mAudioManager.setRingerModeInternal(AudioManager.RINGER_MODE_SILENT); @@ -59,15 +67,13 @@ public class KeyHandler implements DeviceKeyHandler { default: return event; } - doHapticFeedback(); return null; } - private void doHapticFeedback() { + private void doHapticFeedback(VibrationEffect effect) { if (mVibrator != null && mVibrator.hasVibrator()) { - mVibrator.vibrate(VibrationEffect.createOneShot(50, - VibrationEffect.DEFAULT_AMPLITUDE)); + mVibrator.vibrate(effect); } } }