Change the download event. Fix some bugs in download manager. Other minor changes.

This commit is contained in:
inorichi
2015-11-06 03:29:23 +01:00
parent 2683cad5b5
commit d3a32da62c
10 changed files with 148 additions and 100 deletions
@@ -63,20 +63,23 @@ public abstract class Source extends BaseSource {
Observable.just(parseHtmlToChapters(unparsedHtml)));
}
public Observable<List<Page>> pullPageListFromNetwork(final String chapterUrl) {
public Observable<List<Page>> getCachedPageListOrPullFromNetwork(final String chapterUrl) {
return mCacheManager.getPageUrlsFromDiskCache(chapterUrl)
.onErrorResumeNext(throwable -> {
return mNetworkService
.getStringResponse(overrideChapterPageUrl(chapterUrl), mRequestHeaders, null)
.flatMap(unparsedHtml -> {
List<String> pageUrls = parseHtmlToPageUrls(unparsedHtml);
return Observable.just(getFirstImageFromPageUrls(pageUrls, unparsedHtml));
})
.doOnNext(pages -> savePageList(chapterUrl, pages));
return pullPageListFromNetwork(chapterUrl);
})
.onBackpressureBuffer();
}
public Observable<List<Page>> pullPageListFromNetwork(final String chapterUrl) {
return mNetworkService
.getStringResponse(overrideChapterPageUrl(chapterUrl), mRequestHeaders, null)
.flatMap(unparsedHtml -> {
List<String> pageUrls = parseHtmlToPageUrls(unparsedHtml);
return Observable.just(getFirstImageFromPageUrls(pageUrls, unparsedHtml));
});
}
// Get the URLs of the images of a chapter
public Observable<Page> getRemainingImageUrlsFromPageList(final List<Page> pages) {
return Observable.from(pages)