NetMirror.apk
Download file
package com.reactnativecommunity.webview;
import android.graphics.Bitmap;
import android.net.http.SslError;
import android.os.Build;
import android.os.SystemClock;
import android.util.Log;
import android.webkit.CookieManager;
import android.webkit.HttpAuthHandler;
import android.webkit.RenderProcessGoneDetail;
import android.webkit.SslErrorHandler;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.H0;
import com.reactnativecommunity.webview.f;
import com.reactnativecommunity.webview.o;
import java.util.concurrent.atomic.AtomicReference;
import l2.C0593b;
import l2.C0594c;
/* JADX INFO: loaded from: classes.dex */
public class i extends WebViewClient {
/* JADX INFO: renamed from: e, reason: collision with root package name */
private static String f8510e = "RNCWebViewClient";
/* JADX INFO: renamed from: a, reason: collision with root package name */
protected boolean f8511a = false;
/* JADX INFO: renamed from: b, reason: collision with root package name */
protected f.d f8512b = null;
/* JADX INFO: renamed from: c, reason: collision with root package name */
protected String f8513c = null;
/* JADX INFO: renamed from: d, reason: collision with root package name */
protected a f8514d = null;
protected WritableMap a(WebView webView, String str) {
WritableMap writableMapCreateMap = Arguments.createMap();
writableMapCreateMap.putDouble("target", r.a(webView));
writableMapCreateMap.putString("url", str);
writableMapCreateMap.putBoolean("loading", (this.f8511a || webView.getProgress() == 100) ? false : true);
writableMapCreateMap.putString("title", webView.getTitle());
writableMapCreateMap.putBoolean("canGoBack", webView.canGoBack());
writableMapCreateMap.putBoolean("canGoForward", webView.canGoForward());
return writableMapCreateMap;
}
protected void b(WebView webView, String str) {
int iA = r.a(webView);
H0.c((ReactContext) webView.getContext(), iA).b(new l2.d(iA, a(webView, str)));
}
public void c(a aVar) {
this.f8514d = aVar;
}
public void d(String str) {
this.f8513c = str;
}
@Override // android.webkit.WebViewClient
public void doUpdateVisitedHistory(WebView webView, String str, boolean z3) {
super.doUpdateVisitedHistory(webView, str, z3);
((f) webView).g(webView, new l2.f(r.a(webView), a(webView, str)));
}
public void e(f.d dVar) {
this.f8512b = dVar;
}
@Override // android.webkit.WebViewClient
public void onPageFinished(WebView webView, String str) {
super.onPageFinished(webView, str);
if (CookieManager.getInstance().getCookie(str) != null) {
CookieManager.getInstance().flush();
}
if (this.f8511a) {
return;
}
((f) webView).a();
b(webView, str);
}
@Override // android.webkit.WebViewClient
public void onPageStarted(WebView webView, String str, Bitmap bitmap) {
super.onPageStarted(webView, str, bitmap);
this.f8511a = false;
((f) webView).b();
}
@Override // android.webkit.WebViewClient
public void onReceivedError(WebView webView, int i3, String str, String str2) {
String str3 = this.f8513c;
if (str3 != null && str2.equals(str3) && i3 == -1 && str.equals("net::ERR_FAILED")) {
d(null);
return;
}
super.onReceivedError(webView, i3, str, str2);
this.f8511a = true;
b(webView, str2);
WritableMap writableMapA = a(webView, str2);
writableMapA.putDouble("code", i3);
writableMapA.putString("description", str);
int iA = r.a(webView);
H0.c((ReactContext) webView.getContext(), iA).b(new C0594c(iA, writableMapA));
}
@Override // android.webkit.WebViewClient
public void onReceivedHttpAuthRequest(WebView webView, HttpAuthHandler httpAuthHandler, String str, String str2) {
a aVar = this.f8514d;
if (aVar != null) {
httpAuthHandler.proceed(aVar.f8456a, aVar.f8457b);
} else {
super.onReceivedHttpAuthRequest(webView, httpAuthHandler, str, str2);
}
}
@Override // android.webkit.WebViewClient
public void onReceivedHttpError(WebView webView, WebResourceRequest webResourceRequest, WebResourceResponse webResourceResponse) {
super.onReceivedHttpError(webView, webResourceRequest, webResourceResponse);
if (webResourceRequest.isForMainFrame()) {
WritableMap writableMapA = a(webView, webResourceRequest.getUrl().toString());
writableMapA.putInt("statusCode", webResourceResponse.getStatusCode());
writableMapA.putString("description", webResourceResponse.getReasonPhrase());
int iA = r.a(webView);
H0.c((ReactContext) webView.getContext(), iA).b(new C0593b(iA, writableMapA));
}
}
@Override // android.webkit.WebViewClient
public void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) {
String url = webView.getUrl();
String url2 = sslError.getUrl();
sslErrorHandler.cancel();
if (!url.equalsIgnoreCase(url2)) {
Log.w(f8510e, "Resource blocked from loading due to SSL error. Blocked URL: " + url2);
return;
}
int primaryError = sslError.getPrimaryError();
onReceivedError(webView, primaryError, "SSL error: " + (primaryError != 0 ? primaryError != 1 ? primaryError != 2 ? primaryError != 3 ? primaryError != 4 ? primaryError != 5 ? "Unknown SSL Error" : "A generic error occurred" : "The date of the certificate is invalid" : "The certificate authority is not trusted" : "Hostname mismatch" : "The certificate has expired" : "The certificate is not yet valid"), url2);
}
@Override // android.webkit.WebViewClient
public boolean onRenderProcessGone(WebView webView, RenderProcessGoneDetail renderProcessGoneDetail) {
if (Build.VERSION.SDK_INT < 26) {
return false;
}
super.onRenderProcessGone(webView, renderProcessGoneDetail);
if (renderProcessGoneDetail.didCrash()) {
Log.e(f8510e, "The WebView rendering process crashed.");
} else {
Log.w(f8510e, "The WebView rendering process was killed by the system.");
}
if (webView == null) {
return true;
}
WritableMap writableMapA = a(webView, webView.getUrl());
writableMapA.putBoolean("didCrash", renderProcessGoneDetail.didCrash());
int iA = r.a(webView);
H0.c((ReactContext) webView.getContext(), iA).b(new l2.i(iA, writableMapA));
return true;
}
@Override // android.webkit.WebViewClient
public boolean shouldOverrideUrlLoading(WebView webView, String str) {
f fVar = (f) webView;
if (fVar.getReactApplicationContext().getJavaScriptContextHolder().get() == 0 || fVar.f8483j == null) {
Y.a.I(f8510e, "Couldn't use blocking synchronous call for onShouldStartLoadWithRequest due to debugging or missing Catalyst instance, falling back to old event-and-load.");
this.f8512b.b(true);
int iA = r.a(webView);
H0.c((ReactContext) webView.getContext(), iA).b(new l2.j(iA, a(webView, str)));
return true;
}
q.d dVarB = o.f8549h.b();
Double d4 = (Double) dVarB.f10331a;
double dDoubleValue = d4.doubleValue();
AtomicReference atomicReference = (AtomicReference) dVarB.f10332b;
WritableMap writableMapA = a(webView, str);
writableMapA.putDouble("lockIdentifier", dDoubleValue);
fVar.f(writableMapA);
try {
synchronized (atomicReference) {
try {
long jElapsedRealtime = SystemClock.elapsedRealtime();
while (atomicReference.get() == o.d.a.UNDECIDED) {
if (SystemClock.elapsedRealtime() - jElapsedRealtime > 250) {
Y.a.I(f8510e, "Did not receive response to shouldOverrideUrlLoading in time, defaulting to allow loading.");
o.f8549h.c(d4);
return false;
}
atomicReference.wait(250L);
}
boolean z3 = atomicReference.get() == o.d.a.SHOULD_OVERRIDE;
o.f8549h.c(d4);
return z3;
} catch (Throwable th) {
throw th;
}
}
} catch (InterruptedException e4) {
Y.a.n(f8510e, "shouldOverrideUrlLoading was interrupted while waiting for result.", e4);
o.f8549h.c(d4);
return false;
}
}
@Override // android.webkit.WebViewClient
public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest webResourceRequest) {
return shouldOverrideUrlLoading(webView, webResourceRequest.getUrl().toString());
}
}
⚠️ This content was hidden by an advertisement filtering extension in your browser. Please disable it and reload the page to access the decompiled content.
We only display one small text ad to keep this service free. Here's what it looks like:
Read the Docs for Business: You write the docs. We do the rest.
Try it today!Ad by EthicalAds
Download file