Как мне предоставить 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 {
// ?
}

0 ответов

Другие вопросы по тегам