pull/380/head
okjack 2 years ago
parent 7c98546a35
commit 13a53cdcb5
  1. 30
      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<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);

Loading…
Cancel
Save