导航菜单

页面标题

页面副标题

Vi App v10.18.0 - VIOnMobileWebView.java 源代码

正在查看: Vi App v10.18.0 应用的 VIOnMobileWebView.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.mventus.selfcare.activity.viweb;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.DownloadManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.webkit.CookieManager;
import android.webkit.DownloadListener;
import android.webkit.URLUtil;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.clevertap.android.sdk.CleverTapAPI;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.h5.H5AdsWebViewClient;
import com.mventus.selfcare.activity.R;
import com.onmobile.rbtsdkui.analytics.AnalyticsConstants;
import com.onmobile.rbtsdkui.analytics.KibanaUtilConstants;
import com.viapps.elk.KibanaUtility;
import com.viapps.viappwebview.NetworkUtil;
import kotlin.Deprecated;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
import kotlin.text.StringsKt;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.json.JSONObject;

@SourceDebugExtension({"SMAP\nVIOnMobileWebView.kt\nKotlin\n*S Kotlin\n*F\n+ 1 VIOnMobileWebView.kt\ncom/mventus/selfcare/activity/viweb/VIOnMobileWebView\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,405:1\n1#2:406\n*E\n"})
public final class VIOnMobileWebView extends AppCompatActivity {

    @NotNull
    public static final Companion Companion = new Companion(null);

    @Nullable
    private View errorView;

    @Nullable
    private String googleAdID;
    private boolean isWebViewDestroyed;

    @Nullable
    private ValueCallback<Uri[]> uploadMessage;

    @Nullable
    private String url;

    @Nullable
    private ProgressBar viProgressbar;

    @Nullable
    private WebView viWebView;

    public static final class Companion {
        private Companion() {
        }

        public Companion(DefaultConstructorMarker defaultConstructorMarker) {
            this();
        }
    }

    public final void handleBackPressed() {
        WebView webView = this.viWebView;
        if (TextUtils.equals(webView != null ? webView.getUrl() : null, "https://games.myvi.in/cavil/home")) {
            finish();
            return;
        }
        WebView webView2 = this.viWebView;
        Intrinsics.checkNotNull(webView2);
        if (webView2.isFocused()) {
            WebView webView3 = this.viWebView;
            Intrinsics.checkNotNull(webView3);
            if (webView3.canGoBack()) {
                WebView webView4 = this.viWebView;
                Intrinsics.checkNotNull(webView4);
                webView4.goBack();
                return;
            }
        }
        super/*androidx.activity.ComponentActivity*/.onBackPressed();
        finish();
    }

    private final JSONObject modifyJsonObject(String str, String str2) {
        JSONObject jSONObject;
        JSONObject jSONObject2;
        if (str != null) {
            try {
                jSONObject = new JSONObject(str);
            } catch (Exception unused) {
                return null;
            }
        } else {
            jSONObject = null;
        }
        if (jSONObject != null && (jSONObject2 = jSONObject.getJSONObject("NativeMap")) != null) {
            jSONObject2.put(KibanaUtilConstants.MSISDN, str2);
        }
        return jSONObject;
    }

    public static final void onCreate$lambda$0(VIOnMobileWebView vIOnMobileWebView, String str, String str2, String str3, String str4, long j) {
        Intrinsics.checkNotNullParameter(vIOnMobileWebView, "this$0");
        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(str));
        request.setMimeType(str4);
        request.addRequestHeader("cookie", CookieManager.getInstance().getCookie(str));
        request.addRequestHeader("User-Agent", str2);
        request.setDescription("Downloading File...");
        request.setTitle(URLUtil.guessFileName(str, str3, str4));
        request.allowScanningByMediaScanner();
        request.setNotificationVisibility(1);
        request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(str, str3, str4));
        Object systemService = vIOnMobileWebView.getSystemService("download");
        Intrinsics.checkNotNull(systemService, "null cannot be cast to non-null type android.app.DownloadManager");
        ((DownloadManager) systemService).enqueue(request);
        Toast.makeText(vIOnMobileWebView.getApplicationContext(), "Downloading File", 1).show();
    }

    @SuppressLint({"LogNotTimber"})
    private final void safelyDestroyWebView(final WebView webView) {
        if (this.isWebViewDestroyed) {
            return;
        }
        if (webView != null) {
            webView.loadUrl("about:blank");
        }
        ViewParent parent = webView != null ? webView.getParent() : null;
        ViewGroup viewGroup = parent instanceof ViewGroup ? (ViewGroup) parent : null;
        if (viewGroup != null) {
            viewGroup.removeView(webView);
        }
        new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
            @Override
            public final void run() {
                VIOnMobileWebView.safelyDestroyWebView$lambda$4(webView, this);
            }
        }, 300L);
    }

    public static final void safelyDestroyWebView$lambda$4(WebView webView, VIOnMobileWebView vIOnMobileWebView) {
        Intrinsics.checkNotNullParameter(vIOnMobileWebView, "this$0");
        if (webView != null) {
            try {
                webView.removeAllViews();
            } catch (Exception unused) {
                return;
            }
        }
        if (webView != null) {
            webView.clearHistory();
        }
        if (webView != null) {
            webView.clearCache(true);
        }
        if (webView != null) {
            webView.destroy();
        }
        vIOnMobileWebView.isWebViewDestroyed = true;
    }

    @Nullable
    public final ValueCallback<Uri[]> getUploadMessage() {
        return this.uploadMessage;
    }

    @Nullable
    public final ProgressBar getViProgressbar() {
        return this.viProgressbar;
    }

    @Nullable
    public final WebView getViWebView() {
        return this.viWebView;
    }

    @Deprecated(message = "Deprecated in Java")
    public void onActivityResult(int i, int i2, @Nullable Intent intent) {
        ValueCallback<Uri[]> valueCallback;
        super/*androidx.fragment.app.FragmentActivity*/.onActivityResult(i, i2, intent);
        if (i != 101 || (valueCallback = this.uploadMessage) == null) {
            return;
        }
        Intrinsics.checkNotNull(valueCallback);
        valueCallback.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(i2, intent));
        this.uploadMessage = null;
    }

    @Deprecated(message = "Deprecated in Java")
    @SuppressLint({"MissingSuperCall"})
    public void onBackPressed() {
        handleBackPressed();
    }

    @SuppressLint({"SetJavaScriptEnabled", "LogNotTimber"})
    public void onCreate(@Nullable Bundle bundle) {
        String str;
        WebView webView;
        super/*androidx.fragment.app.FragmentActivity*/.onCreate(bundle);
        requestWindowFeature(1);
        getWindow().setFlags(1024, 1024);
        setContentView(R.layout.activity_vi_onmobile_webview);
        View findViewById = findViewById(R.id.vi_native_webView);
        Intrinsics.checkNotNull(findViewById, "null cannot be cast to non-null type android.webkit.WebView");
        this.viWebView = (WebView) findViewById;
        this.errorView = findViewById(R.id.errorView);
        NetworkUtil networkUtil = new NetworkUtil(this);
        WebView webView2 = this.viWebView;
        Intrinsics.checkNotNull(webView2);
        View view = this.errorView;
        Intrinsics.checkNotNull(view);
        networkUtil.checkNetworkAndShowError(this, webView2, view);
        if (checkSelfPermission("android.permission.WRITE_EXTERNAL_STORAGE") == -1) {
            requestPermissions(new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 1);
        }
        View findViewById2 = findViewById(R.id.vi_native_progressBar);
        Intrinsics.checkNotNull(findViewById2, "null cannot be cast to non-null type android.widget.ProgressBar");
        this.viProgressbar = (ProgressBar) findViewById2;
        this.url = getIntent().getStringExtra("url");
        this.googleAdID = getIntent().getStringExtra("googleAdID");
        WebView webView3 = this.viWebView;
        WebSettings settings = webView3 != null ? webView3.getSettings() : null;
        CookieManager.getInstance().setAcceptThirdPartyCookies(this.viWebView, true);
        if (settings != null) {
            settings.setMediaPlaybackRequiresUserGesture(false);
        }
        if (settings != null) {
            settings.setDomStorageEnabled(true);
        }
        if (settings != null) {
            settings.setCacheMode(1);
        }
        if (settings != null) {
            settings.setLoadWithOverviewMode(true);
        }
        if (settings != null) {
            settings.setUseWideViewPort(true);
        }
        if (settings != null) {
            settings.setAllowFileAccessFromFileURLs(true);
        }
        if (settings != null) {
            settings.setAllowUniversalAccessFromFileURLs(true);
        }
        if (settings != null) {
            settings.setJavaScriptEnabled(true);
        }
        String str2 = this.googleAdID;
        if (str2 != "" && str2 != null && (webView = this.viWebView) != null) {
            webView.evaluateJavascript("window.google_ad_id = " + this.googleAdID + ';', null);
        }
        WebView webView4 = this.viWebView;
        Intrinsics.checkNotNull(webView4);
        WebViewClient h5AdsWebViewClient = new H5AdsWebViewClient(this, webView4);
        WebView webView5 = this.viWebView;
        Intrinsics.checkNotNull(webView5);
        webView5.setWebViewClient(h5AdsWebViewClient);
        h5AdsWebViewClient.setDelegateWebViewClient(new WebViewClient());
        WebView webView6 = this.viWebView;
        Intrinsics.checkNotNull(webView6);
        MobileAds.registerWebView(webView6);
        WebView webView7 = this.viWebView;
        if (webView7 != null) {
            webView7.setInitialScale(1);
        }
        WebView webView8 = this.viWebView;
        if (webView8 != null) {
            webView8.setWebChromeClient(new WebChromeClient() {
                @Override
                public boolean onShowFileChooser(@NotNull WebView webView9, @NotNull ValueCallback<Uri[]> valueCallback, @NotNull WebChromeClient.FileChooserParams fileChooserParams) {
                    Intrinsics.checkNotNullParameter(webView9, "mWebView");
                    Intrinsics.checkNotNullParameter(valueCallback, "filePathCallback");
                    Intrinsics.checkNotNullParameter(fileChooserParams, "fileChooserParams");
                    if (VIOnMobileWebView.this.getUploadMessage() != null) {
                        ValueCallback<Uri[]> uploadMessage = VIOnMobileWebView.this.getUploadMessage();
                        Intrinsics.checkNotNull(uploadMessage);
                        uploadMessage.onReceiveValue(null);
                        VIOnMobileWebView.this.setUploadMessage(null);
                    }
                    VIOnMobileWebView.this.setUploadMessage(valueCallback);
                    Intent createIntent = fileChooserParams.createIntent();
                    Intrinsics.checkNotNullExpressionValue(createIntent, "createIntent(...)");
                    try {
                        Context context = webView9.getContext();
                        Intrinsics.checkNotNull(context, "null cannot be cast to non-null type android.app.Activity");
                        ((Activity) context).startActivityForResult(createIntent, 101);
                        return true;
                    } catch (Exception unused) {
                        valueCallback.onReceiveValue(null);
                        return true;
                    }
                }
            });
        }
        WebView webView9 = this.viWebView;
        if (webView9 != null) {
            webView9.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(@NotNull WebView webView10, @NotNull String str3) {
                    Intrinsics.checkNotNullParameter(webView10, "view");
                    Intrinsics.checkNotNullParameter(str3, "url");
                    ProgressBar viProgressbar = VIOnMobileWebView.this.getViProgressbar();
                    if (viProgressbar != null) {
                        viProgressbar.setVisibility(8);
                    }
                    WebView viWebView = VIOnMobileWebView.this.getViWebView();
                    if (viWebView == null) {
                        return;
                    }
                    viWebView.setVisibility(0);
                }

                @Override
                public void onPageStarted(@NotNull WebView webView10, @NotNull String str3, @Nullable Bitmap bitmap) {
                    View view2;
                    Intrinsics.checkNotNullParameter(webView10, "view");
                    Intrinsics.checkNotNullParameter(str3, "url");
                    ProgressBar viProgressbar = VIOnMobileWebView.this.getViProgressbar();
                    Intrinsics.checkNotNull(viProgressbar);
                    viProgressbar.setVisibility(8);
                    WebView viWebView = VIOnMobileWebView.this.getViWebView();
                    Intrinsics.checkNotNull(viWebView);
                    viWebView.setVisibility(0);
                    view2 = VIOnMobileWebView.this.errorView;
                    Intrinsics.checkNotNull(view2);
                    view2.setVisibility(8);
                    CleverTapAPI defaultInstance = CleverTapAPI.getDefaultInstance(VIOnMobileWebView.this.getApplicationContext());
                    Intrinsics.checkNotNull(defaultInstance);
                    defaultInstance.pushEvent("Onmobile_onload");
                }

                @Override
                @Deprecated(message = "Deprecated in Java")
                public void onReceivedError(@NotNull WebView webView10, int i, @NotNull String str3, @NotNull String str4) {
                    Intrinsics.checkNotNullParameter(webView10, "view");
                    Intrinsics.checkNotNullParameter(str3, "description");
                    Intrinsics.checkNotNullParameter(str4, "failingUrl");
                    ProgressBar viProgressbar = VIOnMobileWebView.this.getViProgressbar();
                    Intrinsics.checkNotNull(viProgressbar);
                    viProgressbar.setVisibility(8);
                    VIOnMobileWebView.this.setUrl(str4);
                    super.onReceivedError(webView10, i, str3, str4);
                    if (StringsKt.startsWith$default(str4, "tel:", false, 2, (Object) null)) {
                        VIOnMobileWebView.this.handleBackPressed();
                    }
                    CleverTapAPI defaultInstance = CleverTapAPI.getDefaultInstance(VIOnMobileWebView.this.getApplicationContext());
                    Intrinsics.checkNotNull(defaultInstance);
                    defaultInstance.pushEvent("Onmobile_failure");
                    VIOnMobileWebView.this.sendData(i, str3);
                    Toast.makeText(VIOnMobileWebView.this.getApplicationContext(), "Sorry, something went wrong. Please try again", 1).show();
                }

                @Override
                @Deprecated(message = "Deprecated in Java")
                public boolean shouldOverrideUrlLoading(@NotNull WebView webView10, @NotNull String str3) {
                    Intrinsics.checkNotNullParameter(webView10, "wv");
                    Intrinsics.checkNotNullParameter(str3, "url");
                    if (!StringsKt.contains$default(str3, "vi.app.link", false, 2, (Object) null) && !StringsKt.contains$default(str3, "mva.page.link", false, 2, (Object) null) && !StringsKt.startsWith$default(str3, "intent:", false, 2, (Object) null) && !StringsKt.startsWith$default(str3, "mailto:", false, 2, (Object) null) && !StringsKt.startsWith$default(str3, "maps:", false, 2, (Object) null) && !StringsKt.startsWith$default(str3, "geo:", false, 2, (Object) null) && !StringsKt.startsWith$default(str3, "sms:", false, 2, (Object) null) && !StringsKt.startsWith$default(str3, "whatsapp", false, 2, (Object) null) && !StringsKt.startsWith$default(str3, "tel:", false, 2, (Object) null)) {
                        return false;
                    }
                    try {
                        Intent intent = new Intent("android.intent.action.VIEW");
                        intent.setData(Uri.parse(str3));
                        VIOnMobileWebView.this.startActivity(intent);
                        if (!StringsKt.startsWith$default(str3, "tel:", false, 2, (Object) null)) {
                            WebView viWebView = VIOnMobileWebView.this.getViWebView();
                            Intrinsics.checkNotNull(viWebView);
                            viWebView.goBack();
                        }
                    } catch (ActivityNotFoundException unused) {
                        Toast.makeText(VIOnMobileWebView.this.getApplicationContext(), "Sorry, something went wrong. Please try again", 1).show();
                    }
                    return true;
                }

                @Override
                public void onReceivedError(@NotNull WebView webView10, @NotNull WebResourceRequest webResourceRequest, @NotNull WebResourceError webResourceError) {
                    Intrinsics.checkNotNullParameter(webView10, "view");
                    Intrinsics.checkNotNullParameter(webResourceRequest, "request");
                    Intrinsics.checkNotNullParameter(webResourceError, "error");
                    super.onReceivedError(webView10, webResourceRequest, webResourceError);
                }
            });
        }
        WebView webView10 = this.viWebView;
        if (webView10 != null) {
            webView10.addJavascriptInterface(new VIOnMobileWebView$onCreate$3(this), "ReactNativeWebView");
        }
        WebView webView11 = this.viWebView;
        if (webView11 != null) {
            webView11.setDownloadListener(new DownloadListener() {
                @Override
                public final void onDownloadStart(String str3, String str4, String str5, String str6, long j) {
                    VIOnMobileWebView.onCreate$lambda$0(VIOnMobileWebView.this, str3, str4, str5, str6, j);
                }
            });
        }
        WebView webView12 = this.viWebView;
        if (webView12 == null || (str = this.url) == null) {
            return;
        }
        webView12.loadUrl(str);
    }

    public void onDestroy() {
        super.onDestroy();
        safelyDestroyWebView(this.viWebView);
    }

    public final void sendData(int i, @Nullable String str) {
        try {
            Object obj = getApplication().getPackageManager().getPackageInfo(getApplication().getPackageName(), 0).versionName;
            try {
                JSONObject jSONObject = new JSONObject();
                jSONObject.put("module", getIntent().getStringExtra("title"));
                jSONObject.put("payload", modifyJsonObject(getIntent().getStringExtra("userObj"), getIntent().getStringExtra("encryptedMsisdn")));
                jSONObject.put("APIName", this.url);
                jSONObject.put("deviceModel", Build.MODEL);
                jSONObject.put(KibanaUtilConstants.DEVICE_OS_VERSION, AnalyticsConstants.EVENT_PV_OS_ANDROID);
                jSONObject.put("deviceManufacturer", Build.MANUFACTURER);
                jSONObject.put("appVersion", obj);
                jSONObject.put("MSISDN", getIntent().getStringExtra(KibanaUtilConstants.MSISDN));
                JSONObject jSONObject2 = new JSONObject();
                JSONObject jSONObject3 = new JSONObject();
                jSONObject3.put(KibanaUtilConstants.ERROR_CODE, i);
                jSONObject3.put(KibanaUtilConstants.ERROR_MESSAGE, str);
                jSONObject2.put(KibanaUtilConstants.DATA, jSONObject3);
                jSONObject.put(KibanaUtilConstants.API_RESPONSE, jSONObject2);
                KibanaUtility.sendLog(jSONObject, "adobe", new KibanaUtility.CallBack() {
                    public void onFailure(@NotNull String str2) {
                        Intrinsics.checkNotNullParameter(str2, "message");
                    }

                    public void onSuccess(@NotNull String str2) {
                        Intrinsics.checkNotNullParameter(str2, "objectId");
                    }
                });
            } catch (Exception unused) {
            }
        } catch (PackageManager.NameNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    public final void setUploadMessage(@Nullable ValueCallback<Uri[]> valueCallback) {
        this.uploadMessage = valueCallback;
    }

    public final void setUrl(@Nullable String str) {
        this.url = str;
    }
}