DataModule.java 1.6 KB

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