Forráskód Böngészése

Recover manga activity status when the process restarts

inorichi 9 éve
szülő
commit
a571bb5637

+ 2 - 1
app/src/main/java/eu/kanade/mangafeed/ui/manga/MangaPresenter.java

@@ -8,6 +8,7 @@ import de.greenrobot.event.EventBus;
 import eu.kanade.mangafeed.data.database.DatabaseHelper;
 import eu.kanade.mangafeed.data.database.models.Manga;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
+import icepick.State;
 import rx.Observable;
 import rx.android.schedulers.AndroidSchedulers;
 import rx.schedulers.Schedulers;
@@ -16,7 +17,7 @@ public class MangaPresenter extends BasePresenter<MangaActivity> {
 
     @Inject DatabaseHelper db;
 
-    private long mangaId;
+    @State long mangaId;
 
     private static final int DB_MANGA = 1;
 

+ 10 - 0
app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersPresenter.java

@@ -52,6 +52,10 @@ public class ChaptersPresenter extends BasePresenter<ChaptersFragment> {
     protected void onCreate(Bundle savedState) {
         super.onCreate(savedState);
 
+        if (savedState != null) {
+            onProcessRestart();
+        }
+
         chaptersSubject = PublishSubject.create();
 
         restartableLatestCache(DB_CHAPTERS,
@@ -71,6 +75,12 @@ public class ChaptersPresenter extends BasePresenter<ChaptersFragment> {
         registerForStickyEvents();
     }
 
+    private void onProcessRestart() {
+        stop(DB_CHAPTERS);
+        stop(FETCH_CHAPTERS);
+        stop(CHAPTER_STATUS_CHANGES);
+    }
+
     @Override
     protected void onDestroy() {
         unregisterForEvents();

+ 10 - 0
app/src/main/java/eu/kanade/mangafeed/ui/manga/info/MangaInfoPresenter.java

@@ -36,6 +36,10 @@ public class MangaInfoPresenter extends BasePresenter<MangaInfoFragment> {
     protected void onCreate(Bundle savedState) {
         super.onCreate(savedState);
 
+        if (savedState != null) {
+            onProcessRestart();
+        }
+
         restartableLatestCache(GET_MANGA,
                 () -> Observable.just(manga),
                 MangaInfoFragment::onNextManga);
@@ -52,6 +56,12 @@ public class MangaInfoPresenter extends BasePresenter<MangaInfoFragment> {
         registerForStickyEvents();
     }
 
+    private void onProcessRestart() {
+        stop(GET_MANGA);
+        stop(GET_CHAPTER_COUNT);
+        stop(FETCH_MANGA_INFO);
+    }
+
     @Override
     protected void onDestroy() {
         unregisterForEvents();