导航菜单

页面标题

页面副标题

MX Player v1.97.8 - DTBAdViewSupportClient.java 源代码

正在查看: MX Player v1.97.8 应用的 DTBAdViewSupportClient.java JAVA 源代码文件

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


package com.amazon.device.ads;

import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.webkit.RenderProcessGoneDetail;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.annotation.NonNull;
import defpackage.i0;
import defpackage.k0;
import defpackage.l0;
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.util.Locale;

public class DTBAdViewSupportClient extends WebViewClient {
    static final String AMAZON_APP_STORE_LINK = "https://www.amazon.com/gp/mas/dl/android?";
    static final String AMAZON_SCHEME = "amzn";
    static final String GOOGLE_PLAY_STORE_LINK = "https://play.google.com/store/apps/";
    static final String LOG_TAG = "DTBAdViewSupportClient";
    static final String MARKET_SCHEME = "market";
    static final String MOBILE_SHOPPING_SCHEME = "com.amazon.mobile.shopping";
    static final String MOBILE_SHOPPING_WEB_SCHEME = "com.amazon.mobile.shopping.web";
    Context context;
    DTBAdMRAIDController controller;

    public DTBAdViewSupportClient(Context context, DTBAdMRAIDController dTBAdMRAIDController) {
        this.context = context;
        this.controller = dTBAdMRAIDController;
    }

    private WebResourceResponse createImageInjectionResponse(String str) {
        try {
            return new WebResourceResponse("image/png", "UTF-8", this.context.getAssets().open(str));
        } catch (IOException unused) {
            DtbLog.error(LOG_TAG, bl0.c("Failed to get injection response: ", str));
            return null;
        }
    }

    private boolean matchesLocalInjectionUrl(@NonNull String str) {
        return "local".equals(Uri.parse(str.toLowerCase(Locale.US)).getScheme());
    }

    private boolean openUrl(String str) {
        Intent intent;
        int i;
        Uri parse = Uri.parse(str);
        PackageManager packageManager = this.context.getPackageManager();
        try {
            try {
                if (MOBILE_SHOPPING_WEB_SCHEME.equals(parse.getScheme())) {
                    int indexOf = str.indexOf("//");
                    if (indexOf < 0 || (i = indexOf + 2) >= str.length()) {
                        return false;
                    }
                    AdRegistration.getCurrentActivity().startActivity(new Intent("android.intent.action.VIEW", Uri.parse("https://" + str.substring(i))));
                    this.controller.onAdLeftApplication();
                    return true;
                }
                if (MOBILE_SHOPPING_SCHEME.equals(parse.getScheme())) {
                    if (packageManager.getLaunchIntentForPackage("com.amazon.mShop.android.shopping") != null) {
                        intent = new Intent("android.intent.action.VIEW");
                        intent.setData(parse);
                    } else {
                        Intent intent2 = new Intent("android.intent.action.VIEW");
                        intent2.setData(parse);
                        int indexOf2 = str.indexOf("products/");
                        if (indexOf2 > 0) {
                            intent2.setData(Uri.parse("https://www.amazon.com/dp/" + str.substring(indexOf2 + 9)));
                        }
                        intent = intent2;
                    }
                    AdRegistration.getCurrentActivity().startActivity(intent);
                    this.controller.onAdLeftApplication();
                    return true;
                }
                if (!MARKET_SCHEME.equals(parse.getScheme()) && !AMAZON_SCHEME.equals(parse.getScheme())) {
                    Intent intent3 = new Intent("android.intent.action.VIEW");
                    intent3.setData(parse);
                    AdRegistration.getCurrentActivity().startActivity(intent3);
                    this.controller.onAdLeftApplication();
                    return true;
                }
                try {
                    try {
                        Intent intent4 = new Intent("android.intent.action.VIEW");
                        intent4.setData(parse);
                        AdRegistration.getCurrentActivity().startActivity(intent4);
                        this.controller.onAdLeftApplication();
                        return true;
                    } catch (ActivityNotFoundException unused) {
                        DTBAdUtil.directAppStoreLinkToBrowser(this.controller, parse);
                        return true;
                    }
                } catch (ActivityNotFoundException unused2) {
                    DtbLog.debug(LOG_TAG, "App stores and browsers not found");
                    return false;
                }
            } catch (ActivityNotFoundException unused3) {
                DtbLog.error(LOG_TAG, "Activity not found com.amazon.mobile.shopping");
                return false;
            }
        } catch (NullPointerException unused4) {
            DtbLog.debug(LOG_TAG, "Current activity from AdRegistration not found");
            return false;
        }
    }

    @Override
    @Deprecated
    public void onLoadResource(WebView webView, String str) {
        DtbLog.debug(LOG_TAG, bl0.c("Load Resource:", str));
    }

    @Override
    public void onPageFinished(WebView webView, String str) {
        DtbOmSdkSessionManager dtbOmSdkSessionManager;
        try {
            DtbLog.debug(LOG_TAG, "Page finished:" + str);
            if (webView instanceof DTBAdView) {
                if (str.contains("MRAID_ENV")) {
                    this.controller.onPageLoad();
                    return;
                }
                if (str.equals("https://c.amazon-adsystem.com/")) {
                    DTBAdMRAIDController dTBAdMRAIDController = this.controller;
                    if ((dTBAdMRAIDController instanceof DTBAdMRAIDBannerController) && (dtbOmSdkSessionManager = dTBAdMRAIDController.getDtbOmSdkSessionManager()) != null) {
                        dtbOmSdkSessionManager.stopOmAdSession();
                        WebView webView2 = (WebView) new WeakReference(this.controller.getAdView()).get();
                        if (this.controller.getAdView().isVideo()) {
                            dtbOmSdkSessionManager.initJavaScriptOmAdSession(webView2, str);
                        } else {
                            dtbOmSdkSessionManager.initHtmlDisplayOmAdSession(webView2, str);
                        }
                        dtbOmSdkSessionManager.registerAdView(webView2);
                        dtbOmSdkSessionManager.startAdSession();
                    }
                    this.controller.onPageLoad();
                }
            }
        } catch (RuntimeException e) {
            DtbLog.error(LOG_TAG, "Fail to execute onPageFinished method");
            i0.a(k0.c, l0.b, "Fail to execute onPageFinished method", e);
        }
    }

    @Override
    public void onReceivedError(WebView webView, WebResourceRequest webResourceRequest, WebResourceError webResourceError) {
        super.onReceivedError(webView, webResourceRequest, webResourceError);
        try {
            this.controller.onLoadError(webResourceError.getDescription().toString(), webResourceError.getErrorCode());
        } catch (RuntimeException e) {
            DtbLog.error(LOG_TAG, "Fail to execute onReceivedError method");
            i0.a(k0.c, l0.b, "Fail to execute onReceivedError method", e);
        }
    }

    @Override
    public boolean onRenderProcessGone(WebView webView, RenderProcessGoneDetail renderProcessGoneDetail) {
        l0 l0Var = l0.b;
        k0 k0Var = k0.b;
        super.onRenderProcessGone(webView, renderProcessGoneDetail);
        StringBuilder sb = new StringBuilder("Fail to render ad due to webView crash.");
        try {
            if (!renderProcessGoneDetail.didCrash()) {
                return false;
            }
            if (this.controller.getAdView() != null) {
                String userAgentString = this.controller.getAdView().getSettings().getUserAgentString();
                String bidId = this.controller.getAdView().getBidId();
                if (!DtbCommonUtils.isNullOrEmpty(userAgentString)) {
                    sb.append("webViewUserAgentInfo = " + userAgentString + ";");
                }
                if (!DtbCommonUtils.isNullOrEmpty(bidId)) {
                    sb.append("webViewBidId = " + bidId + ";");
                }
                this.controller.getAdView().onAdRemoved();
                ViewParent parent = this.controller.getAdView().getParent();
                if (parent instanceof ViewGroup) {
                    ((ViewGroup) parent).removeView(this.controller.getAdView());
                }
                this.controller.onLoadError();
                this.controller.getAdView().cleanup();
            }
            String obj = renderProcessGoneDetail.toString();
            if (!DtbCommonUtils.isNullOrEmpty(obj)) {
                sb.append("webViewErrorDetail = " + obj.substring(0, Math.min(100, obj.length())));
            }
            DtbLog.error(LOG_TAG, sb.toString());
            i0.a(k0Var, l0Var, sb.toString(), null);
            return true;
        } catch (RuntimeException e) {
            DtbLog.error(LOG_TAG, "Fail to send crash information of corrupted webView");
            i0.a(k0Var, l0Var, sb.toString(), e);
            return true;
        }
    }

    @Override
    public WebResourceResponse shouldInterceptRequest(@NonNull WebView webView, @NonNull String str) {
        DtbLog.debug(LOG_TAG, bl0.c("Should intercept Resource url: ", str));
        return matchesLocalInjectionUrl(str) ? createImageInjectionResponse(str.substring(str.lastIndexOf(47) + 1)) : super.shouldInterceptRequest(webView, str);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView webView, String str) {
        try {
            if (this.controller.isTwoPartExpand()) {
                return false;
            }
            return openUrl(str);
        } catch (RuntimeException e) {
            DtbLog.error(LOG_TAG, "Fail to execute shouldOverrideUrlLoading method");
            i0.a(k0.c, l0.b, "Fail to execute shouldOverrideUrlLoading method", e);
            return false;
        }
    }
}