From 3cc45dcd8ba50d57c934908df196bc536216fc42 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 13 Dec 2022 12:26:37 +0800 Subject: [PATCH] Fix sniffer crash --- .../fongmi/android/tv/ui/custom/CustomWebView.java | 14 ++++++++++++-- .../java/com/fongmi/android/tv/utils/Utils.java | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) 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 dbac3ea67..33fb7c193 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 @@ -112,7 +112,7 @@ public class CustomWebView extends WebView { for (String key : headers.keySet()) if (keys.contains(key.toLowerCase())) news.put(key, headers.get(key)); App.removeCallbacks(mTimer); App.post(() -> { - if (callback != null) callback.onParseSuccess(news, url, ""); + onSuccess(news, url); stop(false); }); } @@ -121,7 +121,17 @@ public class CustomWebView extends WebView { stopLoading(); loadUrl("about:blank"); App.removeCallbacks(mTimer); - if (error) App.post(() -> callback.onParseError()); + if (error) App.post(this::onError); else callback = null; } + + private void onSuccess(Map news, String url) { + if (callback != null) callback.onParseSuccess(news, url, ""); + callback = null; + } + + private void onError() { + if (callback != null) callback.onParseError(); + callback = null; + } } 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 49f1bd75a..65f96b471 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 @@ -70,7 +70,7 @@ public class Utils { public static boolean isVideoFormat(String url, Map headers) { if (Sniffer.CUSTOM.matcher(url).find()) return true; if (headers.containsKey("Accept") && headers.get("Accept").startsWith("image")) return false; - if (url.contains(".js") || url.contains(".css")) return false; + if (url.contains("url=http") || url.contains(".js") || url.contains(".css")) return false; return Sniffer.RULE.matcher(url).find(); }