正在查看: Vi App v10.18.0 应用的 RNCWebViewManagerImpl.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Vi App v10.18.0 应用的 RNCWebViewManagerImpl.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.reactnativecommunity.webview;
import android.app.Activity;
import android.app.DownloadManager;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.DownloadListener;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.webkit.WebSettingsCompat;
import androidx.webkit.WebViewFeature;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.ReadableMapKeySetIterator;
import com.facebook.react.common.MapBuilder;
import com.facebook.react.uimanager.ThemedReactContext;
import com.paytmpayments.customuisdk.common.Constants.SDKConstants;
import com.rollbar.notifier.sender.SyncSender;
import com.squareup.picasso.Utils;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.Charsets;
import kotlin.text.StringsKt;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.json.JSONException;
import org.json.JSONObject;
public final class RNCWebViewManagerImpl {
@NotNull
public static final Companion Companion = new Companion(null);
private boolean mAllowsFullscreenVideo;
private boolean mAllowsProtectedMedia;
@Nullable
private String mDownloadingMessage;
private boolean mHasOnOpenWindowEvent;
@Nullable
private String mLackPermissionToDownloadMessage;
@Nullable
private String mUserAgent;
@Nullable
private String mUserAgentWithApplicationName;
@NotNull
private final String TAG = "RNCWebViewManagerImpl";
@NotNull
private RNCWebViewConfig mWebViewConfig = new RNCWebViewConfig() {
@Override
public final void configWebView(WebView webView) {
RNCWebViewManagerImpl.mWebViewConfig$lambda$0(webView);
}
};
@NotNull
private final String HTML_ENCODING = SyncSender.UTF_8;
@NotNull
private final String HTML_MIME_TYPE = "text/html";
@NotNull
private final String HTTP_METHOD_POST = "POST";
@NotNull
private final String BLANK_URL = "about:blank";
@NotNull
private final String DEFAULT_DOWNLOADING_MESSAGE = "Downloading";
@NotNull
private final String DEFAULT_LACK_PERMISSION_TO_DOWNLOAD_MESSAGE = "Cannot download files as permission was denied. Please provide permission to write to storage, in order to download files.";
private final int COMMAND_GO_BACK = 1;
private final int COMMAND_GO_FORWARD = 2;
private final int COMMAND_RELOAD = 3;
private final int COMMAND_STOP_LOADING = 4;
private final int COMMAND_POST_MESSAGE = 5;
private final int COMMAND_INJECT_JAVASCRIPT = 6;
private final int COMMAND_LOAD_URL = 7;
private final int COMMAND_FOCUS = 8;
private final int COMMAND_CLEAR_FORM_DATA = Utils.THREAD_LEAK_CLEANING_MS;
private final int COMMAND_CLEAR_CACHE = 1001;
private final int COMMAND_CLEAR_HISTORY = 1002;
public static final class Companion {
private Companion() {
}
public Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
}
public static final void createViewInstance$lambda$1(RNCWebView rNCWebView, RNCWebViewManagerImpl rNCWebViewManagerImpl, String str, String str2, String str3, String str4, long j) {
Intrinsics.checkNotNullParameter(rNCWebView, "$webView");
Intrinsics.checkNotNullParameter(rNCWebViewManagerImpl, "this$0");
rNCWebView.setIgnoreErrFailedForThisURL(str);
RNCWebViewModule nativeModule = rNCWebView.getReactApplicationContext().getNativeModule(RNCWebViewModule.class);
if (nativeModule == null) {
return;
}
try {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(str));
String guessFileName = URLUtil.guessFileName(str, str3, str4);
Intrinsics.checkNotNull(guessFileName);
String replace = RNCWebViewManagerImplKt.getInvalidCharRegex().replace(guessFileName, "_");
String str5 = "Downloading " + replace;
try {
URL url = new URL(str);
request.addRequestHeader("Cookie", CookieManager.getInstance().getCookie(url.getProtocol() + "://" + url.getHost()));
} catch (MalformedURLException unused) {
String str6 = rNCWebViewManagerImpl.TAG;
}
request.addRequestHeader("User-Agent", str2);
request.setTitle(replace);
request.setDescription(str5);
request.allowScanningByMediaScanner();
request.setNotificationVisibility(1);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, replace);
nativeModule.setDownloadRequest(request);
if (nativeModule.grantFileDownloaderPermissions(rNCWebViewManagerImpl.getDownloadingMessageOrDefault(), rNCWebViewManagerImpl.getLackPermissionToDownloadMessageOrDefault())) {
nativeModule.downloadFile(rNCWebViewManagerImpl.getDownloadingMessageOrDefault());
}
} catch (IllegalArgumentException unused2) {
String str7 = rNCWebViewManagerImpl.TAG;
}
}
private final String getDownloadingMessageOrDefault() {
String str = this.mDownloadingMessage;
return str == null ? this.DEFAULT_DOWNLOADING_MESSAGE : str;
}
private final String getLackPermissionToDownloadMessageOrDefault() {
String str = this.mLackPermissionToDownloadMessage;
return str == null ? this.DEFAULT_LACK_PERMISSION_TO_DOWNLOAD_MESSAGE : str;
}
public static final void mWebViewConfig$lambda$0(WebView webView) {
}
private final void setUserAgentString(RNCWebViewWrapper rNCWebViewWrapper) {
RNCWebView webView = rNCWebViewWrapper.getWebView();
if (this.mUserAgent != null) {
webView.getSettings().setUserAgentString(this.mUserAgent);
} else if (this.mUserAgentWithApplicationName != null) {
webView.getSettings().setUserAgentString(this.mUserAgentWithApplicationName);
} else {
webView.getSettings().setUserAgentString(WebSettings.getDefaultUserAgent(webView.getContext()));
}
}
private final void setupWebChromeClient(final RNCWebView rNCWebView) {
final Activity currentActivity = rNCWebView.getThemedReactContext().getCurrentActivity();
if (this.mAllowsFullscreenVideo && currentActivity != null) {
final int requestedOrientation = currentActivity.getRequestedOrientation();
RNCWebChromeClient rNCWebChromeClient = new RNCWebChromeClient(rNCWebView) {
@Override
@Nullable
public Bitmap getDefaultVideoPoster() {
return Bitmap.createBitmap(50, 50, Bitmap.Config.ARGB_8888);
}
@Override
public void onHideCustomView() {
if (this.mVideoView == null) {
return;
}
ViewGroup rootView = getRootView();
if (rootView.getRootView() != this.mWebView.getRootView()) {
this.mWebView.getRootView().setVisibility(0);
} else {
this.mWebView.setVisibility(0);
}
currentActivity.getWindow().clearFlags(512);
rootView.removeView(this.mVideoView);
this.mCustomViewCallback.onCustomViewHidden();
this.mVideoView = null;
this.mCustomViewCallback = null;
currentActivity.setRequestedOrientation(requestedOrientation);
this.mWebView.getThemedReactContext().removeLifecycleEventListener(this);
}
@Override
public void onShowCustomView(@NotNull View view, @NotNull WebChromeClient.CustomViewCallback customViewCallback) {
Intrinsics.checkNotNullParameter(view, "view");
Intrinsics.checkNotNullParameter(customViewCallback, "callback");
if (this.mVideoView != null) {
customViewCallback.onCustomViewHidden();
return;
}
this.mVideoView = view;
this.mCustomViewCallback = customViewCallback;
currentActivity.setRequestedOrientation(-1);
this.mVideoView.setSystemUiVisibility(7942);
currentActivity.getWindow().setFlags(512, 512);
this.mVideoView.setBackgroundColor(-16777216);
ViewGroup rootView = getRootView();
rootView.addView(this.mVideoView, RNCWebChromeClient.FULLSCREEN_LAYOUT_PARAMS);
if (rootView.getRootView() != this.mWebView.getRootView()) {
this.mWebView.getRootView().setVisibility(8);
} else {
this.mWebView.setVisibility(8);
}
this.mWebView.getThemedReactContext().addLifecycleEventListener(this);
}
};
rNCWebChromeClient.setAllowsProtectedMedia(this.mAllowsProtectedMedia);
rNCWebChromeClient.setHasOnOpenWindowEvent(this.mHasOnOpenWindowEvent);
rNCWebView.setWebChromeClient(rNCWebChromeClient);
return;
}
RNCWebChromeClient rNCWebChromeClient2 = (RNCWebChromeClient) rNCWebView.getWebChromeClient();
if (rNCWebChromeClient2 != null) {
rNCWebChromeClient2.onHideCustomView();
}
RNCWebChromeClient rNCWebChromeClient3 = new RNCWebChromeClient(rNCWebView) {
@Override
@Nullable
public Bitmap getDefaultVideoPoster() {
return Bitmap.createBitmap(50, 50, Bitmap.Config.ARGB_8888);
}
};
rNCWebChromeClient3.setAllowsProtectedMedia(this.mAllowsProtectedMedia);
rNCWebChromeClient3.setHasOnOpenWindowEvent(this.mHasOnOpenWindowEvent);
rNCWebView.setWebChromeClient(rNCWebChromeClient3);
}
@NotNull
public final RNCWebView createRNCWebViewInstance(@NotNull ThemedReactContext themedReactContext) {
Intrinsics.checkNotNullParameter(themedReactContext, "context");
return new RNCWebView(themedReactContext);
}
@NotNull
public final RNCWebViewWrapper createViewInstance(@NotNull ThemedReactContext themedReactContext) {
Intrinsics.checkNotNullParameter(themedReactContext, "context");
return createViewInstance(themedReactContext, createRNCWebViewInstance(themedReactContext));
}
@Nullable
public final Map<String, Integer> getCommandsMap() {
return MapBuilder.builder().put("goBack", Integer.valueOf(this.COMMAND_GO_BACK)).put("goForward", Integer.valueOf(this.COMMAND_GO_FORWARD)).put("reload", Integer.valueOf(this.COMMAND_RELOAD)).put("stopLoading", Integer.valueOf(this.COMMAND_STOP_LOADING)).put("postMessage", Integer.valueOf(this.COMMAND_POST_MESSAGE)).put("injectJavaScript", Integer.valueOf(this.COMMAND_INJECT_JAVASCRIPT)).put("loadUrl", Integer.valueOf(this.COMMAND_LOAD_URL)).put("requestFocus", Integer.valueOf(this.COMMAND_FOCUS)).put("clearFormData", Integer.valueOf(this.COMMAND_CLEAR_FORM_DATA)).put("clearCache", Integer.valueOf(this.COMMAND_CLEAR_CACHE)).put("clearHistory", Integer.valueOf(this.COMMAND_CLEAR_HISTORY)).build();
}
public final void onDropViewInstance(@NotNull RNCWebViewWrapper rNCWebViewWrapper) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
webView.getThemedReactContext().removeLifecycleEventListener(webView);
webView.cleanupCallbacksAndDestroy();
webView.mWebChromeClient = null;
}
public final void receiveCommand(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @NotNull String str, @NotNull ReadableArray readableArray) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
Intrinsics.checkNotNullParameter(str, "commandId");
Intrinsics.checkNotNullParameter(readableArray, "args");
RNCWebView webView = rNCWebViewWrapper.getWebView();
switch (str.hashCode()) {
case -1241591313:
if (str.equals("goBack")) {
webView.goBack();
return;
}
return;
case -948122918:
if (str.equals("stopLoading")) {
webView.stopLoading();
return;
}
return;
case -934641255:
if (str.equals("reload")) {
webView.reload();
return;
}
return;
case -759238347:
if (str.equals("clearCache")) {
webView.clearCache(readableArray.getBoolean(0));
return;
}
return;
case -318289731:
if (str.equals("goForward")) {
webView.goForward();
return;
}
return;
case -265032709:
if (str.equals("clearFormData")) {
webView.clearFormData();
return;
}
return;
case 336631465:
if (str.equals("loadUrl")) {
webView.progressChangedFilter.setWaitingForCommandLoadUrl(false);
webView.loadUrl(readableArray.getString(0));
return;
}
return;
case 903120263:
if (str.equals("clearHistory")) {
webView.clearHistory();
return;
}
return;
case 1280029577:
if (str.equals("requestFocus")) {
webView.requestFocus();
return;
}
return;
case 1490029383:
if (str.equals("postMessage")) {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put(SDKConstants.DATA, readableArray.getString(0));
webView.evaluateJavascriptWithFallback("(function () {var event;var data = " + jSONObject + ";try {event = new MessageEvent('message', data);} catch (e) {event = document.createEvent('MessageEvent');event.initMessageEvent('message', true, true, data.data, data.origin, data.lastEventId, data.source);}document.dispatchEvent(event);})();");
return;
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
return;
case 2104576510:
if (str.equals("injectJavaScript")) {
webView.evaluateJavascriptWithFallback(readableArray.getString(0));
return;
}
return;
default:
return;
}
}
public final void setAllowFileAccess(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setAllowFileAccess(z);
}
public final void setAllowFileAccessFromFileURLs(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setAllowFileAccessFromFileURLs(z);
}
public final void setAllowUniversalAccessFromFileURLs(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setAllowUniversalAccessFromFileURLs(z);
}
public final void setAllowsFullscreenVideo(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
this.mAllowsFullscreenVideo = z;
setupWebChromeClient(webView);
}
public final void setAllowsProtectedMedia(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
WebChromeClient webChromeClient;
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
this.mAllowsProtectedMedia = z;
if (Build.VERSION.SDK_INT < 26 || (webChromeClient = webView.getWebChromeClient()) == null || !(webChromeClient instanceof RNCWebChromeClient)) {
return;
}
((RNCWebChromeClient) webChromeClient).setAllowsProtectedMedia(z);
}
public final void setAndroidLayerType(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().setLayerType(Intrinsics.areEqual(str, "hardware") ? 2 : Intrinsics.areEqual(str, "software") ? 1 : 0, null);
}
public final void setApplicationNameForUserAgent(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
if (str != null) {
this.mUserAgentWithApplicationName = WebSettings.getDefaultUserAgent(rNCWebViewWrapper.getWebView().getContext()) + ' ' + str;
} else {
this.mUserAgentWithApplicationName = null;
}
setUserAgentString(rNCWebViewWrapper);
}
public final void setBasicAuthCredential(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable ReadableMap readableMap) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().setBasicAuthCredential((readableMap != null && readableMap.hasKey("username") && readableMap.hasKey("password")) ? new RNCBasicAuthCredential(readableMap.getString("username"), readableMap.getString("password")) : null);
}
public final void setCacheEnabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setCacheMode(z ? -1 : 2);
}
public final void setCacheMode(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
WebSettings settings = rNCWebViewWrapper.getWebView().getSettings();
int i = -1;
if (str != null) {
switch (str.hashCode()) {
case -2059164003:
if (str.equals("LOAD_NO_CACHE")) {
i = 2;
break;
}
break;
case -1215135800:
str.equals("LOAD_DEFAULT");
break;
case -873877826:
if (str.equals("LOAD_CACHE_ELSE_NETWORK")) {
i = 1;
break;
}
break;
case 1548620642:
if (str.equals("LOAD_CACHE_ONLY")) {
i = 3;
break;
}
break;
}
}
settings.setCacheMode(i);
}
public final void setDomStorageEnabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setDomStorageEnabled(z);
}
public final void setDownloadingMessage(@Nullable String str) {
this.mDownloadingMessage = str;
}
public final void setForceDarkOn(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
if (Build.VERSION.SDK_INT > 28) {
if (WebViewFeature.isFeatureSupported("FORCE_DARK")) {
WebSettingsCompat.setForceDark(webView.getSettings(), z ? 2 : 0);
}
if (z && WebViewFeature.isFeatureSupported("FORCE_DARK_STRATEGY")) {
WebSettingsCompat.setForceDarkStrategy(webView.getSettings(), 2);
}
}
}
public final void setGeolocationEnabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setGeolocationEnabled(z);
}
public final void setHasOnOpenWindowEvent(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
this.mHasOnOpenWindowEvent = z;
setupWebChromeClient(webView);
}
public final void setHasOnScroll(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().setHasScrollEvent(z);
}
public final void setIncognito(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
if (z) {
CookieManager.getInstance().removeAllCookies(null);
webView.getSettings().setCacheMode(2);
webView.clearHistory();
webView.clearCache(true);
webView.clearFormData();
webView.getSettings().setSavePassword(false);
webView.getSettings().setSaveFormData(false);
}
}
public final void setInjectedJavaScript(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().injectedJS = str;
}
public final void setInjectedJavaScriptBeforeContentLoaded(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().injectedJSBeforeContentLoaded = str;
}
public final void setInjectedJavaScriptBeforeContentLoadedForMainFrameOnly(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().injectedJavaScriptBeforeContentLoadedForMainFrameOnly = z;
}
public final void setInjectedJavaScriptForMainFrameOnly(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().injectedJavaScriptForMainFrameOnly = z;
}
public final void setInjectedJavaScriptObject(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().setInjectedJavaScriptObject(str);
}
public final void setJavaScriptCanOpenWindowsAutomatically(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setJavaScriptCanOpenWindowsAutomatically(z);
}
public final void setJavaScriptEnabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setJavaScriptEnabled(z);
}
public final void setLackPermissionToDownloadMessage(@Nullable String str) {
this.mLackPermissionToDownloadMessage = str;
}
public final void setMediaPlaybackRequiresUserAction(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setMediaPlaybackRequiresUserGesture(z);
}
public final void setMenuCustomItems(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable ReadableArray readableArray) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
if (readableArray == null) {
webView.setMenuCustomItems(null);
return;
}
ArrayList arrayList = readableArray.toArrayList();
Intrinsics.checkNotNull(arrayList, "null cannot be cast to non-null type kotlin.collections.List<kotlin.collections.Map<kotlin.String, kotlin.String>>");
webView.setMenuCustomItems(arrayList);
}
public final void setMessagingEnabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().setMessagingEnabled(z);
}
public final void setMessagingModuleName(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().messagingModuleName = str;
}
public final void setMinimumFontSize(@NotNull RNCWebViewWrapper rNCWebViewWrapper, int i) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setMinimumFontSize(i);
}
public final void setMixedContentMode(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
if (str == null || Intrinsics.areEqual("never", str)) {
webView.getSettings().setMixedContentMode(1);
} else if (Intrinsics.areEqual("always", str)) {
webView.getSettings().setMixedContentMode(0);
} else if (Intrinsics.areEqual("compatibility", str)) {
webView.getSettings().setMixedContentMode(2);
}
}
public final void setNestedScrollEnabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().nestedScrollEnabled = z;
}
public final void setOverScrollMode(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
int i = 0;
if (str != null) {
int hashCode = str.hashCode();
if (hashCode == -1414557169) {
str.equals("always");
} else if (hashCode != 104712844) {
if (hashCode == 951530617 && str.equals("content")) {
i = 1;
}
} else if (str.equals("never")) {
i = 2;
}
}
webView.setOverScrollMode(i);
}
public final void setSaveFormDataDisabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setSaveFormData(!z);
}
public final void setScalesPageToFit(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
webView.getSettings().setLoadWithOverviewMode(z);
webView.getSettings().setUseWideViewPort(z);
}
public final void setSetBuiltInZoomControls(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setBuiltInZoomControls(z);
}
public final void setSetDisplayZoomControls(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setDisplayZoomControls(z);
}
public final void setSetSupportMultipleWindows(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setSupportMultipleWindows(z);
}
public final void setShowsHorizontalScrollIndicator(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().setHorizontalScrollBarEnabled(z);
}
public final void setShowsVerticalScrollIndicator(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().setVerticalScrollBarEnabled(z);
}
public final void setSource(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable ReadableMap readableMap, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
RNCWebView webView = rNCWebViewWrapper.getWebView();
if (readableMap != null) {
if (readableMap.hasKey("html")) {
String string = readableMap.getString("html");
String string2 = readableMap.hasKey("baseUrl") ? readableMap.getString("baseUrl") : "";
Intrinsics.checkNotNull(string);
webView.loadDataWithBaseURL(string2, string, this.HTML_MIME_TYPE, this.HTML_ENCODING, null);
return;
}
if (readableMap.hasKey("uri")) {
String string3 = readableMap.getString("uri");
String url = webView.getUrl();
if (url == null || !Intrinsics.areEqual(url, string3)) {
if (readableMap.hasKey("method") && StringsKt.equals(readableMap.getString("method"), this.HTTP_METHOD_POST, true)) {
byte[] bArr = null;
if (readableMap.hasKey("body")) {
String string4 = readableMap.getString("body");
try {
Intrinsics.checkNotNull(string4);
Charset forName = Charset.forName(SyncSender.UTF_8);
Intrinsics.checkNotNullExpressionValue(forName, "forName(charsetName)");
bArr = string4.getBytes(forName);
Intrinsics.checkNotNullExpressionValue(bArr, "this as java.lang.String).getBytes(charset)");
} catch (UnsupportedEncodingException unused) {
Intrinsics.checkNotNull(string4);
byte[] bytes = string4.getBytes(Charsets.UTF_8);
Intrinsics.checkNotNullExpressionValue(bytes, "this as java.lang.String).getBytes(charset)");
bArr = bytes;
}
}
if (bArr == null) {
bArr = new byte[0];
}
Intrinsics.checkNotNull(string3);
webView.postUrl(string3, bArr);
return;
}
HashMap hashMap = new HashMap();
if (readableMap.hasKey("headers")) {
if (z) {
ReadableArray array = readableMap.getArray("headers");
Intrinsics.checkNotNull(array);
Iterator it = array.toArrayList().iterator();
while (it.hasNext()) {
Object next = it.next();
Intrinsics.checkNotNull(next, "null cannot be cast to non-null type java.util.HashMap<kotlin.String, kotlin.String>{ kotlin.collections.TypeAliasesKt.HashMap<kotlin.String, kotlin.String> }");
HashMap hashMap2 = (HashMap) next;
String str = (String) hashMap2.get("name");
if (str == null) {
str = "";
}
String str2 = (String) hashMap2.get("value");
if (str2 == null) {
str2 = "";
}
Locale locale = Locale.ENGLISH;
Intrinsics.checkNotNullExpressionValue(locale, "ENGLISH");
String lowerCase = str.toLowerCase(locale);
Intrinsics.checkNotNullExpressionValue(lowerCase, "this as java.lang.String).toLowerCase(locale)");
if (Intrinsics.areEqual("user-agent", lowerCase)) {
webView.getSettings().setUserAgentString(str2);
} else {
hashMap.put(str, str2);
}
}
} else {
ReadableMap map = readableMap.getMap("headers");
Intrinsics.checkNotNull(map);
ReadableMapKeySetIterator keySetIterator = map.keySetIterator();
Intrinsics.checkNotNullExpressionValue(keySetIterator, "keySetIterator(...)");
while (keySetIterator.hasNextKey()) {
String nextKey = keySetIterator.nextKey();
Intrinsics.checkNotNull(nextKey);
Locale locale2 = Locale.ENGLISH;
Intrinsics.checkNotNullExpressionValue(locale2, "ENGLISH");
String lowerCase2 = nextKey.toLowerCase(locale2);
Intrinsics.checkNotNullExpressionValue(lowerCase2, "this as java.lang.String).toLowerCase(locale)");
if (Intrinsics.areEqual("user-agent", lowerCase2)) {
webView.getSettings().setUserAgentString(map.getString(nextKey));
} else {
hashMap.put(nextKey, map.getString(nextKey));
}
}
}
}
Intrinsics.checkNotNull(string3);
webView.loadUrl(string3, hashMap);
return;
}
return;
}
}
webView.loadUrl(this.BLANK_URL);
}
public final void setTextZoom(@NotNull RNCWebViewWrapper rNCWebViewWrapper, int i) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
rNCWebViewWrapper.getWebView().getSettings().setTextZoom(i);
}
public final void setThirdPartyCookiesEnabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
CookieManager.getInstance().setAcceptThirdPartyCookies(rNCWebViewWrapper.getWebView(), z);
}
public final void setUserAgent(@NotNull RNCWebViewWrapper rNCWebViewWrapper, @Nullable String str) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
this.mUserAgent = str;
setUserAgentString(rNCWebViewWrapper);
}
public final void setWebviewDebuggingEnabled(@NotNull RNCWebViewWrapper rNCWebViewWrapper, boolean z) {
Intrinsics.checkNotNullParameter(rNCWebViewWrapper, "viewWrapper");
WebView.setWebContentsDebuggingEnabled(z);
}
@NotNull
public final RNCWebViewWrapper createViewInstance(@NotNull ThemedReactContext themedReactContext, @NotNull final RNCWebView rNCWebView) {
Intrinsics.checkNotNullParameter(themedReactContext, "context");
Intrinsics.checkNotNullParameter(rNCWebView, "webView");
setupWebChromeClient(rNCWebView);
themedReactContext.addLifecycleEventListener(rNCWebView);
this.mWebViewConfig.configWebView(rNCWebView);
WebSettings settings = rNCWebView.getSettings();
Intrinsics.checkNotNullExpressionValue(settings, "getSettings(...)");
settings.setBuiltInZoomControls(true);
settings.setDisplayZoomControls(false);
settings.setDomStorageEnabled(true);
settings.setSupportMultipleWindows(true);
settings.setAllowFileAccess(false);
settings.setAllowContentAccess(false);
settings.setAllowFileAccessFromFileURLs(false);
settings.setAllowUniversalAccessFromFileURLs(false);
settings.setMixedContentMode(1);
rNCWebView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
rNCWebView.setDownloadListener(new DownloadListener() {
@Override
public final void onDownloadStart(String str, String str2, String str3, String str4, long j) {
RNCWebViewManagerImpl.createViewInstance$lambda$1(RNCWebView.this, this, str, str2, str3, str4, j);
}
});
return new RNCWebViewWrapper(themedReactContext, rNCWebView);
}
}