mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-19 23:41:13 +01:00
Use subscriptions in onCreate method in CataloguePresenter
This commit is contained in:
12
app/src/main/java/eu/kanade/mangafeed/util/PageBundle.java
Normal file
12
app/src/main/java/eu/kanade/mangafeed/util/PageBundle.java
Normal file
@@ -0,0 +1,12 @@
|
||||
package eu.kanade.mangafeed.util;
|
||||
|
||||
public class PageBundle<T> {
|
||||
|
||||
public final int page;
|
||||
public final T data;
|
||||
|
||||
public PageBundle(int page, T data) {
|
||||
this.page = page;
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
32
app/src/main/java/eu/kanade/mangafeed/util/RxPager.java
Normal file
32
app/src/main/java/eu/kanade/mangafeed/util/RxPager.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package eu.kanade.mangafeed.util;
|
||||
|
||||
import rx.Observable;
|
||||
import rx.subjects.PublishSubject;
|
||||
|
||||
public class RxPager {
|
||||
|
||||
private final int initialPageCount;
|
||||
private final PublishSubject<Integer> requests = PublishSubject.create();
|
||||
private int requestedCount;
|
||||
|
||||
public RxPager() {
|
||||
this(1);
|
||||
}
|
||||
|
||||
public RxPager(int initialPageCount) {
|
||||
this.initialPageCount = initialPageCount;
|
||||
}
|
||||
|
||||
public void requestNext(int page) {
|
||||
requests.onNext(page);
|
||||
}
|
||||
|
||||
public Observable<Integer> pages() {
|
||||
return requests
|
||||
.concatMap(targetPage -> targetPage <= requestedCount ?
|
||||
Observable.<Integer>never() :
|
||||
Observable.range(requestedCount, targetPage - requestedCount))
|
||||
.startWith(Observable.range(0, initialPageCount))
|
||||
.doOnNext(it -> requestedCount = it + 1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user