Как мне предоставить ProvisionPresenter с Moxy и Dagger 2?
Я столкнулся с проблемой, что я не знаю, как инициализировать моего докладчика внутри providePresenter()
метод с одноименной аннотацией @ProvidePresenter
,
С помощью Dagger 2
Я провожу несколько уроков в ведущий:
@InjectViewState
class GroupInfoPresenter @Inject constructor(private val groupInfoInteractor: GroupInfoInteractor,
private val compositeDisposable: CompositeDisposable,
private val schedulerProvider: SchedulerProvider) :
BasePresenter<GroupInfoView>(compositeDisposable)
Теперь из-за того, что у меня нет достаточного конструктора для моего докладчика, я должен предоставить его, используя @ProvidePresenter
аннотации, но я не знаю, как это сделать. Я не могу найти пример для Dagger 2 approuch.
Вот мое дерево Ди:
AppComponent
:
@Singleton
@Component(modules = [(AndroidInjectionModule::class), (AppModule::class), (ActivityBuilder::class)])
interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
fun application(application: Application): Builder
fun build(): AppComponent
}
fun inject(app: MyApplication)
}
ActivityBuilder
:
@Module
abstract class ActivityBuilder {
@ContributesAndroidInjector(modules = [(GroupSearchActivityModule::class), (DataModule::class)])
abstract fun bindGroupSearchActibity(): GroupSearchActivity
AppModule
просто предоставляя некоторые планировщики и контекст.
GroupInfoActivityModule
:
@Module
class GroupInfoActivityModule {
@Provides
internal fun provideGroupInfoInteractor(groupRepository: GroupRepository, schedulerProvider: SchedulerProvider)
= GroupInfoInteractor(groupRepository, schedulerProvider)
}
Кто-нибудь может помочь мне с этой проблемой? Как правильно сделать этот метод?
@ProvidePersenter
providePresenter() : GroupInfoPresenter {
// ?
}