Skip to content

Instantly share code, notes, and snippets.

@SabagRonen
Last active August 31, 2019 16:01
Show Gist options
  • Save SabagRonen/0ac3ad589a8af96fd6fa9571784b36de to your computer and use it in GitHub Desktop.
Save SabagRonen/0ac3ad589a8af96fd6fa9571784b36de to your computer and use it in GitHub Desktop.
dagger android injector post all injection issues
class MyApp : Application(), HasActivityInjector {
@Inject lateinit var dispatchingActivityInjector: DispatchingAndroidInjector<Any>
override fun androidInjector() = dispatchingActivityInjector
override fun onCreate() {
super.onCreate()
DaggerAppComponent.builder().application(this).build().inject(this)
}
}
@Component (modules = [AndroidInjectionModule::class, ActivityBuilder::class])
interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
fun application(application: Application): Builder
fun build(): AppComponent
}
fun inject(app: MyApp)
}
@Module
abstract class ActivityBuilder {
@ContributesAndroidInjector(modules = [MainActivityModule::class])
internal abstract fun bindMainActivity(): MainActivity
}
@Module
class MainActivityModule {
@Provides
fun provideMainPresenter() : MainContract.UserAction {
return MainPresenter()
}
}
class MainPresenter : MainContract.UserAction {
override fun createTopic(view: MainContract.View) {
view.showClickTtext()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment