Files
rr3-apk/decompiled-community/sources/com/mbridge/msdk/foundation/webview/BrowserView.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- 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
2026-02-18 15:48:36 -08:00

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);
}
}
}