Can now download things while on mobile.
The glide url loader now uses its own OkHttpClient. The result is that we can now search for podcasts and download them while on mobile even if the user doesn't allow mobile downloads (NOTE that we don't do anything they haven't asked us to do while on mobile). fixes AntennaPod/AntennaPod#1101
This commit is contained in:
parent
b7ac013b5b
commit
1e1b5ff99b
|
@ -43,7 +43,7 @@ public class ApOkHttpUrlLoader implements ModelLoader<GlideUrl, InputStream> {
|
|||
if (internalClient == null) {
|
||||
synchronized (Factory.class) {
|
||||
if (internalClient == null) {
|
||||
internalClient = AntennapodHttpClient.getHttpClient();
|
||||
internalClient = AntennapodHttpClient.newHttpClient();
|
||||
internalClient.interceptors().add(new NetworkAllowanceInterceptor());
|
||||
internalClient.interceptors().add(new BasicAuthenticationInterceptor());
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package de.danoeh.antennapod.core.service.download;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.util.Log;
|
||||
|
||||
import com.squareup.okhttp.OkHttpClient;
|
||||
|
@ -30,31 +31,42 @@ public class AntennapodHttpClient {
|
|||
public static synchronized OkHttpClient getHttpClient() {
|
||||
if (httpClient == null) {
|
||||
|
||||
if (BuildConfig.DEBUG) Log.d(TAG, "Creating new instance of HTTP client");
|
||||
|
||||
System.setProperty("http.maxConnections", String.valueOf(MAX_CONNECTIONS));
|
||||
|
||||
OkHttpClient client = new OkHttpClient();
|
||||
|
||||
// set cookie handler
|
||||
CookieManager cm = new CookieManager();
|
||||
cm.setCookiePolicy(CookiePolicy.ACCEPT_ORIGINAL_SERVER);
|
||||
client.setCookieHandler(cm);
|
||||
|
||||
// set timeouts
|
||||
client.setConnectTimeout(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS);
|
||||
client.setReadTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS);
|
||||
client.setWriteTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS);
|
||||
|
||||
// configure redirects
|
||||
client.setFollowRedirects(true);
|
||||
client.setFollowSslRedirects(true);
|
||||
|
||||
httpClient = client;
|
||||
httpClient = newHttpClient();
|
||||
}
|
||||
return httpClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new HTTP client. Most users should just use
|
||||
* getHttpClient() to get the standard AntennaPod client,
|
||||
* but sometimes it's necessary for others to have their own
|
||||
* copy so that the clients don't share state.
|
||||
* @return http client
|
||||
*/
|
||||
@NonNull
|
||||
public static OkHttpClient newHttpClient() {
|
||||
Log.d(TAG, "Creating new instance of HTTP client");
|
||||
|
||||
System.setProperty("http.maxConnections", String.valueOf(MAX_CONNECTIONS));
|
||||
|
||||
OkHttpClient client = new OkHttpClient();
|
||||
|
||||
// set cookie handler
|
||||
CookieManager cm = new CookieManager();
|
||||
cm.setCookiePolicy(CookiePolicy.ACCEPT_ORIGINAL_SERVER);
|
||||
client.setCookieHandler(cm);
|
||||
|
||||
// set timeouts
|
||||
client.setConnectTimeout(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS);
|
||||
client.setReadTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS);
|
||||
client.setWriteTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS);
|
||||
|
||||
// configure redirects
|
||||
client.setFollowRedirects(true);
|
||||
client.setFollowSslRedirects(true);
|
||||
return client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes expired connections. This method should be called by the using class once has finished its work with
|
||||
* the HTTP client.
|
||||
|
|
Loading…
Reference in New Issue