65 lines
No EOL
2.2 KiB
Kotlin
65 lines
No EOL
2.2 KiB
Kotlin
package com.tangem.tap.di
|
|
|
|
import android.content.Context
|
|
import com.tangem.core.analytics.api.AnalyticsExceptionHandler
|
|
import com.tangem.tap.common.deeplink.DefaultDeeplinkLauncher
|
|
import com.tangem.core.navigation.deeplink.DeeplinkLauncher
|
|
import com.tangem.core.navigation.finisher.AppFinisher
|
|
import com.tangem.core.navigation.settings.SettingsManager
|
|
import com.tangem.core.navigation.share.ShareManager
|
|
import com.tangem.core.navigation.url.UrlOpener
|
|
import com.tangem.utils.coroutines.AppCoroutineScope
|
|
import com.tangem.tap.common.finisher.AndroidAppFinisher
|
|
import com.tangem.tap.common.settings.IntentSettingsManager
|
|
import com.tangem.tap.common.share.IntentShareManager
|
|
import com.tangem.tap.common.url.CustomTabsUrlOpener
|
|
import com.tangem.tap.core.DefaultAppCoroutineScope
|
|
import com.tangem.tap.data.DefaultAppInfoProvider
|
|
import com.tangem.utils.info.AppInfoProvider
|
|
import dagger.Binds
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
import dagger.hilt.components.SingletonComponent
|
|
import javax.inject.Singleton
|
|
|
|
@Module
|
|
@InstallIn(SingletonComponent::class)
|
|
internal interface UtilsModule {
|
|
|
|
@Binds
|
|
fun provideAppScope(defaultAppScope: DefaultAppCoroutineScope): AppCoroutineScope
|
|
|
|
@Binds
|
|
@Singleton
|
|
fun bindAppInfoProvider(impl: DefaultAppInfoProvider): AppInfoProvider
|
|
|
|
companion object {
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideShareManager(): ShareManager = IntentShareManager()
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideUrlOpener(): UrlOpener = CustomTabsUrlOpener()
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideAppFinisher(@ApplicationContext context: Context): AppFinisher = AndroidAppFinisher(context)
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideSettingsManager(@ApplicationContext context: Context): SettingsManager =
|
|
IntentSettingsManager(context)
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideDeeplinkLauncher(
|
|
@ApplicationContext context: Context,
|
|
urlOpener: UrlOpener,
|
|
analyticsExceptionHandler: AnalyticsExceptionHandler,
|
|
): DeeplinkLauncher = DefaultDeeplinkLauncher(context, urlOpener, analyticsExceptionHandler)
|
|
}
|
|
} |