diff --git a/app/src/main/java/com/fongmi/android/tv/impl/NewPipeImpl.java b/app/src/main/java/com/fongmi/android/tv/impl/NewPipeImpl.java index 0179fe87f..14a65cc26 100644 --- a/app/src/main/java/com/fongmi/android/tv/impl/NewPipeImpl.java +++ b/app/src/main/java/com/fongmi/android/tv/impl/NewPipeImpl.java @@ -38,7 +38,7 @@ public class NewPipeImpl extends Downloader { builder.header(headerName, headerValueList.get(0)); } } - okhttp3.Response response = OkHttp.clientProxy().newCall(builder.build()).execute(); + okhttp3.Response response = OkHttp.proxy().newCall(builder.build()).execute(); if (response.code() == 429) { response.close(); throw new ReCaptchaException("reCaptcha Challenge requested", url); diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 4bc1d9824..532dcf97a 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -172,7 +172,7 @@ public class ExoUtil { } private static synchronized HttpDataSource.Factory getHttpDataSourceFactory(boolean proxy) { - if (httpDataSourceFactory == null) httpDataSourceFactory = Setting.getHttp() == 0 ? new DefaultHttpDataSource.Factory().setAllowCrossProtocolRedirects(true).setProxy(proxy ? Setting.getProxy() : null) : new OkHttpDataSource.Factory((Call.Factory) (proxy ? OkHttp.clientProxy() : OkHttp.client())); + if (httpDataSourceFactory == null) httpDataSourceFactory = Setting.getHttp() == 0 ? new DefaultHttpDataSource.Factory().setAllowCrossProtocolRedirects(true).setProxy(proxy ? Setting.getProxy() : null) : new OkHttpDataSource.Factory((Call.Factory) (proxy ? OkHttp.proxy() : OkHttp.client())); return httpDataSourceFactory; } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/OkHttpGlideModule.java b/app/src/main/java/com/fongmi/android/tv/utils/OkHttpGlideModule.java index 9c2c48124..5f578dcf6 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/OkHttpGlideModule.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/OkHttpGlideModule.java @@ -22,6 +22,6 @@ public class OkHttpGlideModule extends AppGlideModule { @Override public void registerComponents(@NonNull Context context, @Nullable Glide glide, Registry registry) { - registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory((Call.Factory) OkHttp.client())); + registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory((Call.Factory) OkHttp.proxy())); } } \ No newline at end of file diff --git a/catvod/src/main/java/com/github/catvod/net/OkHttp.java b/catvod/src/main/java/com/github/catvod/net/OkHttp.java index b572706c5..96e42c2d6 100644 --- a/catvod/src/main/java/com/github/catvod/net/OkHttp.java +++ b/catvod/src/main/java/com/github/catvod/net/OkHttp.java @@ -36,8 +36,8 @@ public class OkHttp { private static final int CACHE = 100 * 1024 * 1024; private DnsOverHttps dns; + private OkHttpClient proxy; private OkHttpClient client; - private OkHttpClient clientProxy; private static class Loader { static volatile OkHttp INSTANCE = new OkHttp(); @@ -54,13 +54,13 @@ public class OkHttp { public void setDoh(Doh doh) { OkHttpClient dohClient = new OkHttpClient.Builder().cache(new Cache(Path.doh(), CACHE)).hostnameVerifier(SSLCompat.VERIFIER).sslSocketFactory(new SSLCompat(), SSLCompat.TM).build(); dns = doh.getUrl().isEmpty() ? null : new DnsOverHttps.Builder().client(dohClient).url(HttpUrl.get(doh.getUrl())).bootstrapDnsHosts(doh.getHosts()).build(); - clientProxy = null; client = null; + proxy = null; } public void resetProxy() { Authenticator.setDefault(null); - clientProxy = null; + proxy = null; } public static OkHttpClient client() { @@ -69,8 +69,8 @@ public class OkHttp { } public static OkHttpClient proxy() { - if (get().clientProxy != null) return get().clientProxy; - return get().clientProxy = getBuilder(Uri.parse(Prefers.getString("proxy"))).build(); + if (get().proxy != null) return get().proxy; + return get().proxy = getBuilder(Prefers.getString("proxy")).build(); } public static OkHttpClient client(int timeout) { @@ -140,7 +140,8 @@ public class OkHttp { return new OkHttpClient.Builder().addInterceptor(new DeflateInterceptor()).connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS).readTimeout(TIMEOUT, TimeUnit.MILLISECONDS).writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS).dns(dns()).hostnameVerifier(SSLCompat.VERIFIER).sslSocketFactory(new SSLCompat(), SSLCompat.TM); } - private static OkHttpClient.Builder getBuilder(Uri uri) { + private static OkHttpClient.Builder getBuilder(String proxy) { + Uri uri = Uri.parse(proxy); String userInfo = uri.getUserInfo(); OkHttpClient.Builder builder = client().newBuilder(); if (userInfo != null && userInfo.contains(":")) setAuthenticator(builder, userInfo);