Last active
August 31, 2019 16:01
-
-
Save SabagRonen/0ac3ad589a8af96fd6fa9571784b36de to your computer and use it in GitHub Desktop.
dagger android injector post all injection issues
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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