Я столкнулся со странной проблемой.Мне нужно ввести два планировщика.Для пользовательского интерфейса и асинхронных операций.У меня есть класс RxModule:
@Module
class RxModule {
@Named(Keys.SCHEDULER_UI)
@Provides
@Singleton
fun provideUiScheduler(): Scheduler = AndroidSchedulers.mainThread()
@Named(Keys.SCHEDULER_ASYNC)
@Provides
@Singleton
fun provideAsyncScheduler(): Scheduler = Schedulers.io()
}
И я внедряю их в презентатор как
@Named(Keys.SCHEDULER_UI)
@Inject
lateinit var uiScheduler: Scheduler
@Named(Keys.SCHEDULER_ASYNC)
@Inject
lateinit var asyncScheduler: Scheduler
Но Dagger падает за исключением:
io.reactivex.Scheduler cannot be provided without an @Provides- or @Produces-annotated method
Инъекции выглядят просто:
ApplicationLoader.instance.getApplicationComponent().inject(presenter)
Мой компонент приложения:
@Component(modules = [RxModule::class, ApplicationModule::class, WebModule::class, RepositoryModule::class])
@Singleton
interface AppComponent {
fun inject(presenter: MainPresenter)
fun inject(presenter: AppDetailsPresenter)
}
Кто-нибудь сталкивался с такой же проблемой?Заранее спасибо