DataModule.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package eu.kanade.mangafeed.data;
  2. import android.app.Application;
  3. import javax.inject.Singleton;
  4. import dagger.Module;
  5. import dagger.Provides;
  6. import eu.kanade.mangafeed.data.caches.CacheManager;
  7. import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
  8. import eu.kanade.mangafeed.data.helpers.NetworkHelper;
  9. import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
  10. import eu.kanade.mangafeed.data.helpers.SourceManager;
  11. import rx.Scheduler;
  12. import rx.schedulers.Schedulers;
  13. /**
  14. * Provide dependencies to the DataManager, mainly Helper classes and Retrofit services.
  15. */
  16. @Module
  17. public class DataModule {
  18. @Provides
  19. @Singleton
  20. PreferencesHelper providePreferencesHelper(Application app) {
  21. return new PreferencesHelper(app);
  22. }
  23. @Provides
  24. @Singleton
  25. DatabaseHelper provideDatabaseHelper(Application app) {
  26. return new DatabaseHelper(app);
  27. }
  28. @Provides
  29. @Singleton
  30. Scheduler provideSubscribeScheduler() {
  31. return Schedulers.io();
  32. }
  33. @Provides
  34. @Singleton
  35. CacheManager provideCacheManager(Application app) {
  36. return new CacheManager(app);
  37. }
  38. @Provides
  39. @Singleton
  40. NetworkHelper provideNetworkHelper() {
  41. return new NetworkHelper();
  42. }
  43. @Provides
  44. @Singleton
  45. SourceManager provideSourceManager(NetworkHelper networkHelper, CacheManager cacheManager) {
  46. return new SourceManager(networkHelper, cacheManager);
  47. }
  48. }