|
|
|
|
@ -4,12 +4,14 @@ import android.annotation.SuppressLint; |
|
|
|
|
import android.app.AlertDialog; |
|
|
|
|
import android.content.Context; |
|
|
|
|
import android.graphics.Bitmap; |
|
|
|
|
import android.graphics.BitmapFactory; |
|
|
|
|
import android.net.Uri; |
|
|
|
|
import android.net.http.SslError; |
|
|
|
|
import android.text.TextUtils; |
|
|
|
|
import android.view.ViewGroup; |
|
|
|
|
import android.webkit.CookieManager; |
|
|
|
|
import android.webkit.SslErrorHandler; |
|
|
|
|
import android.webkit.WebChromeClient; |
|
|
|
|
import android.webkit.WebResourceRequest; |
|
|
|
|
import android.webkit.WebResourceResponse; |
|
|
|
|
import android.webkit.WebSettings; |
|
|
|
|
@ -20,6 +22,7 @@ import androidx.annotation.NonNull; |
|
|
|
|
|
|
|
|
|
import com.fongmi.android.tv.App; |
|
|
|
|
import com.fongmi.android.tv.Constant; |
|
|
|
|
import com.fongmi.android.tv.R; |
|
|
|
|
import com.fongmi.android.tv.Setting; |
|
|
|
|
import com.fongmi.android.tv.api.config.VodConfig; |
|
|
|
|
import com.fongmi.android.tv.bean.Site; |
|
|
|
|
@ -75,11 +78,7 @@ public class CustomWebView extends WebView { |
|
|
|
|
getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); |
|
|
|
|
CookieManager.getInstance().setAcceptThirdPartyCookies(this, true); |
|
|
|
|
setWebViewClient(webViewClient()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void addView() { |
|
|
|
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(1, 1); |
|
|
|
|
if (App.activity() != null) App.activity().addContentView(this, params); |
|
|
|
|
setWebChromeClient(webChromeClient()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public CustomWebView start(String key, String from, Map<String, String> headers, String url, String click, ParseCallback callback, boolean detect) { |
|
|
|
|
@ -89,7 +88,6 @@ public class CustomWebView extends WebView { |
|
|
|
|
this.click = click; |
|
|
|
|
this.from = from; |
|
|
|
|
this.key = key; |
|
|
|
|
addView(); |
|
|
|
|
start(url, headers); |
|
|
|
|
return this; |
|
|
|
|
} |
|
|
|
|
@ -146,9 +144,22 @@ public class CustomWebView extends WebView { |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private WebChromeClient webChromeClient() { |
|
|
|
|
return new WebChromeClient() { |
|
|
|
|
@Override |
|
|
|
|
public Bitmap getDefaultVideoPoster() { |
|
|
|
|
try{ |
|
|
|
|
return BitmapFactory.decodeResource(App.get().getResources(), R.drawable.ic_logo); |
|
|
|
|
} catch (Throwable e){ |
|
|
|
|
return super.getDefaultVideoPoster(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void showDialog() { |
|
|
|
|
if (dialog != null || App.activity() == null) return; |
|
|
|
|
removeView(); |
|
|
|
|
if (getParent() != null) ((ViewGroup) getParent()).removeView(this); |
|
|
|
|
dialog = new AlertDialog.Builder(App.activity()).setView(this).show(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -206,13 +217,8 @@ public class CustomWebView extends WebView { |
|
|
|
|
callback = null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void removeView() { |
|
|
|
|
if (getParent() != null) ((ViewGroup) getParent()).removeView(this); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void stop(boolean error) { |
|
|
|
|
hideDialog(); |
|
|
|
|
removeView(); |
|
|
|
|
stopLoading(); |
|
|
|
|
loadUrl(BLANK); |
|
|
|
|
App.removeCallbacks(timer); |
|
|
|
|
|