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 99b939a9b..34180e8f2 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 @@ -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 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);