From 6bcfd72eb75d653101d7cb73caa97aee1bf72fed Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Sep 2022 13:56:13 +0800 Subject: [PATCH] Update gradle and clean code --- app/build.gradle | 6 +++--- .../main/java/com/fongmi/android/tv/net/OKHttp.java | 2 +- .../android/tv/net/SSLSocketFactoryCompat.java | 4 ++-- .../fongmi/android/tv/ui/custom/CustomWebView.java | 2 +- .../main/java/com/fongmi/android/tv/utils/Utils.java | 12 ++++++++++-- build.gradle | 4 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- 7 files changed, 20 insertions(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bf1ed09a2..aa7970d1a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,13 +3,13 @@ plugins { } android { - compileSdk 32 + compileSdk 33 flavorDimensions "default" defaultConfig { applicationId "com.fongmi.android.tv" minSdk 21 - targetSdk 32 + targetSdk 33 versionCode 29 versionName "1.2.9" resValue "string", "url", "" @@ -55,7 +55,7 @@ dependencies { implementation project(':exoplayer-library') implementation project(':exoplayer-extension-rtmp') implementation project(':exoplayer-extension-ffmpeg') - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.core:core-splashscreen:1.0.0' implementation 'androidx.preference:preference:1.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' diff --git a/app/src/main/java/com/fongmi/android/tv/net/OKHttp.java b/app/src/main/java/com/fongmi/android/tv/net/OKHttp.java index e28cbaf5c..10aa230a7 100644 --- a/app/src/main/java/com/fongmi/android/tv/net/OKHttp.java +++ b/app/src/main/java/com/fongmi/android/tv/net/OKHttp.java @@ -29,7 +29,7 @@ public class OKHttp { } private OkHttpClient.Builder getBuilder() { - return new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).writeTimeout(5, TimeUnit.SECONDS).connectTimeout(5, TimeUnit.SECONDS).sslSocketFactory(new SSLSocketFactoryCompat(SSLSocketFactoryCompat.trustAllCert), SSLSocketFactoryCompat.trustAllCert); + return new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).writeTimeout(5, TimeUnit.SECONDS).connectTimeout(5, TimeUnit.SECONDS).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert); } private OkHttpClient client() { diff --git a/app/src/main/java/com/fongmi/android/tv/net/SSLSocketFactoryCompat.java b/app/src/main/java/com/fongmi/android/tv/net/SSLSocketFactoryCompat.java index 2597d1c5d..9d9cb1962 100644 --- a/app/src/main/java/com/fongmi/android/tv/net/SSLSocketFactoryCompat.java +++ b/app/src/main/java/com/fongmi/android/tv/net/SSLSocketFactoryCompat.java @@ -50,10 +50,10 @@ public class SSLSocketFactoryCompat extends SSLSocketFactory { private final SSLSocketFactory defaultFactory; - public SSLSocketFactoryCompat(X509TrustManager tm) { + public SSLSocketFactoryCompat() { try { SSLContext sslContext = SSLContext.getInstance("TLS"); - sslContext.init(null, (tm != null) ? new X509TrustManager[]{tm} : null, null); + sslContext.init(null, new X509TrustManager[]{SSLSocketFactoryCompat.trustAllCert}, null); defaultFactory = sslContext.getSocketFactory(); HttpsURLConnection.setDefaultSSLSocketFactory(defaultFactory); } catch (GeneralSecurityException e) { diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java index 2c458143e..a0e9dc984 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java @@ -73,7 +73,7 @@ public class CustomWebView extends WebView { handler.removeCallbacks(mTimer); handler.postDelayed(mTimer, 15 * 1000); Map headers = request.getRequestHeaders(); - if (Utils.isVideoFormat(url) || headers.containsKey("Range")) post(headers, url); + if (Utils.isVideoFormat(url, headers)) post(headers, url); return super.shouldInterceptRequest(view, request); } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java index 19df93a70..cb5761d7d 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java @@ -10,6 +10,9 @@ import android.view.inputmethod.InputMethodManager; import com.fongmi.android.tv.App; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; import java.util.regex.Pattern; public class Utils { @@ -46,8 +49,13 @@ public class Utils { } public static boolean isVideoFormat(String url) { - if (url.contains("=http") || url.contains("=https") || url.contains("=https%3a%2f") || url.contains("=http%3a%2f")) return false; - if (url.contains("cdn-tos") || url.contains(".js") || url.contains(".css") || url.contains(".ico")) return false; + return isVideoFormat(url, new HashMap<>()); + } + + public static boolean isVideoFormat(String url, Map headers) { + if (headers.containsKey("Range")) return true; + if (headers.containsKey("Accept") && Objects.requireNonNull(headers.get("Accept")).contains("image")) return false; + if (url.contains("=http") || url.contains("=https") || url.contains("=https%3a%2f") || url.contains("=http%3a%2f") || url.contains(".js") || url.contains(".css")) return false; return SNIFFER.matcher(url).find(); } diff --git a/build.gradle b/build.gradle index fc41f5b5a..d1c27aaea 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'com.android.application' version '7.2.1' apply false - id 'com.android.library' version '7.2.1' apply false + id 'com.android.application' version '7.3.0' apply false + id 'com.android.library' version '7.3.0' apply false } task clean(type: Delete) { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c1c7f196a..6445e6923 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Wed Jun 22 16:19:43 CST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME