KeyHandler: Use VibrationAttributes.USAGE_HARDWARE_FEEDBACK

This fixes vibration when user disabled 'Touch feedback' in settings.

Change-Id: If465f34c86a1e8e1b0f0b2ee3cc74515315e30b4
This commit is contained in:
LuK1337
2022-10-19 20:42:54 +02:00
parent 7d9972f3f4
commit 2a1d632735

View File

@@ -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)