Updated on 2026-08-14

This commit is contained in:
Tangem 2024-08-07 15:42:58 +03:00
parent ac8436460c
commit 459db3d0df
17 changed files with 263 additions and 102 deletions

View file

@ -4,9 +4,9 @@ import android.content.Context
import android.os.Build
import android.os.Vibrator
import android.os.VibratorManager
import com.tangem.tap.common.haptic.DefaultHapticManager
import com.tangem.core.ui.haptic.HapticManager
import com.tangem.core.ui.haptic.MockHapticManager
import com.tangem.tap.common.haptic.DefaultVibratorHapticManager
import com.tangem.core.ui.haptic.TangemHapticEffect
import com.tangem.core.ui.haptic.VibratorHapticManager
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
@ -20,7 +20,7 @@ class HapticModule {
@Provides
@Singleton
fun provideHapticManager(@ApplicationContext context: Context): HapticManager {
fun provideHapticManager(@ApplicationContext context: Context): VibratorHapticManager {
val vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vibratorManager = context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
vibratorManager.defaultVibrator
@ -29,9 +29,12 @@ class HapticModule {
}
return if (vibrator.hasVibrator()) {
DefaultHapticManager(vibrator = vibrator)
DefaultVibratorHapticManager(vibrator = vibrator)
} else {
MockHapticManager
// mock
object : VibratorHapticManager {
override fun performOneTime(effect: TangemHapticEffect.OneTime) = Unit
}
}
}
}

View file

@ -2,7 +2,7 @@ package com.tangem.tap.di
import androidx.compose.material3.SnackbarHostState
import com.tangem.core.ui.UiDependencies
import com.tangem.core.ui.haptic.HapticManager
import com.tangem.core.ui.haptic.VibratorHapticManager
import com.tangem.core.ui.message.EventMessageHandler
import com.tangem.core.ui.theme.AppThemeModeHolder
import dagger.Module
@ -17,9 +17,12 @@ internal object UiDependenciesModule {
@Provides
@Singleton
fun provideUiDependencies(hapticManager: HapticManager, appThemeModeHolder: AppThemeModeHolder): UiDependencies {
fun provideUiDependencies(
vibratorHapticManager: VibratorHapticManager,
appThemeModeHolder: AppThemeModeHolder,
): UiDependencies {
return object : UiDependencies {
override val hapticManager = hapticManager
override val vibratorHapticManager = vibratorHapticManager
override val appThemeModeHolder = appThemeModeHolder
override val globalSnackbarHostState: SnackbarHostState = SnackbarHostState()
override val eventMessageHandler: EventMessageHandler = EventMessageHandler()