Updated on 2026-08-14

This commit is contained in:
Tangem 2026-03-06 12:24:51 +03:00
parent 126d5f9fb1
commit ac812ea42a

View file

@ -10,11 +10,7 @@ internal class DefaultHapticManager(
override fun perform(effect: TangemHapticEffect) {
when (effect) {
is TangemHapticEffect.View -> {
effect.androidHapticFeedbackCode?.let {
ViewCompat.performHapticFeedback(view, it)
}
}
is TangemHapticEffect.View -> performViewEffect(effect)
is TangemHapticEffect.OneTime -> {
if (vibratorHapticManager != null) {
vibratorHapticManager.performOneTime(effect)
@ -29,4 +25,20 @@ internal class DefaultHapticManager(
}
}
}
private fun performViewEffect(effect: TangemHapticEffect.View) {
val code = effect.androidHapticFeedbackCode ?: return
if (ViewCompat.performHapticFeedback(view, code)) return
val fallbackCode = VIEW_FALLBACKS[effect]?.androidHapticFeedbackCode ?: return
ViewCompat.performHapticFeedback(view, fallbackCode)
}
private companion object {
val VIEW_FALLBACKS = mapOf(
TangemHapticEffect.View.ClockTick to TangemHapticEffect.View.KeyboardPress,
TangemHapticEffect.View.Confirm to TangemHapticEffect.View.ContextClick,
TangemHapticEffect.View.Reject to TangemHapticEffect.View.LongPress,
)
}
}