diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Parse.java b/app/src/main/java/com/fongmi/android/tv/bean/Parse.java index 7ff1e2604..e124cc262 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Parse.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Parse.java @@ -46,9 +46,9 @@ public class Parse { public static Parse get(Integer type, String url, JsonElement header) { Parse parse = new Parse(); + parse.setHeader(header); parse.setType(type); parse.setUrl(url); - parse.getExt().setHeader(header); return parse; } @@ -92,6 +92,10 @@ public class Parse { this.activated = item.equals(this); } + private void setHeader(JsonElement header) { + getExt().setHeader(header); + } + public Map getHeaders() { return Json.toMap(getExt().getHeader()); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java b/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java index 5122b4621..8a05e18c9 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java @@ -48,11 +48,10 @@ public class ParseTask { } private void setParse(Result result, boolean useParse) { - String url = result.getPlayUrl(); if (useParse) parse = ApiConfig.get().getParse(); - else if (url.startsWith("json:")) parse = Parse.get(1, url.substring(5)); - else if (url.startsWith("parse:")) parse = ApiConfig.get().getParse(url.substring(6)); - if (parse == null) parse = Parse.get(0, url, result.getHeader()); + else if (result.getPlayUrl().startsWith("json:")) parse = Parse.get(1, result.getPlayUrl().substring(5)); + else if (result.getPlayUrl().startsWith("parse:")) parse = ApiConfig.get().getParse(result.getPlayUrl().substring(6)); + if (parse == null) parse = Parse.get(0, result.getPlayUrl(), result.getHeader()); } private void doInBackground(String webUrl, String flag) { 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 652b681a4..070b742df 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 @@ -55,9 +55,19 @@ public class CustomWebView extends WebView { setWebViewClient(webViewClient()); } + private void setUserAgent(Map headers) { + for (String key : headers.keySet()) { + if (key.equalsIgnoreCase("user-agent")) { + getSettings().setUserAgentString(headers.get(key)); + break; + } + } + } + public void start(String url, Map headers, ParseTask.Callback callback) { this.callback = callback; - loadUrl(url, headers); + setUserAgent(headers); + loadUrl(url); retry = 0; } @@ -80,11 +90,6 @@ public class CustomWebView extends WebView { public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); } - - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { - return false; - } }; }