Show download progress. Caching of images now without glide

This commit is contained in:
inorichi
2015-10-28 02:10:37 +01:00
parent 3561392d24
commit 1339e32de7
9 changed files with 249 additions and 42 deletions

View File

@@ -102,6 +102,31 @@ public abstract class Source extends BaseSource {
.subscribeOn(Schedulers.io());
}
public Observable<Page> getCachedImage(final Page page) {
Observable<Page> obs = Observable.just(page);
if (page.getImageUrl() == null)
return obs;
if (!mCacheManager.isImageInCache(page.getImageUrl())) {
obs = mNetworkService.getProgressResponse(page.getImageUrl(), mRequestHeaders, page)
.flatMap(resp -> {
if (!mCacheManager.putImageToDiskCache(page.getImageUrl(), resp)) {
throw new IllegalStateException("Unable to save image");
}
return Observable.just(page);
});
}
return obs.flatMap(p -> {
page.setImagePath(mCacheManager.getImagePath(page.getImageUrl()));
page.setStatus(Page.READY);
return Observable.just(page);
}).onErrorResumeNext(e -> {
page.setStatus(Page.ERROR);
return Observable.just(page);
});
}
public void savePageList(String chapterUrl, List<Page> pages) {
if (pages != null)
mCacheManager.putPageUrlsToDiskCache(chapterUrl, pages);