Если вы используете ContributesAndroidInjector, вы сможете получить доступ к экземпляру Fragment через любые модули, включенные в сгенерированный подкомпонент.
например.
@Module
abstract class MyContributesModule {
@ContributesAndroidInjector(modules = [MyFragmentModule::class])
internal abstract fun myFragment(): MyFragment
}
@Module
abstract class MyFragmentModule {
@Binds
internal abstract fun myFragmentInteractor(myFragmentInteractorImpl: MyFragmentInteractorImpl): MyFragmentInteractor
}
interface MyFragmentInteractor {
fun doSomething()
}
class MyFragmentInteractorImpl @Inject constructor(private val myFragment : MyFragment) : MyFragmentInteractor {
override fun doSomething() {
// doSomething with myFragment
}
}
class MyFragment : Fragment() {
@Inject
lateinit var interactor: MyFragmentInteractor
override fun onAttach(context: Context?) {
AndroidSupportInjection.inject(this)
super.onAttach(context)
}