tangem-app-android-audited/app/src/main/java/com/tangem/tap/di/UiDependenciesModule.kt
2024-12-28 13:00:45 +04:00

41 lines
No EOL
1.4 KiB
Kotlin

package com.tangem.tap.di
import androidx.compose.material3.SnackbarHostState
import com.tangem.core.decompose.di.GlobalUiMessageSender
import com.tangem.core.decompose.ui.DefaultUiMessageSender
import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.UiDependencies
import com.tangem.core.ui.haptic.VibratorHapticManager
import com.tangem.core.ui.message.EventMessageHandler
import com.tangem.core.ui.theme.AppThemeModeHolder
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
@Module
@InstallIn(SingletonComponent::class)
internal object UiDependenciesModule {
@Provides
@Singleton
fun provideUiDependencies(
vibratorHapticManager: VibratorHapticManager,
appThemeModeHolder: AppThemeModeHolder,
): UiDependencies {
return object : UiDependencies {
override val vibratorHapticManager = vibratorHapticManager
override val appThemeModeHolder = appThemeModeHolder
override val globalSnackbarHostState: SnackbarHostState = SnackbarHostState()
override val eventMessageHandler: EventMessageHandler = EventMessageHandler()
}
}
@Provides
@Singleton
@GlobalUiMessageSender
fun provideUiMessageSender(uiDependencies: UiDependencies): UiMessageSender {
return DefaultUiMessageSender(uiDependencies.eventMessageHandler)
}
}