Skip to content

Latest commit

 

History

History
58 lines (40 loc) · 1.87 KB

README.md

File metadata and controls

58 lines (40 loc) · 1.87 KB

This repository shows how to set up an Android project using Dagger.

Features

  • Default dependency injection (DI) setup

checkout master

checkout branch dagger-view-model

checkout branch dagger-retrofit

checkout branch dagger-work-manager

How to add new activity/fragment to DI

Activity:

  • Add an activity, implements HasSupportFragmentInjector
class MainActivity : AppCompatActivity(), HasSupportFragmentInjector {

    @Inject
    lateinit var repository: SampleRepository

    @Inject
    lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Fragment>

    override fun supportFragmentInjector() = dispatchingAndroidInjector
}
  • Register the activity to AndroidInjector in ActivityModule
@ContributesAndroidInjector(modules = [FragmentBuildersModule::class])
abstract fun contributeMainActivity(): MainActivity

Fragment

  • Add a fragment, implements Injectable
class MainFragment : Fragment(), Injectable {
}
  • Register the fragment in FragmentBuildersModule
@ContributesAndroidInjector
abstract fun contributeMainFragment(): MainFragment

Credit

This project is extracted and modified from GithubBrowserSample.