- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
334 lines
14 KiB
Java
334 lines
14 KiB
Java
package com.mbridge.msdk.foundation.webview;
|
|
|
|
import android.content.Context;
|
|
import android.graphics.Bitmap;
|
|
import android.os.Handler;
|
|
import android.text.TextUtils;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.webkit.JsPromptResult;
|
|
import android.webkit.JsResult;
|
|
import android.webkit.RenderProcessGoneDetail;
|
|
import android.webkit.WebChromeClient;
|
|
import android.webkit.WebSettings;
|
|
import android.webkit.WebView;
|
|
import android.webkit.WebViewClient;
|
|
import android.widget.LinearLayout;
|
|
import com.mbridge.msdk.foundation.entity.CampaignEx;
|
|
import com.mbridge.msdk.foundation.tools.ab;
|
|
import com.mbridge.msdk.foundation.tools.af;
|
|
import com.mbridge.msdk.foundation.tools.ak;
|
|
import com.unity3d.services.core.di.ServiceProvider;
|
|
import java.lang.reflect.Method;
|
|
|
|
/* loaded from: classes4.dex */
|
|
public class BrowserView extends LinearLayout {
|
|
private CampaignEx a;
|
|
private String b;
|
|
private a c;
|
|
private WebView d;
|
|
private ProgressBar e;
|
|
private ToolBar f;
|
|
|
|
public interface a {
|
|
void a();
|
|
|
|
void a(WebView webView, int i, String str, String str2);
|
|
|
|
void a(WebView webView, String str);
|
|
|
|
void a(WebView webView, String str, Bitmap bitmap);
|
|
|
|
boolean b(WebView webView, String str);
|
|
|
|
void c(WebView webView, String str);
|
|
}
|
|
|
|
public void setListener(a aVar) {
|
|
this.c = aVar;
|
|
}
|
|
|
|
public void setWebView(WebView webView) {
|
|
this.d = webView;
|
|
}
|
|
|
|
public BrowserView(Context context, CampaignEx campaignEx) {
|
|
super(context);
|
|
this.a = campaignEx;
|
|
init();
|
|
}
|
|
|
|
public void init() {
|
|
setOrientation(1);
|
|
setGravity(17);
|
|
ProgressBar progressBar = new ProgressBar(getContext());
|
|
this.e = progressBar;
|
|
progressBar.setLayoutParams(new LinearLayout.LayoutParams(-1, 4));
|
|
try {
|
|
if (this.d == null) {
|
|
this.d = a();
|
|
}
|
|
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(-1, -1);
|
|
layoutParams.weight = 1.0f;
|
|
this.d.setLayoutParams(layoutParams);
|
|
} catch (Throwable th) {
|
|
af.b("BrowserView", "webview is error", th);
|
|
}
|
|
this.f = new ToolBar(getContext());
|
|
this.f.setLayoutParams(new LinearLayout.LayoutParams(-1, ak.a(getContext(), 40.0f)));
|
|
this.f.setBackgroundColor(-1);
|
|
addView(this.e);
|
|
WebView webView = this.d;
|
|
if (webView != null) {
|
|
addView(webView);
|
|
}
|
|
addView(this.f);
|
|
this.e.initResource(true);
|
|
this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.BACKWARD).setEnabled(false);
|
|
this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.FORWARD).setEnabled(false);
|
|
this.f.setOnItemClickListener(new View.OnClickListener() { // from class: com.mbridge.msdk.foundation.webview.BrowserView.1
|
|
@Override // android.view.View.OnClickListener
|
|
public final void onClick(View view) {
|
|
if (BrowserView.this.d != null) {
|
|
BrowserView.this.d.stopLoading();
|
|
}
|
|
String str = (String) view.getTag();
|
|
boolean z = false;
|
|
if (TextUtils.equals(str, com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.BACKWARD)) {
|
|
BrowserView.this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.FORWARD).setEnabled(true);
|
|
if (BrowserView.this.d != null && BrowserView.this.d.canGoBack()) {
|
|
BrowserView.this.d.goBack();
|
|
}
|
|
View item = BrowserView.this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.BACKWARD);
|
|
if (BrowserView.this.d != null && BrowserView.this.d.canGoBack()) {
|
|
z = true;
|
|
}
|
|
item.setEnabled(z);
|
|
return;
|
|
}
|
|
if (TextUtils.equals(str, com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.FORWARD)) {
|
|
BrowserView.this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.BACKWARD).setEnabled(true);
|
|
if (BrowserView.this.d != null && BrowserView.this.d.canGoForward()) {
|
|
BrowserView.this.d.goForward();
|
|
}
|
|
View item2 = BrowserView.this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.FORWARD);
|
|
if (BrowserView.this.d != null && BrowserView.this.d.canGoForward()) {
|
|
z = true;
|
|
}
|
|
item2.setEnabled(z);
|
|
return;
|
|
}
|
|
if (TextUtils.equals(str, com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.REFRESH)) {
|
|
BrowserView.this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.BACKWARD).setEnabled(BrowserView.this.d != null && BrowserView.this.d.canGoBack());
|
|
View item3 = BrowserView.this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.FORWARD);
|
|
if (BrowserView.this.d != null && BrowserView.this.d.canGoForward()) {
|
|
z = true;
|
|
}
|
|
item3.setEnabled(z);
|
|
if (BrowserView.this.d != null) {
|
|
BrowserView.this.d.loadUrl(BrowserView.this.b);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
if (!TextUtils.equals(str, com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.EXITS) || BrowserView.this.c == null) {
|
|
return;
|
|
}
|
|
BrowserView.this.c.a();
|
|
}
|
|
});
|
|
}
|
|
|
|
private WebView a() {
|
|
WebChromeClient webChromeClient;
|
|
WebView webView = new WebView(getContext());
|
|
try {
|
|
WebSettings settings = webView.getSettings();
|
|
settings.setJavaScriptEnabled(true);
|
|
settings.setAppCacheEnabled(true);
|
|
settings.setAppCacheMaxSize(ServiceProvider.HTTP_CACHE_DISK_SIZE);
|
|
settings.setAllowFileAccess(true);
|
|
settings.setBuiltInZoomControls(true);
|
|
settings.setJavaScriptCanOpenWindowsAutomatically(true);
|
|
settings.setDomStorageEnabled(true);
|
|
settings.setSupportZoom(false);
|
|
settings.setSavePassword(false);
|
|
settings.setDatabaseEnabled(true);
|
|
settings.setUseWideViewPort(true);
|
|
settings.setLoadWithOverviewMode(true);
|
|
settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
|
|
try {
|
|
settings.setSafeBrowsingEnabled(false);
|
|
} catch (Throwable th) {
|
|
af.b("BrowserView", th.getMessage());
|
|
}
|
|
settings.setMediaPlaybackRequiresUserGesture(false);
|
|
settings.setAllowFileAccessFromFileURLs(false);
|
|
settings.setAllowUniversalAccessFromFileURLs(false);
|
|
try {
|
|
settings.setMixedContentMode(0);
|
|
} catch (Exception e) {
|
|
af.b("BrowserView", e.getMessage());
|
|
}
|
|
settings.setDatabaseEnabled(true);
|
|
String path = getContext().getDir("database", 0).getPath();
|
|
settings.setDatabasePath(path);
|
|
settings.setGeolocationEnabled(true);
|
|
settings.setGeolocationDatabasePath(path);
|
|
try {
|
|
Method declaredMethod = WebSettings.class.getDeclaredMethod("setDisplayZoomControls", Boolean.TYPE);
|
|
declaredMethod.setAccessible(true);
|
|
declaredMethod.invoke(settings, Boolean.FALSE);
|
|
} catch (Exception e2) {
|
|
af.b("BrowserView", e2.getMessage());
|
|
}
|
|
} catch (Throwable th2) {
|
|
af.b("BrowserView", th2.getMessage());
|
|
}
|
|
webView.setDownloadListener(new com.mbridge.msdk.foundation.same.g.a(this.a));
|
|
webView.setWebViewClient(new WebViewClient() { // from class: com.mbridge.msdk.foundation.webview.BrowserView.2
|
|
@Override // android.webkit.WebViewClient
|
|
public final boolean shouldOverrideUrlLoading(WebView webView2, String str) {
|
|
af.c("BrowserView", "js大跳! = " + str);
|
|
BrowserView.this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.BACKWARD).setEnabled(true);
|
|
BrowserView.this.f.getItem(com.mbridge.msdk.mbsignalcommon.commonwebview.ToolBar.FORWARD).setEnabled(false);
|
|
if (BrowserView.this.c != null) {
|
|
return BrowserView.this.c.b(webView2, str);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override // android.webkit.WebViewClient
|
|
public final void onPageStarted(WebView webView2, String str, Bitmap bitmap) {
|
|
af.c("BrowserView", "开始! = " + str);
|
|
BrowserView.this.b = str;
|
|
if (BrowserView.this.c != null) {
|
|
BrowserView.this.c.a(webView2, str, bitmap);
|
|
}
|
|
BrowserView.this.e.setVisible(true);
|
|
BrowserView.this.e.setProgressState(5);
|
|
}
|
|
|
|
@Override // android.webkit.WebViewClient
|
|
public final void onPageFinished(WebView webView2, String str) {
|
|
if (BrowserView.this.c != null) {
|
|
BrowserView.this.c.c(webView2, str);
|
|
}
|
|
}
|
|
|
|
@Override // android.webkit.WebViewClient
|
|
public final void onLoadResource(WebView webView2, String str) {
|
|
super.onLoadResource(webView2, str);
|
|
af.c("BrowserView", "onLoadResource 开始! = " + str);
|
|
if (BrowserView.this.c != null) {
|
|
BrowserView.this.c.a(webView2, str);
|
|
}
|
|
}
|
|
|
|
@Override // android.webkit.WebViewClient
|
|
public final void onReceivedError(WebView webView2, int i, String str, String str2) {
|
|
if (BrowserView.this.c != null) {
|
|
BrowserView.this.c.a(webView2, i, str, str2);
|
|
}
|
|
}
|
|
|
|
@Override // android.webkit.WebViewClient
|
|
public final boolean onRenderProcessGone(WebView webView2, RenderProcessGoneDetail renderProcessGoneDetail) {
|
|
if (webView2 != null) {
|
|
try {
|
|
ViewGroup viewGroup = (ViewGroup) webView2.getParent();
|
|
if (viewGroup != null) {
|
|
viewGroup.removeView(webView2);
|
|
}
|
|
webView2.destroy();
|
|
} catch (Throwable th3) {
|
|
af.b("BrowserView", th3.getMessage());
|
|
return true;
|
|
}
|
|
}
|
|
if (BrowserView.this.c != null) {
|
|
BrowserView.this.c.a();
|
|
}
|
|
return true;
|
|
}
|
|
});
|
|
if (ab.s() <= 10) {
|
|
webChromeClient = new WebChromeClient() { // from class: com.mbridge.msdk.foundation.webview.BrowserView.3
|
|
@Override // android.webkit.WebChromeClient
|
|
public final boolean onJsAlert(WebView webView2, String str, String str2, JsResult jsResult) {
|
|
return true;
|
|
}
|
|
|
|
@Override // android.webkit.WebChromeClient
|
|
public final boolean onJsConfirm(WebView webView2, String str, String str2, JsResult jsResult) {
|
|
return true;
|
|
}
|
|
|
|
@Override // android.webkit.WebChromeClient
|
|
public final boolean onJsPrompt(WebView webView2, String str, String str2, String str3, JsPromptResult jsPromptResult) {
|
|
return true;
|
|
}
|
|
|
|
@Override // android.webkit.WebChromeClient
|
|
public final void onProgressChanged(WebView webView2, int i) {
|
|
if (i == 100) {
|
|
BrowserView.this.e.setProgressState(7);
|
|
new Handler().postDelayed(new Runnable() { // from class: com.mbridge.msdk.foundation.webview.BrowserView.3.1
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
BrowserView.this.e.setVisible(false);
|
|
}
|
|
}, 200L);
|
|
}
|
|
}
|
|
};
|
|
} else {
|
|
webChromeClient = new WebChromeClient() { // from class: com.mbridge.msdk.foundation.webview.BrowserView.4
|
|
@Override // android.webkit.WebChromeClient
|
|
public final void onProgressChanged(WebView webView2, int i) {
|
|
if (i == 100) {
|
|
BrowserView.this.e.setProgressState(7);
|
|
new Handler().postDelayed(new Runnable() { // from class: com.mbridge.msdk.foundation.webview.BrowserView.4.1
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
BrowserView.this.e.setVisible(false);
|
|
}
|
|
}, 200L);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
webView.setWebChromeClient(webChromeClient);
|
|
return webView;
|
|
}
|
|
|
|
public BrowserView(Context context) {
|
|
super(context);
|
|
init();
|
|
}
|
|
|
|
public BrowserView(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
init();
|
|
}
|
|
|
|
public void destroy() {
|
|
WebView webView = this.d;
|
|
if (webView != null) {
|
|
webView.stopLoading();
|
|
this.d.setWebViewClient(null);
|
|
this.d.destroy();
|
|
this.d = null;
|
|
removeAllViews();
|
|
}
|
|
}
|
|
|
|
public void loadUrl(String str) {
|
|
WebView webView = this.d;
|
|
if (webView != null) {
|
|
webView.loadUrl(str);
|
|
}
|
|
}
|
|
}
|