summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle1
-rw-r--r--core/build.gradle1
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java20
3 files changed, 17 insertions, 5 deletions
diff --git a/build.gradle b/build.gradle
index 373f47faf..5089286c9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -43,6 +43,7 @@ project.ext {
targetSdkVersion = 26
supportVersion = "26.1.0"
+ awaitilityVersion = "3.1.2"
commonsioVersion = "2.5"
commonslangVersion = "3.6"
commonstextVersion = "1.3"
diff --git a/core/build.gradle b/core/build.gradle
index 4998b3853..0a6d4c36b 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -66,6 +66,7 @@ dependencies {
implementation "com.squareup.okio:okio:$okioVersion"
implementation "de.greenrobot:eventbus:$eventbusVersion"
implementation "io.reactivex:rxandroid:$rxAndroidVersion"
+ implementation "org.awaitility:awaitility:$awaitilityVersion"
implementation "com.google.android.exoplayer:exoplayer:$exoPlayerVersion"
implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java
index 24e0da9ed..afaf13390 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java
@@ -2,20 +2,30 @@ package de.danoeh.antennapod.core.util;
import android.content.Context;
import android.util.Log;
+
+import org.awaitility.core.ConditionTimeoutException;
+
+import java.util.concurrent.TimeUnit;
+
import de.danoeh.antennapod.core.storage.DBTasks;
+import static org.awaitility.Awaitility.with;
+
public class FeedUpdateUtils {
private static final String TAG = "FeedUpdateUtils";
- private FeedUpdateUtils() {
-
- }
+ private FeedUpdateUtils() {}
public static void startAutoUpdate(Context context, Runnable callback) {
- if (NetworkUtils.networkAvailable() && NetworkUtils.isDownloadAllowed()) {
+ try {
+ with().pollInterval(1, TimeUnit.SECONDS)
+ .await()
+ .atMost(10, TimeUnit.SECONDS)
+ .until(() -> NetworkUtils.networkAvailable() && NetworkUtils.isDownloadAllowed());
DBTasks.refreshAllFeeds(context, null, callback);
- } else {
+ } catch (ConditionTimeoutException ignore) {
Log.d(TAG, "Blocking automatic update: no wifi available / no mobile updates allowed");
}
}
+
}