diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java index 33e7ba490..3ad171f7f 100644 --- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java +++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java @@ -68,14 +68,13 @@ public class NextcloudLoginFlow { private void poll() { pollDisposable = Observable.fromCallable(() -> doRequest(URI.create(endpoint).toURL(), "token=" + token)) - .delay(1, TimeUnit.SECONDS) - .retry(60 * 10) // 10 minutes + .retryWhen(t -> t.delay(1, TimeUnit.SECONDS)) + .timeout(5, TimeUnit.MINUTES) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(result -> { - callback.onNextcloudAuthenticated(result.getString("server"), - result.getString("loginName"), result.getString("appPassword")); - }, Throwable::printStackTrace); + .subscribe(result -> callback.onNextcloudAuthenticated( + result.getString("server"), result.getString("loginName"), result.getString("appPassword")), + error -> callback.onNextcloudAuthError(error.getLocalizedMessage())); } public void cancel() {