60 lines
No EOL
1.9 KiB
Kotlin
60 lines
No EOL
1.9 KiB
Kotlin
package com.tangem.tap.di
|
|
|
|
import android.content.Context
|
|
import com.tangem.domain.card.ScanCardUseCase
|
|
import com.tangem.domain.card.repository.CardSdkConfigRepository
|
|
import com.tangem.domain.exchange.RampStateManager
|
|
import com.tangem.tap.domain.TangemSdkManager
|
|
import com.tangem.tap.domain.scanCard.repository.DefaultScanCardRepository
|
|
import com.tangem.tap.network.exchangeServices.DefaultRampManager
|
|
import com.tangem.tap.proxy.AppStateHolder
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
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 provideTangemSdkManager(
|
|
@ApplicationContext context: Context,
|
|
cardSdkConfigRepository: CardSdkConfigRepository,
|
|
): TangemSdkManager {
|
|
return TangemSdkManager(cardSdkConfigRepository = cardSdkConfigRepository, resources = context.resources)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideScanCardUseCase(
|
|
tangemSdkManager: TangemSdkManager,
|
|
cardSdkConfigRepository: CardSdkConfigRepository,
|
|
): ScanCardUseCase {
|
|
return ScanCardUseCase(
|
|
cardSdkConfigRepository = cardSdkConfigRepository,
|
|
scanCardRepository = DefaultScanCardRepository(
|
|
tangemSdkManager = tangemSdkManager,
|
|
),
|
|
)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideDefaultRampManager(appStateHolder: AppStateHolder): RampStateManager {
|
|
return DefaultRampManager(appStateHolder.exchangeService)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
@DelayedWork
|
|
fun provideActivityDelayedWorkCoroutineScope(): CoroutineScope {
|
|
return CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
|
}
|
|
} |