71 lines
1.9 KiB
Kotlin
71 lines
1.9 KiB
Kotlin
|
|
package com.gamedog.vididin.di
|
||
|
|
|
||
|
|
import com.gamedog.vididin.core.router.interfaces.HomeRouter
|
||
|
|
import com.gamedog.vididin.core.router.interfaces.LoginRouter
|
||
|
|
import com.gamedog.vididin.core.router.interfaces.MineRouter
|
||
|
|
import com.gamedog.vididin.core.router.interfaces.TaskRouter
|
||
|
|
import com.gamedog.vididin.feature.home.repository.DefaultYoutubeDatasource
|
||
|
|
import com.gamedog.vididin.feature.home.repository.DefaultYoutubeRepository
|
||
|
|
import com.gamedog.vididin.main.fragments.home.YoutubeDataSource
|
||
|
|
import com.gamedog.vididin.main.fragments.home.YoutubeRepository
|
||
|
|
import com.gamedog.vididin.router.DefaultHomeRouter
|
||
|
|
import com.gamedog.vididin.router.DefaultLoginRouter
|
||
|
|
import com.gamedog.vididin.router.DefaultMineRouter
|
||
|
|
import com.gamedog.vididin.router.DefaultTaskRouter
|
||
|
|
import dagger.Binds
|
||
|
|
import dagger.Module
|
||
|
|
import dagger.Provides
|
||
|
|
import dagger.hilt.InstallIn
|
||
|
|
import dagger.hilt.components.SingletonComponent
|
||
|
|
import javax.inject.Singleton
|
||
|
|
|
||
|
|
|
||
|
|
@Module
|
||
|
|
@InstallIn(SingletonComponent::class)
|
||
|
|
object HomeModule {
|
||
|
|
@Provides
|
||
|
|
@Singleton
|
||
|
|
fun providesHomeRouter(): HomeRouter = DefaultHomeRouter()
|
||
|
|
}
|
||
|
|
|
||
|
|
@Module
|
||
|
|
@InstallIn(SingletonComponent::class)
|
||
|
|
object TaskModule {
|
||
|
|
@Provides
|
||
|
|
@Singleton
|
||
|
|
fun providesTaskRouter(): TaskRouter = DefaultTaskRouter()
|
||
|
|
}
|
||
|
|
|
||
|
|
@Module
|
||
|
|
@InstallIn(SingletonComponent::class)
|
||
|
|
object MineModule {
|
||
|
|
@Provides
|
||
|
|
@Singleton
|
||
|
|
fun providesMineRouter(): MineRouter = DefaultMineRouter()
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
@Module
|
||
|
|
@InstallIn(SingletonComponent::class)
|
||
|
|
internal interface YoutubeDataSourceModule {
|
||
|
|
@Binds
|
||
|
|
fun binds(impl: DefaultYoutubeDatasource): YoutubeDataSource
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
@Module
|
||
|
|
@InstallIn(SingletonComponent::class)
|
||
|
|
interface YoutubeRepositoryModule {
|
||
|
|
@Binds
|
||
|
|
fun bindsYoutubeRepository(repository: DefaultYoutubeRepository): YoutubeRepository
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
@Module
|
||
|
|
@InstallIn(SingletonComponent::class)
|
||
|
|
object LoginModule {
|
||
|
|
|
||
|
|
@Provides
|
||
|
|
@Singleton
|
||
|
|
fun providesLoginRouter(): LoginRouter = DefaultLoginRouter()
|
||
|
|
}
|