From ac812ea42ae715b8db1938b8162b71f89076ec6b Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 6 Mar 2026 12:24:51 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../core/ui/haptic/DefaultHapticManager.kt | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/haptic/DefaultHapticManager.kt b/core/ui/src/main/java/com/tangem/core/ui/haptic/DefaultHapticManager.kt index 5a34d92702..5e5ec69b89 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/haptic/DefaultHapticManager.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/haptic/DefaultHapticManager.kt @@ -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, + ) + } } \ No newline at end of file