When auto refreshing feeds, give network some time to get available
This commit is contained in:
parent
5a4219bf09
commit
3e6fc34550
@ -66,6 +66,7 @@ dependencies {
|
|||||||
implementation "com.squareup.okio:okio:$okioVersion"
|
implementation "com.squareup.okio:okio:$okioVersion"
|
||||||
implementation "de.greenrobot:eventbus:$eventbusVersion"
|
implementation "de.greenrobot:eventbus:$eventbusVersion"
|
||||||
implementation "io.reactivex:rxandroid:$rxAndroidVersion"
|
implementation "io.reactivex:rxandroid:$rxAndroidVersion"
|
||||||
|
implementation 'org.awaitility:awaitility:3.1.2'
|
||||||
|
|
||||||
implementation "com.google.android.exoplayer:exoplayer:$exoPlayerVersion"
|
implementation "com.google.android.exoplayer:exoplayer:$exoPlayerVersion"
|
||||||
implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
|
implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
|
||||||
|
@ -2,20 +2,31 @@ package de.danoeh.antennapod.core.util;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import org.awaitility.core.ConditionTimeoutException;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import de.danoeh.antennapod.core.storage.DBTasks;
|
import de.danoeh.antennapod.core.storage.DBTasks;
|
||||||
|
|
||||||
|
import static org.awaitility.Awaitility.await;
|
||||||
|
import static org.awaitility.Awaitility.with;
|
||||||
|
|
||||||
public class FeedUpdateUtils {
|
public class FeedUpdateUtils {
|
||||||
private static final String TAG = "FeedUpdateUtils";
|
private static final String TAG = "FeedUpdateUtils";
|
||||||
|
|
||||||
private FeedUpdateUtils() {
|
private FeedUpdateUtils() {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void startAutoUpdate(Context context, Runnable callback) {
|
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);
|
DBTasks.refreshAllFeeds(context, null, callback);
|
||||||
} else {
|
} catch (ConditionTimeoutException ignore) {
|
||||||
Log.d(TAG, "Blocking automatic update: no wifi available / no mobile updates allowed");
|
Log.d(TAG, "Blocking automatic update: no wifi available / no mobile updates allowed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user