FacadeComponent.kt 1.0 KB

1234567891011121314151617181920212223242526272829
  1. package com.mrozon.healthdiary.di
  2. import android.app.Application
  3. import com.mrozon.core.CoreProvidersFactory
  4. import com.mrozon.core_api.db.DatabaseProvider
  5. import com.mrozon.core_api.network.NetworkProvider
  6. import com.mrozon.core_api.providers.AppProvider
  7. import com.mrozon.core_api.providers.ProvidersFacade
  8. import com.mrozon.core_api.viewmodel.ViewModelsProvider
  9. import com.mrozon.healthdiary.App
  10. import dagger.Component
  11. @Component(
  12. dependencies = [AppProvider::class, ViewModelsProvider::class, DatabaseProvider::class, NetworkProvider::class]
  13. )
  14. interface FacadeComponent : ProvidersFacade {
  15. companion object {
  16. fun init(application: Application): FacadeComponent =
  17. DaggerFacadeComponent.builder()
  18. .appProvider(AppComponent.create(application))
  19. .databaseProvider(CoreProvidersFactory.createDatabaseBuilder(AppComponent.create(application)))
  20. .networkProvider(CoreProvidersFactory.createNetworkBuilder())
  21. .build()
  22. }
  23. fun inject(app: App)
  24. }