fun inject(activity: TransportActivity) } interface TransportComponentParent { fun paymentsNavigationUseCase(): PaymentsNavigationUseCase fun commonObject(): CommonObject }
fun inject(activity: TransportActivity) } interface TransportComponentParent { fun featureOneNavigationUseCase(): PaymentsNavigationUseCase fun commonObject(): CommonObject }
<T> extractParent(): T { return component as T } lateinit var component: AppComponent override fun onCreate() { super.onCreate() component = DaggerAppComponent.create() component.inject(this) } }
“Payment implementation” 2. Include payment interface module inside transport module 3. Transport module relies on payment interface and its implementation is provided by app.