Use subscriptions in onCreate method in CataloguePresenter

This commit is contained in:
inorichi
2015-10-19 02:57:00 +02:00
parent 1719959bc8
commit 264d627dea
7 changed files with 130 additions and 122 deletions

View 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;
}
}

View 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);
}
}