Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- compile "com.google.dagger:dagger:2.4"
- apt "com.google.dagger:dagger-compiler:2.4"
- annotationProcessor "com.google.dagger:dagger-compiler:2.4"
- @Singleton @Component(modules = { AristocratsAppModule.class })
- public interface AristocratsAppComponent {
- StreamComponent plus(StreamModule module);
- }
- @Module public class AristocratsAppModule {
- private static AristocratsApp app;
- public AristocratsAppModule(AristocratsApp app) {
- AristocratsAppModule.app = app;
- }
- @Provides @Singleton AristocratsApp providesApplication() {
- return app;
- }
- @Provides @Singleton GsonXml providesGsonXml() {
- return ...
- }
- @Provides @Singleton @Named("aristocrats") Retrofit providesAristocratsRetrofit() {
- return ...
- }
- @Provides @Singleton @Named("last_fm") Retrofit providesLastFmRetrofit() {
- return ...
- }
- }
- @PerController @Subcomponent(modules = { StreamModule.class }) public interface StreamComponent {
- void inject(StreamsController streamsController);
- AristocratsStreamService providesAristocratsStreamService();
- LastFmStreamService providesLastFmStreamService();
- }
- @Module public class StreamModule {
- private StreamsController mView;
- public StreamModule(StreamsController view) {
- mView = view;
- }
- @Provides @PerController StreamMvp.Presenter providesPresenter(StreamCase streamCase,
- StreamModelMapper streamMapper) {
- return new StreamPresenter(mView, streamCase, streamMapper);
- }
- @Provides @PerController AristocratsStreamService providesAristocratsStreamService(
- @Named("aristocrats") Retrofit retrofit) {
- return retrofit.create(AristocratsStreamService.class);
- }
- @Provides @PerController LastFmStreamService providesLastFmStreamService(
- @Named("last_fm") Retrofit retrofit) {
- return retrofit.create(LastFmStreamService.class);
- }
- }
- mAppComponent = DaggerAristocratsAppComponent.builder()
- .aristocratsAppModule(new AristocratsAppModule(this))
- .build();
- getAppComponent().plus(new StreamModule(this)).inject(this);
- Error:(13, 8) error: [com.qsoft.streams.presentation.di.StreamComponent.inject(com.qsoft.streams.presentation.StreamsController)] com.qsoft.streams.data.network.AristocratsStreamService cannot be provided without an @Provides-annotated method.
- com.qsoft.streams.data.network.AristocratsStreamService is injected at
- com.qsoft.streams.data.network.StreamApi.<init>(…, streamServiceAristocrats, …)
- com.qsoft.streams.data.network.StreamApi is injected at
- com.qsoft.streams.data.repository.StreamRepository.<init>(streamApi, …)
- com.qsoft.streams.data.repository.StreamRepository is injected at
- com.qsoft.streams.domain.interactors.StreamCase.<init>(streamRepository)
- com.qsoft.streams.domain.interactors.StreamCase is injected at
- com.qsoft.streams.presentation.di.StreamModule.providesPresenter(streamCase, …)
- com.qsoft.streams.presentation.StreamMvp.Presenter is injected at
- com.qsoft.streams.presentation.StreamsController.mPresenter
- com.qsoft.streams.presentation.StreamsController is injected at
- com.qsoft.streams.presentation.di.StreamComponent.inject(streamsController)
- A binding with matching key exists in component: com.qsoft.streams.presentation.di.StreamComponent
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement