Respect the mobile download settings

This commit is contained in:
Martin Fietz 2015-08-02 17:51:33 +02:00
parent 2bc1183e45
commit 4165d848d8

View File

@ -21,18 +21,20 @@ import java.net.HttpURLConnection;
import de.danoeh.antennapod.core.ClientConfig; import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.service.download.HttpDownloader; import de.danoeh.antennapod.core.service.download.HttpDownloader;
import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.util.NetworkUtils;
/** /**
* @see com.bumptech.glide.integration.okhttp.OkHttpUrlLoader * @see com.bumptech.glide.integration.okhttp.OkHttpUrlLoader
*/ */
public class ApOkHttpUrlLoader implements ModelLoader<GlideUrl, InputStream> { public class ApOkHttpUrlLoader implements ModelLoader<GlideUrl, InputStream> {
private static final String TAG = "ApOkHttpUrlLoader"; private static final String TAG = ApOkHttpUrlLoader.class.getSimpleName();
/** /**
* The default factory for {@link ApOkHttpUrlLoader}s. * The default factory for {@link ApOkHttpUrlLoader}s.
*/ */
public static class Factory implements ModelLoaderFactory<GlideUrl, InputStream> { public static class Factory implements ModelLoaderFactory<GlideUrl, InputStream> {
private static volatile OkHttpClient internalClient; private static volatile OkHttpClient internalClient;
private OkHttpClient client; private OkHttpClient client;
@ -41,6 +43,7 @@ public class ApOkHttpUrlLoader implements ModelLoader<GlideUrl, InputStream> {
synchronized (Factory.class) { synchronized (Factory.class) {
if (internalClient == null) { if (internalClient == null) {
internalClient = new OkHttpClient(); internalClient = new OkHttpClient();
internalClient.interceptors().add(new NetworkAllowanceInterceptor());
internalClient.interceptors().add(new BasicAuthenticationInterceptor()); internalClient.interceptors().add(new BasicAuthenticationInterceptor());
} }
} }
@ -84,6 +87,19 @@ public class ApOkHttpUrlLoader implements ModelLoader<GlideUrl, InputStream> {
return new OkHttpStreamFetcher(client, model); return new OkHttpStreamFetcher(client, model);
} }
private static class NetworkAllowanceInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
if (NetworkUtils.isDownloadAllowed()) {
return chain.proceed(chain.request());
} else {
return null;
}
}
}
private static class BasicAuthenticationInterceptor implements Interceptor { private static class BasicAuthenticationInterceptor implements Interceptor {
@Override @Override