package com.alorma.github.injector.module.issues; import com.alorma.github.injector.named.IOScheduler; import com.alorma.github.injector.named.MainScheduler; import com.alorma.github.injector.named.Token; import com.alorma.github.injector.scope.PerActivity; import com.alorma.github.presenter.issue.EditIssueCommentDataSource; import com.alorma.github.presenter.issue.IssueCommentPresenter; import core.ApiClient; import core.GithubComment; import core.datasource.CloudDataSource; import core.issue.EditIssueCommentBodyRequest; import core.issue.IssuesCommentsRetrofitWrapper; import core.repository.GenericRepository; import dagger.Module; import dagger.Provides; import rx.Scheduler; @Module public class IssueDetailModule { @Provides @PerActivity IssuesCommentsRetrofitWrapper provideRest(ApiClient apiClient, @Token String token) { return new IssuesCommentsRetrofitWrapper(apiClient, token); } @Provides @PerActivity IssueCommentPresenter provideIssueCommentBaseRxPresenter( @MainScheduler Scheduler mainScheduler, @IOScheduler Scheduler ioScheduler, IssuesCommentsRetrofitWrapper retrofitWrapper) { CloudDataSource<EditIssueCommentBodyRequest, GithubComment> api = new EditIssueCommentDataSource(retrofitWrapper); return new IssueCommentPresenter( mainScheduler, ioScheduler, new GenericRepository<>(null, api)); } }