Retry calls
This commit is contained in:
parent
68e5efb02b
commit
3561392d24
3 changed files with 20 additions and 15 deletions
|
@ -30,7 +30,7 @@ public final class NetworkHelper {
|
|||
}
|
||||
|
||||
public Observable<Response> getResponse(final String url, final Headers headers, final CacheControl cacheControl) {
|
||||
return Observable.create(subscriber -> {
|
||||
return Observable.<Response>create(subscriber -> {
|
||||
try {
|
||||
if (!subscriber.isUnsubscribed()) {
|
||||
Request request = new Request.Builder()
|
||||
|
@ -44,7 +44,7 @@ public final class NetworkHelper {
|
|||
} catch (Throwable e) {
|
||||
subscriber.onError(e);
|
||||
}
|
||||
});
|
||||
}).retry(3);
|
||||
}
|
||||
|
||||
public Observable<String> mapResponseToString(final Response response) {
|
||||
|
|
|
@ -23,6 +23,7 @@ import icepick.State;
|
|||
import rx.Observable;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.schedulers.Schedulers;
|
||||
import timber.log.Timber;
|
||||
|
||||
public class ReaderPresenter extends BasePresenter<ReaderActivity> {
|
||||
|
||||
|
@ -45,9 +46,9 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> {
|
|||
() -> getPageListObservable()
|
||||
.doOnNext(pages -> pageList = pages)
|
||||
.doOnCompleted(() -> start(GET_PAGE_IMAGES)),
|
||||
(view, pages) -> {
|
||||
view.onPageListReady(pages);
|
||||
});
|
||||
(view, pages) -> view.onPageListReady(pages),
|
||||
(view, error) -> Timber.e("An error occurred while downloading page list")
|
||||
);
|
||||
|
||||
restartableReplay(GET_PAGE_IMAGES,
|
||||
this::getPageImagesObservable,
|
||||
|
@ -56,7 +57,8 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> {
|
|||
if (page.getPageNumber() == savedSelectedPage) {
|
||||
view.setCurrentPage(savedSelectedPage);
|
||||
}
|
||||
});
|
||||
},
|
||||
(view, error) -> Timber.e("An error occurred while downloading an image"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -110,15 +112,17 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> {
|
|||
}
|
||||
|
||||
private Observable<Page> downloadImage(Page page) {
|
||||
FutureTarget<File> future = glideDownloader.load(page.getImageUrl())
|
||||
.downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
|
||||
if (page.getImageUrl() != null) {
|
||||
FutureTarget<File> future = glideDownloader.load(page.getImageUrl())
|
||||
.downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
|
||||
|
||||
try {
|
||||
File cacheFile = future.get();
|
||||
page.setImagePath(cacheFile.getCanonicalPath());
|
||||
page.setStatus(Page.READY);
|
||||
} catch (Exception e) {
|
||||
page.setStatus(Page.ERROR);
|
||||
try {
|
||||
File cacheFile = future.get();
|
||||
page.setImagePath(cacheFile.getCanonicalPath());
|
||||
page.setStatus(Page.READY);
|
||||
} catch (Exception e) {
|
||||
page.setStatus(Page.ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
return Observable.just(page);
|
||||
|
|
|
@ -103,7 +103,8 @@ public abstract class Source extends BaseSource {
|
|||
}
|
||||
|
||||
public void savePageList(String chapterUrl, List<Page> pages) {
|
||||
mCacheManager.putPageUrlsToDiskCache(chapterUrl, pages);
|
||||
if (pages != null)
|
||||
mCacheManager.putPageUrlsToDiskCache(chapterUrl, pages);
|
||||
}
|
||||
|
||||
private List<Page> convertToPages(List<String> pageUrls) {
|
||||
|
|
Reference in a new issue