Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. compile "com.google.dagger:dagger:2.4"
  2. apt "com.google.dagger:dagger-compiler:2.4"
  3. annotationProcessor "com.google.dagger:dagger-compiler:2.4"
  4.  
  5. @Singleton @Component(modules = { AristocratsAppModule.class })
  6. public interface AristocratsAppComponent {
  7. StreamComponent plus(StreamModule module);
  8. }
  9.  
  10. @Module public class AristocratsAppModule {
  11. private static AristocratsApp app;
  12.  
  13. public AristocratsAppModule(AristocratsApp app) {
  14. AristocratsAppModule.app = app;
  15. }
  16.  
  17. @Provides @Singleton AristocratsApp providesApplication() {
  18. return app;
  19. }
  20.  
  21. @Provides @Singleton GsonXml providesGsonXml() {
  22. return ...
  23. }
  24.  
  25. @Provides @Singleton @Named("aristocrats") Retrofit providesAristocratsRetrofit() {
  26. return ...
  27. }
  28.  
  29. @Provides @Singleton @Named("last_fm") Retrofit providesLastFmRetrofit() {
  30. return ...
  31. }
  32. }
  33.  
  34. @PerController @Subcomponent(modules = { StreamModule.class }) public interface StreamComponent {
  35. void inject(StreamsController streamsController);
  36.  
  37. AristocratsStreamService providesAristocratsStreamService();
  38.  
  39. LastFmStreamService providesLastFmStreamService();
  40. }
  41.  
  42. @Module public class StreamModule {
  43. private StreamsController mView;
  44.  
  45. public StreamModule(StreamsController view) {
  46. mView = view;
  47. }
  48.  
  49. @Provides @PerController StreamMvp.Presenter providesPresenter(StreamCase streamCase,
  50. StreamModelMapper streamMapper) {
  51. return new StreamPresenter(mView, streamCase, streamMapper);
  52. }
  53.  
  54. @Provides @PerController AristocratsStreamService providesAristocratsStreamService(
  55. @Named("aristocrats") Retrofit retrofit) {
  56. return retrofit.create(AristocratsStreamService.class);
  57. }
  58.  
  59. @Provides @PerController LastFmStreamService providesLastFmStreamService(
  60. @Named("last_fm") Retrofit retrofit) {
  61. return retrofit.create(LastFmStreamService.class);
  62. }
  63. }
  64.  
  65. mAppComponent = DaggerAristocratsAppComponent.builder()
  66. .aristocratsAppModule(new AristocratsAppModule(this))
  67. .build();
  68.  
  69. getAppComponent().plus(new StreamModule(this)).inject(this);
  70.  
  71. 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.
  72. com.qsoft.streams.data.network.AristocratsStreamService is injected at
  73. com.qsoft.streams.data.network.StreamApi.<init>(…, streamServiceAristocrats, …)
  74. com.qsoft.streams.data.network.StreamApi is injected at
  75. com.qsoft.streams.data.repository.StreamRepository.<init>(streamApi, …)
  76. com.qsoft.streams.data.repository.StreamRepository is injected at
  77. com.qsoft.streams.domain.interactors.StreamCase.<init>(streamRepository)
  78. com.qsoft.streams.domain.interactors.StreamCase is injected at
  79. com.qsoft.streams.presentation.di.StreamModule.providesPresenter(streamCase, …)
  80. com.qsoft.streams.presentation.StreamMvp.Presenter is injected at
  81. com.qsoft.streams.presentation.StreamsController.mPresenter
  82. com.qsoft.streams.presentation.StreamsController is injected at
  83. com.qsoft.streams.presentation.di.StreamComponent.inject(streamsController)
  84. A binding with matching key exists in component: com.qsoft.streams.presentation.di.StreamComponent
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement