81 lines
No EOL
2.9 KiB
Kotlin
81 lines
No EOL
2.9 KiB
Kotlin
package com.tangem.tap.di
|
|
|
|
import com.tangem.datasource.exchangeservice.swap.SwapServiceLoader
|
|
import com.tangem.domain.card.ScanCardUseCase
|
|
import com.tangem.domain.card.repository.CardSdkConfigRepository
|
|
import com.tangem.domain.exchange.RampStateManager
|
|
import com.tangem.domain.tokens.GetPolkadotCheckHasImmortalUseCase
|
|
import com.tangem.domain.tokens.GetPolkadotCheckHasResetUseCase
|
|
import com.tangem.domain.tokens.repository.PolkadotAccountHealthCheckRepository
|
|
import com.tangem.sdk.api.TangemSdkManager
|
|
import com.tangem.tap.domain.scanCard.repository.DefaultScanCardRepository
|
|
import com.tangem.tap.network.exchangeServices.DefaultRampManager
|
|
import com.tangem.tap.proxy.AppStateHolder
|
|
import com.tangem.utils.Provider
|
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.components.SingletonComponent
|
|
import kotlinx.coroutines.CoroutineScope
|
|
import kotlinx.coroutines.Dispatchers
|
|
import kotlinx.coroutines.SupervisorJob
|
|
import javax.inject.Singleton
|
|
|
|
@Module
|
|
@InstallIn(SingletonComponent::class)
|
|
internal object ActivityModule {
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideScanCardUseCase(
|
|
tangemSdkManager: TangemSdkManager,
|
|
cardSdkConfigRepository: CardSdkConfigRepository,
|
|
): ScanCardUseCase {
|
|
return ScanCardUseCase(
|
|
cardSdkConfigRepository = cardSdkConfigRepository,
|
|
scanCardRepository = DefaultScanCardRepository(
|
|
tangemSdkManager = tangemSdkManager,
|
|
),
|
|
)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideDefaultRampManager(
|
|
appStateHolder: AppStateHolder,
|
|
swapServiceLoader: SwapServiceLoader,
|
|
dispatchers: CoroutineDispatcherProvider,
|
|
): RampStateManager {
|
|
return DefaultRampManager(
|
|
exchangeService = appStateHolder.exchangeService,
|
|
buyService = Provider { requireNotNull(appStateHolder.buyService) },
|
|
sellService = Provider { requireNotNull(appStateHolder.sellService) },
|
|
swapServiceLoader = swapServiceLoader,
|
|
dispatchers = dispatchers,
|
|
)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
@DelayedWork
|
|
fun provideActivityDelayedWorkCoroutineScope(): CoroutineScope {
|
|
return CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideGetPolkadotCheckHasResetUseCase(
|
|
polkadotAccountHealthCheckRepository: PolkadotAccountHealthCheckRepository,
|
|
): GetPolkadotCheckHasResetUseCase {
|
|
return GetPolkadotCheckHasResetUseCase(polkadotAccountHealthCheckRepository)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideGetPolkadotCheckHasImmortalUseCase(
|
|
polkadotAccountHealthCheckRepository: PolkadotAccountHealthCheckRepository,
|
|
): GetPolkadotCheckHasImmortalUseCase {
|
|
return GetPolkadotCheckHasImmortalUseCase(polkadotAccountHealthCheckRepository)
|
|
}
|
|
} |