MangaInfoPresenter.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package eu.kanade.mangafeed.presenter;
  2. import android.os.Bundle;
  3. import javax.inject.Inject;
  4. import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
  5. import eu.kanade.mangafeed.data.models.Manga;
  6. import eu.kanade.mangafeed.ui.fragment.MangaInfoFragment;
  7. import eu.kanade.mangafeed.util.EventBusHook;
  8. import eu.kanade.mangafeed.events.ChapterCountEvent;
  9. import rx.Observable;
  10. public class MangaInfoPresenter extends BasePresenter<MangaInfoFragment> {
  11. @Inject DatabaseHelper db;
  12. private Manga manga;
  13. private int count = -1;
  14. private static final int GET_MANGA = 1;
  15. private static final int GET_CHAPTER_COUNT = 2;
  16. @Override
  17. protected void onCreate(Bundle savedState) {
  18. super.onCreate(savedState);
  19. restartableLatestCache(GET_MANGA,
  20. () -> Observable.just(manga),
  21. MangaInfoFragment::setMangaInfo);
  22. restartableLatestCache(GET_CHAPTER_COUNT,
  23. () -> Observable.just(count),
  24. MangaInfoFragment::setChapterCount);
  25. }
  26. @Override
  27. protected void onTakeView(MangaInfoFragment view) {
  28. super.onTakeView(view);
  29. registerForStickyEvents();
  30. }
  31. @Override
  32. protected void onDropView() {
  33. unregisterForEvents();
  34. super.onDropView();
  35. }
  36. @EventBusHook
  37. public void onEventMainThread(Manga manga) {
  38. this.manga = manga;
  39. start(GET_MANGA);
  40. }
  41. @EventBusHook
  42. public void onEventMainThread(ChapterCountEvent event) {
  43. if (count != event.getCount()) {
  44. count = event.getCount();
  45. start(GET_CHAPTER_COUNT);
  46. }
  47. }
  48. }