导航菜单

页面标题

页面副标题

Online Loans v421.2.42 - WebViewActivity.java 源代码

正在查看: Online Loans v421.2.42 应用的 WebViewActivity.java JAVA 源代码文件

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


package org.infobip.mobile.messaging.view;

import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.widget.Toolbar;
import h.i;
import i.c;
import java.net.URISyntaxException;
import java.util.Iterator;
import org.infobip.mobile.messaging.MobileMessagingCore;
import org.infobip.mobile.messaging.NotificationSettings;
import org.infobip.mobile.messaging.R;
import org.infobip.mobile.messaging.app.WebViewSettingsResolver;
import org.infobip.mobile.messaging.logging.MobileMessagingLogger;
import org.infobip.mobile.messaging.util.StringUtils;

public class WebViewActivity extends c {
    public static final String EXTRA_URL = "ib_webview_url";
    public ProgressBar a;
    public WebView b;

    public class a extends WebViewClient {
        public final TextView a;

        public a(TextView textView) {
            this.a = textView;
        }

        @Override
        public void onPageFinished(WebView webView, String str) {
            try {
                WebViewActivity.this.a.setVisibility(8);
                this.a.setText(webView.getTitle());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest webResourceRequest) {
            return WebViewActivity.this.y(webResourceRequest.getUrl().toString());
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String str) {
            return WebViewActivity.this.y(str);
        }
    }

    public static boolean canOpenURLWithOtherApp(String str, Context context) {
        Uri parse = Uri.parse(str);
        if (parse == null) {
            return false;
        }
        Intent intent = new Intent("android.intent.action.VIEW", parse);
        if (Build.VERSION.SDK_INT > 29) {
            intent.addFlags(337642496);
            try {
                context.startActivity(intent);
                return true;
            } catch (ActivityNotFoundException unused) {
                MobileMessagingLogger.d("Browser is the default app for this intent, URL will be opened in webView");
                return false;
            }
        }
        Iterator<ResolveInfo> it = context.getPackageManager().queryIntentActivities(intent, 0).iterator();
        if (!it.hasNext()) {
            return false;
        }
        ResolveInfo next = it.next();
        ActivityInfo activityInfo = next.activityInfo;
        ComponentName componentName = new ComponentName(activityInfo.applicationInfo.packageName, activityInfo.name);
        if (next.activityInfo.applicationInfo.packageName.equals("com.android.chrome")) {
            return false;
        }
        intent.addFlags(337641472);
        intent.setComponent(componentName);
        context.startActivity(intent);
        return true;
    }

    private void goBack() {
        NotificationSettings notificationSettings;
        Class<?> callbackActivity;
        if (isTaskRoot() && (notificationSettings = MobileMessagingCore.getInstance((Context) this).getNotificationSettings()) != null && (callbackActivity = notificationSettings.getCallbackActivity()) != null) {
            startActivity(new Intent((Context) this, callbackActivity));
        }
        super/*androidx.activity.h*/.onBackPressed();
    }

    public void onBackPressed() {
        if (this.b.canGoBack()) {
            this.b.goBack();
        } else {
            goBack();
        }
    }

    @SuppressLint({"SetJavaScriptEnabled"})
    public void onCreate(Bundle bundle) {
        setTheme(new WebViewSettingsResolver(this).getWebViewTheme());
        super/*androidx.fragment.app.t*/.onCreate(bundle);
        setContentView(R.layout.ib_activity_webview);
        Toolbar findViewById = findViewById(R.id.ib_toolbar_webview);
        setSupportActionBar(findViewById);
        i.a supportActionBar = getSupportActionBar();
        if (supportActionBar == null) {
            onBackPressed();
            return;
        }
        supportActionBar.v(false);
        supportActionBar.w(false);
        TextView textView = (TextView) findViewById.findViewById(R.id.ib_tv_webview_toolbar_title);
        textView.setText(findViewById.getTitle());
        x(findViewById, textView);
        String stringExtra = getIntent().getStringExtra(EXTRA_URL);
        WebView webView = (WebView) findViewById(R.id.ib_webview);
        this.b = webView;
        WebSettings settings = webView.getSettings();
        settings.setBuiltInZoomControls(true);
        settings.setJavaScriptEnabled(true);
        this.b.setWebViewClient(new a(textView));
        this.b.loadUrl(stringExtra);
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.ib_menu_webview, menu);
        menu.findItem(R.id.ib_menu_cancel).setIcon(z(menu));
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem menuItem) {
        if (menuItem.getItemId() != R.id.ib_menu_cancel) {
            return true;
        }
        goBack();
        this.b.freeMemory();
        this.b.removeAllViews();
        this.b.destroy();
        return true;
    }

    public final void x(Toolbar toolbar, TextView textView) {
        TypedValue typedValue = new TypedValue();
        Resources.Theme theme = getTheme();
        theme.resolveAttribute(h.a.v, typedValue, true);
        toolbar.setBackgroundColor(typedValue.data);
        textView.setTextAppearance(this, i.b);
        theme.resolveAttribute(h.a.K, typedValue, true);
        textView.setTextColor(typedValue.data);
        this.a = (ProgressBar) findViewById(R.id.ib_pb_webview);
        theme.resolveAttribute(h.a.w, typedValue, true);
        try {
            this.a.getIndeterminateDrawable().setColorFilter(typedValue.data, PorterDuff.Mode.SRC_IN);
        } catch (Exception unused) {
        }
    }

    public final boolean y(String str) {
        if (StringUtils.isBlank(str)) {
            return false;
        }
        PackageManager packageManager = getPackageManager();
        if (str.startsWith("intent://")) {
            try {
                Intent parseUri = Intent.parseUri(str, 1);
                if (parseUri.resolveActivity(packageManager) != null) {
                    startActivity(parseUri);
                    return true;
                }
                String stringExtra = parseUri.getStringExtra("browser_fallback_url");
                if (stringExtra != null) {
                    this.b.loadUrl(stringExtra);
                    return true;
                }
                Intent data = new Intent("android.intent.action.VIEW").setData(Uri.parse("market://details?id=" + parseUri.getPackage()));
                if (data.resolveActivity(packageManager) != null) {
                    startActivity(data);
                    return true;
                }
                Intent data2 = new Intent("android.intent.action.VIEW").setData(Uri.parse("appmarket://details?id=" + parseUri.getPackage()));
                if (data2.resolveActivity(packageManager) != null) {
                    startActivity(data2);
                    return true;
                }
            } catch (URISyntaxException e) {
                MobileMessagingLogger.w("Failed to resolve intent:// for web view URL " + str, e);
            }
        }
        return canOpenURLWithOtherApp(str, this);
    }

    public final Drawable z(Menu menu) {
        Drawable r = P.a.r(menu.findItem(R.id.ib_menu_cancel).getIcon());
        TypedValue typedValue = new TypedValue();
        getTheme().resolveAttribute(h.a.u, typedValue, true);
        r.setColorFilter(typedValue.data, PorterDuff.Mode.SRC_IN);
        return r;
    }
}