From 2a1d632735829c2a3de107c48083681b1bc073d2 Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Wed, 19 Oct 2022 20:42:54 +0200 Subject: [PATCH] KeyHandler: Use VibrationAttributes.USAGE_HARDWARE_FEEDBACK This fixes vibration when user disabled 'Touch feedback' in settings. Change-Id: If465f34c86a1e8e1b0f0b2ee3cc74515315e30b4 --- .../org/lineageos/settings/device/KeyHandler.kt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/KeyHandler/src/org/lineageos/settings/device/KeyHandler.kt b/KeyHandler/src/org/lineageos/settings/device/KeyHandler.kt index d1b374f..8068d25 100644 --- a/KeyHandler/src/org/lineageos/settings/device/KeyHandler.kt +++ b/KeyHandler/src/org/lineageos/settings/device/KeyHandler.kt @@ -13,6 +13,7 @@ import android.content.IntentFilter import android.hardware.input.InputManager import android.media.AudioManager import android.media.AudioSystem +import android.os.VibrationAttributes import android.os.VibrationEffect import android.os.Vibrator import android.provider.Settings @@ -79,8 +80,14 @@ class KeyHandler(context: Context) : DeviceKeyHandler { private fun vibrateIfNeeded(mode: Int) { when (mode) { - AudioManager.RINGER_MODE_VIBRATE -> vibrator.vibrate(MODE_VIBRATION_EFFECT) - AudioManager.RINGER_MODE_NORMAL -> vibrator.vibrate(MODE_NORMAL_EFFECT) + AudioManager.RINGER_MODE_VIBRATE -> vibrator.vibrate( + MODE_VIBRATION_EFFECT, + HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES + ) + AudioManager.RINGER_MODE_NORMAL -> vibrator.vibrate( + MODE_NORMAL_EFFECT, + HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES + ) } } @@ -153,6 +160,10 @@ class KeyHandler(context: Context) : DeviceKeyHandler { private const val ZEN_TOTAL_SILENCE = 4 private const val ZEN_ALARMS_ONLY = 5 + // Vibration attributes + private val HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES = + VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK) + // Vibration effects private val MODE_NORMAL_EFFECT = VibrationEffect.get(VibrationEffect.EFFECT_HEAVY_CLICK) private val MODE_VIBRATION_EFFECT = VibrationEffect.get(VibrationEffect.EFFECT_DOUBLE_CLICK)