add Auth Component

This commit is contained in:
Evgeny Dubravin 2024-04-02 03:42:28 +07:00
parent d2ed5e2d27
commit 8c17767122
6 changed files with 52 additions and 3 deletions

View File

@ -3,8 +3,8 @@ package ru.touchin.template.di
import android.content.Context
import dagger.BindsInstance
import dagger.Component
import javax.inject.Singleton
import ru.touchin.template.App
import ru.touchin.template.di.auth.AuthComponent
import ru.touchin.template.di.modules.AppModule
import ru.touchin.template.di.modules.NavigationModule
import ru.touchin.template.di.modules.ViewModelModule
@ -17,9 +17,11 @@ import ru.touchin.template.feature.SingleActivity
NavigationModule::class
]
)
@Singleton
@AppScope
interface AppComponent : SharedComponent {
fun authComponent(): AuthComponent.Builder
@Component.Builder
interface Builder {

View File

@ -0,0 +1,6 @@
package ru.touchin.template.di
import javax.inject.Scope
@Scope
annotation class AppScope

View File

@ -0,0 +1,17 @@
package ru.touchin.template.di.auth
import dagger.Subcomponent
import ru.touchin.template.feature.first.FirstFragment
@Subcomponent(modules = [AuthModule::class])
@AuthScope
interface AuthComponent {
@Subcomponent.Builder
interface Builder {
fun build(): AuthComponent
}
fun inject(entry: FirstFragment)
}

View File

@ -0,0 +1,16 @@
package ru.touchin.template.di.auth
import dagger.Module
import dagger.Provides
import ru.touchin.template.feature.second.SecondRepository
import ru.touchin.template.feature.second.SecondRepositoryImpl
@Module
class AuthModule {
@Provides
@AuthScope
internal fun providesSecondRepository(): SecondRepository {
return SecondRepositoryImpl()
}
}

View File

@ -0,0 +1,6 @@
package ru.touchin.template.di.auth
import javax.inject.Scope
@Scope
annotation class AuthScope

View File

@ -1,11 +1,13 @@
package ru.touchin.template.di.modules
import dagger.Module
import ru.touchin.template.di.auth.AuthComponent
@Module(
includes = [
RepositoryModule::class,
NetworkModule::class
]
],
subcomponents = [AuthComponent::class]
)
class AppModule