导航菜单

页面标题

页面副标题

Barstool v5.21.2 - ApsAdViewFetchUtils.java 源代码

正在查看: Barstool v5.21.2 应用的 ApsAdViewFetchUtils.java JAVA 源代码文件

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


package com.amazon.aps.ads.util.adview;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.webkit.WebView;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.amazon.aps.ads.util.ApsAdExtensionsKt;
import com.amazon.aps.shared.ApsMetrics;
import com.amazon.aps.shared.analytics.APSEventSeverity;
import com.amazon.aps.shared.analytics.APSEventType;
import com.amazon.device.ads.DTBAdBannerListener;
import com.amazon.device.ads.DTBAdMRAIDBannerController;
import com.amazon.device.ads.DTBAdMRAIDController;
import com.amazon.device.ads.DTBExpectedSizeProvider;
import com.amazon.device.ads.DTBMetricsConfiguration;
import com.amazon.device.ads.DtbCommonUtils;
import com.amazon.device.ads.DtbConstants;
import com.amazon.device.ads.DtbDeviceData;
import com.amazon.device.ads.DtbOmSdkSessionManager;
import com.amazon.device.ads.DtbSharedPreferences;
import com.amazon.device.ads.WebResourceService;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import kotlin.Metadata;
import kotlin.jvm.JvmStatic;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.StringCompanionObject;
import kotlin.text.StringsKt;
import org.json.JSONObject;

@Metadata(d1 = {"\u0000\f\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0003\u0018\u0000 \u00032\u00020\u0001:\u0001\u0003B\u0007\b\u0002¢\u0006\u0002\u0010\u0002¨\u0006\u0004"}, d2 = {"Lcom/amazon/aps/ads/util/adview/ApsAdViewFetchUtils;", "", "()V", "Companion", "DTBAndroidSDK_release"}, k = 1, mv = {1, 6, 0}, xi = ConstraintLayout.LayoutParams.Table.LAYOUT_CONSTRAINT_VERTICAL_CHAINSTYLE)
public final class ApsAdViewFetchUtils {

    public static final Companion INSTANCE = new Companion(null);

    @JvmStatic
    public static final void fetchAdWithLocation(Context context, WebView webView, boolean z, String str) {
        INSTANCE.fetchAdWithLocation(context, webView, z, str);
    }

    @JvmStatic
    public static final void getAdInfo(String str, Bundle bundle) {
        INSTANCE.getAdInfo(str, bundle);
    }

    @JvmStatic
    public static final String getEnvironment(Context context, Bundle bundle) {
        return INSTANCE.getEnvironment(context, bundle);
    }

    @JvmStatic
    public static final String getMobileDeviceInfo() {
        return INSTANCE.getMobileDeviceInfo();
    }

    @JvmStatic
    public static final void loadLocalFile(Context context, boolean z, String str, StringBuilder sb) {
        INSTANCE.loadLocalFile(context, z, str, sb);
    }

    @Metadata(d1 = {"\u0000N\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010$\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\b\f\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J*\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\b2\b\u0010\t\u001a\u0004\u0018\u00010\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\fJ0\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\b\u0010\t\u001a\u0004\u0018\u00010\n2\u0016\u0010\r\u001a\u0012\u0012\u0006\u0012\u0004\u0018\u00010\n\u0012\u0004\u0012\u00020\u0001\u0018\u00010\u000eJ*\u0010\u000f\u001a\u00020\u00042\u0006\u0010\u0010\u001a\u00020\u00112\u0006\u0010\u0005\u001a\u00020\u00122\u0006\u0010\u0013\u001a\u00020\u00142\b\u0010\u0015\u001a\u0004\u0018\u00010\nH\u0007J\u001a\u0010\u0016\u001a\u00020\u00042\b\u0010\u0017\u001a\u0004\u0018\u00010\n2\u0006\u0010\u0018\u001a\u00020\fH\u0007J$\u0010\u0019\u001a\u0004\u0018\u00010\f2\u0006\u0010\u001a\u001a\u00020\b2\b\u0010\t\u001a\u0004\u0018\u00010\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\fJ\u001c\u0010\u001b\u001a\u0004\u0018\u00010\n2\u0006\u0010\u0010\u001a\u00020\u00112\b\u0010\u001c\u001a\u0004\u0018\u00010\fH\u0007J\b\u0010\u001d\u001a\u00020\nH\u0007J,\u0010\u001e\u001a\u00020\u00042\u0006\u0010\u0010\u001a\u00020\u00112\u0006\u0010\u0013\u001a\u00020\u00142\u0006\u0010\u001f\u001a\u00020\n2\n\u0010 \u001a\u00060!j\u0002`\"H\u0007¨\u0006#"}, d2 = {"Lcom/amazon/aps/ads/util/adview/ApsAdViewFetchUtils$Companion;", "", "()V", "fetchAd", "", "webView", "Lcom/amazon/aps/ads/util/adview/ApsAdViewImpl;", "mraidListener", "Lcom/amazon/device/ads/DTBAdMRAIDController;", "adHtml", "", "extraData", "Landroid/os/Bundle;", "extra", "", "fetchAdWithLocation", "context", "Landroid/content/Context;", "Landroid/webkit/WebView;", "localOnly", "", DTBMetricsConfiguration.APSMETRICS_URL, "getAdInfo", "adhtml", "adInfoBundle", "getBundleForFetchAd", "mraidHandler", "getEnvironment", "extras", "getMobileDeviceInfo", "loadLocalFile", "name", "sb", "Ljava/lang/StringBuilder;", "Lkotlin/text/StringBuilder;", "DTBAndroidSDK_release"}, k = 1, mv = {1, 6, 0}, xi = ConstraintLayout.LayoutParams.Table.LAYOUT_CONSTRAINT_VERTICAL_CHAINSTYLE)
    public static final class Companion {
        public Companion(DefaultConstructorMarker defaultConstructorMarker) {
            this();
        }

        private Companion() {
        }

        @JvmStatic
        public final void getAdInfo(String adhtml, Bundle adInfoBundle) {
            Intrinsics.checkNotNullParameter(adInfoBundle, "adInfoBundle");
            if (adhtml != null) {
                String str = adhtml;
                if (StringsKt.contains$default(str, "amzn.dtb.loadAd", false, 2, (Object) null)) {
                    Matcher matcher = Pattern.compile("amzn.dtb.loadAd\\(\\\"(.*)\\\", \\\"(.*)\\\", \\\"(.*)\\\".*isv: (\\w+)").matcher(str);
                    if (matcher.find() && matcher.groupCount() == 4) {
                        adInfoBundle.putString("event_server_parameter", matcher.group(1));
                        adInfoBundle.putString("bid_identifier", matcher.group(2));
                        adInfoBundle.putString("hostname_identifier", matcher.group(3));
                        adInfoBundle.putBoolean("video_flag", Boolean.parseBoolean(matcher.group(4)));
                    }
                }
            }
        }

        public final Bundle getBundleForFetchAd(DTBAdMRAIDController mraidHandler, String adHtml, Bundle extraData) {
            Intrinsics.checkNotNullParameter(mraidHandler, "mraidHandler");
            if (adHtml == null && extraData != null) {
                adHtml = extraData.getString("bid_html_template", null);
            }
            if (extraData != null && (mraidHandler instanceof DTBAdMRAIDBannerController)) {
                DTBAdBannerListener dTBAdBannerListener = ((DTBAdMRAIDBannerController) mraidHandler).bannerListener;
                int i = extraData.getInt("expected_width", 0);
                int i2 = extraData.getInt("expected_height", 0);
                if (i2 > 0 && i > 0 && (dTBAdBannerListener instanceof DTBExpectedSizeProvider)) {
                    DTBExpectedSizeProvider dTBExpectedSizeProvider = (DTBExpectedSizeProvider) dTBAdBannerListener;
                    dTBExpectedSizeProvider.setExpectedWidth(i);
                    dTBExpectedSizeProvider.setExpectedHeight(i2);
                }
            }
            if (!DTBMetricsConfiguration.getInstance().isFeatureEnabled("webviewAdInfo_feature") || extraData != null) {
                return extraData;
            }
            Bundle bundle = new Bundle();
            getAdInfo(adHtml, bundle);
            StringCompanionObject stringCompanionObject = StringCompanionObject.INSTANCE;
            String format = String.format("{bidID:'%s',aaxHost:'%s',pricePoint:'%s'}", Arrays.copyOf(new Object[]{bundle.getString("bid_identifier"), bundle.getString("hostname_identifier"), bundle.getString("event_server_parameter")}, 3));
            Intrinsics.checkNotNullExpressionValue(format, "format(format, *args)");
            bundle.putString("amazon_ad_info", format);
            return bundle;
        }

        public final void fetchAd(ApsAdViewImpl webView, String adHtml, Map<String, ? extends Object> extra) {
            Intrinsics.checkNotNullParameter(webView, "webView");
            try {
                Bundle initializeEmptyBundle = DtbCommonUtils.initializeEmptyBundle();
                if (extra != null) {
                    for (Map.Entry<String, ? extends Object> entry : extra.entrySet()) {
                        String key = entry.getKey();
                        Object value = entry.getValue();
                        if (value instanceof String) {
                            initializeEmptyBundle.putString(key, (String) value);
                        } else if (value instanceof Boolean) {
                            initializeEmptyBundle.putBoolean(key, ((Boolean) value).booleanValue());
                        } else if (value instanceof Integer) {
                            initializeEmptyBundle.putInt(key, ((Number) value).intValue());
                        } else if (value instanceof Long) {
                            initializeEmptyBundle.putLong(key, ((Number) value).longValue());
                        }
                    }
                }
                webView.fetchAd(adHtml, initializeEmptyBundle);
            } catch (RuntimeException e) {
                ApsAdExtensionsKt.logEvent(this, APSEventSeverity.FATAL, APSEventType.EXCEPTION, "Fail to execute fetchAd method with map bundle", e);
            }
        }

        public final void fetchAd(ApsAdViewImpl webView, DTBAdMRAIDController mraidListener, String adHtml, Bundle extraData) {
            Intrinsics.checkNotNullParameter(webView, "webView");
            Intrinsics.checkNotNullParameter(mraidListener, "mraidListener");
            try {
                StringBuilder sb = new StringBuilder();
                sb.append("<!DOCTYPE html><html><head>");
                sb.append("<script>");
                sb.append(getEnvironment(webView.getAdViewContext(), extraData));
                sb.append("</script>");
                Context context = webView.getContext();
                Intrinsics.checkNotNullExpressionValue(context, "webView.context");
                loadLocalFile(context, webView.getLocalOnly(), "aps-mraid", sb);
                Context context2 = webView.getContext();
                Intrinsics.checkNotNullExpressionValue(context2, "webView.context");
                loadLocalFile(context2, webView.getLocalOnly(), "dtb-m", sb);
                if (DtbOmSdkSessionManager.getFeatureEnableFlag()) {
                    Context context3 = webView.getContext();
                    Intrinsics.checkNotNullExpressionValue(context3, "webView.context");
                    loadLocalFile(context3, webView.getLocalOnly(), "omsdk-v1", sb);
                }
                sb.append("</head>");
                sb.append("<body style='margin:0;padding:0;'>");
                sb.append(adHtml);
                sb.append("</body></html>");
                if (DTBMetricsConfiguration.getInstance().isFeatureEnabled("additional_webview_metric")) {
                    if (mraidListener instanceof DTBAdMRAIDBannerController) {
                        ApsMetrics.INSTANCE.customEvent("bannerCreativeRenderingStart", webView.getBidId(), null);
                    } else {
                        ApsMetrics.INSTANCE.customEvent("interstitialCreativeRenderingStart", webView.getBidId(), null);
                    }
                }
                webView.loadDataWithBaseURL("https://c.amazon-adsystem.com/", sb.toString(), "text/html", "UTF-8", null);
            } catch (RuntimeException e) {
                ApsAdExtensionsKt.logEvent(this, APSEventSeverity.FATAL, APSEventType.EXCEPTION, "Fail to execute fetchAd method with bundle", e);
            }
        }

        @JvmStatic
        public final void fetchAdWithLocation(Context context, WebView webView, boolean localOnly, String url) {
            Intrinsics.checkNotNullParameter(context, "context");
            Intrinsics.checkNotNullParameter(webView, "webView");
            try {
                StringBuilder sb = new StringBuilder();
                sb.append("<script>");
                sb.append(getEnvironment(context, null));
                sb.append("</script>");
                loadLocalFile(context, localOnly, "aps-mraid", sb);
                sb.append("<script>");
                sb.append("window.location=\"").append(url).append("\";");
                sb.append("</script>");
                webView.loadDataWithBaseURL("https://c.amazon-adsystem.com/", sb.toString(), "text/html", "UTF-8", null);
            } catch (RuntimeException e) {
                ApsAdExtensionsKt.logEvent(this, APSEventSeverity.FATAL, APSEventType.EXCEPTION, "Fail to execute fetchAdWithLocation method", e);
            }
        }

        @JvmStatic
        public final String getMobileDeviceInfo() {
            String str;
            String str2;
            String str3;
            String str4;
            String str5;
            String str6;
            String str7;
            JSONObject paramsJson;
            String str8 = "";
            try {
                paramsJson = DtbDeviceData.getDeviceDataInstance().getParamsJson();
            } catch (RuntimeException e) {
                e = e;
                str = "";
                str2 = str;
                str3 = str2;
            }
            if (paramsJson != null) {
                if (paramsJson.has(DtbDeviceData.DEVICE_DATA_OS_VERSION_KEY)) {
                    str3 = paramsJson.getString(DtbDeviceData.DEVICE_DATA_OS_VERSION_KEY);
                    Intrinsics.checkNotNullExpressionValue(str3, "it.getString(\n          …                        )");
                } else {
                    str3 = "";
                }
                try {
                    if (paramsJson.has(DtbDeviceData.DEVICE_DATA_MODEL_KEY)) {
                        str2 = paramsJson.getString(DtbDeviceData.DEVICE_DATA_MODEL_KEY);
                        Intrinsics.checkNotNullExpressionValue(str2, "it.getString(\n          …                        )");
                    } else {
                        str2 = "";
                    }
                    try {
                        if (paramsJson.has(DtbDeviceData.DEVICE_DATA_SCREEN_SIZE_KEY)) {
                            str = paramsJson.getString(DtbDeviceData.DEVICE_DATA_SCREEN_SIZE_KEY);
                            Intrinsics.checkNotNullExpressionValue(str, "it.getString(\n          …                        )");
                        } else {
                            str = "";
                        }
                    } catch (RuntimeException e2) {
                        e = e2;
                        str = "";
                    }
                } catch (RuntimeException e3) {
                    e = e3;
                    str = "";
                    str2 = str;
                }
                try {
                    if (paramsJson.has(DtbDeviceData.DEVICE_DATA_ORIENTATION_KEY)) {
                        String string = paramsJson.getString(DtbDeviceData.DEVICE_DATA_ORIENTATION_KEY);
                        Intrinsics.checkNotNullExpressionValue(string, "it.getString(\n          …                        )");
                        str8 = string;
                    }
                } catch (RuntimeException e4) {
                    e = e4;
                    ApsAdExtensionsKt.logEvent(this, APSEventSeverity.FATAL, APSEventType.EXCEPTION, "Fail to parse deviceData in getMobileDeviceInfo method", e);
                    str4 = str;
                    str5 = str2;
                    str6 = str3;
                    str7 = str8;
                    StringCompanionObject stringCompanionObject = StringCompanionObject.INSTANCE;
                    String format = String.format("{os:'%s',fwk:'%s',osVersion:'%s',model:'%s',screenSize:'%s',orientation:'%s'}", Arrays.copyOf(new Object[]{DtbConstants.NATIVE_OS_NAME, DtbCommonUtils.getSDKFramework(), str6, str5, str4, str7}, 6));
                    Intrinsics.checkNotNullExpressionValue(format, "format(format, *args)");
                    return format;
                }
                str4 = str;
                str5 = str2;
                str6 = str3;
                str7 = str8;
                StringCompanionObject stringCompanionObject2 = StringCompanionObject.INSTANCE;
                String format2 = String.format("{os:'%s',fwk:'%s',osVersion:'%s',model:'%s',screenSize:'%s',orientation:'%s'}", Arrays.copyOf(new Object[]{DtbConstants.NATIVE_OS_NAME, DtbCommonUtils.getSDKFramework(), str6, str5, str4, str7}, 6));
                Intrinsics.checkNotNullExpressionValue(format2, "format(format, *args)");
                return format2;
            }
            str6 = "";
            str5 = str6;
            str4 = str5;
            str7 = str4;
            StringCompanionObject stringCompanionObject22 = StringCompanionObject.INSTANCE;
            String format22 = String.format("{os:'%s',fwk:'%s',osVersion:'%s',model:'%s',screenSize:'%s',orientation:'%s'}", Arrays.copyOf(new Object[]{DtbConstants.NATIVE_OS_NAME, DtbCommonUtils.getSDKFramework(), str6, str5, str4, str7}, 6));
            Intrinsics.checkNotNullExpressionValue(format22, "format(format, *args)");
            return format22;
        }

        @JvmStatic
        public final String getEnvironment(Context context, Bundle extras) {
            String str;
            CharSequence applicationLabel;
            Intrinsics.checkNotNullParameter(context, "context");
            String string = extras != null ? extras.getString("amazon_ad_info") : null;
            PackageManager packageManager = context.getPackageManager();
            ApplicationInfo applicationInfo = context.getApplicationInfo();
            if (packageManager != null && (applicationLabel = packageManager.getApplicationLabel(applicationInfo)) != null) {
                str = (String) applicationLabel;
            } else {
                str = "";
            }
            String str2 = str;
            String idfa = DtbSharedPreferences.getInstance().getIdfa();
            if (DtbCommonUtils.isNullOrEmpty(idfa)) {
                idfa = "unknown";
            }
            String str3 = idfa;
            boolean optOut = DtbSharedPreferences.getInstance().getOptOut();
            if (optOut == null) {
                optOut = false;
            }
            Boolean bool = optOut;
            String mobileDeviceInfo = getMobileDeviceInfo();
            if (string == null) {
                StringCompanionObject stringCompanionObject = StringCompanionObject.INSTANCE;
                String format = String.format("window.MRAID_ENV={version:'%s',sdk:'%s',sdkVersion:'%s',appId:'%s',ifa:'%s',limitAdTracking:%b,coppa:%b,impFired:true,mobileDeviceInfo:%s};", Arrays.copyOf(new Object[]{"3.0", DtbCommonUtils.getSDKMRAIDVersion(), DtbConstants.SDK_VERSION, StringsKt.replace$default(str2, "'", "\\'", false, 4, (Object) null), str3, bool, false, mobileDeviceInfo}, 8));
                Intrinsics.checkNotNullExpressionValue(format, "format(format, *args)");
                return format;
            }
            StringCompanionObject stringCompanionObject2 = StringCompanionObject.INSTANCE;
            String format2 = String.format("window.MRAID_ENV={version:'%s',sdk:'%s',sdkVersion:'%s',appId:'%s',ifa:'%s',limitAdTracking:%b,coppa:%b,amznAdInfo:%s,impFired:true,mobileDeviceInfo:%s};", Arrays.copyOf(new Object[]{"3.0", DtbCommonUtils.getSDKMRAIDVersion(), DtbConstants.SDK_VERSION, StringsKt.replace$default(str2, "'", "\\'", false, 4, (Object) null), str3, bool, false, string, mobileDeviceInfo}, 9));
            Intrinsics.checkNotNullExpressionValue(format2, "format(format, *args)");
            return format2;
        }

        @JvmStatic
        public final void loadLocalFile(Context context, boolean localOnly, String name, StringBuilder sb) {
            Intrinsics.checkNotNullParameter(context, "context");
            Intrinsics.checkNotNullParameter(name, "name");
            Intrinsics.checkNotNullParameter(sb, "sb");
            if (!localOnly) {
                try {
                    String loadFile = WebResourceService.getInstance().loadFile(name);
                    if (loadFile != null) {
                        sb.append("<script>").append(loadFile).append("</script>");
                        return;
                    }
                } catch (Exception unused) {
                    ApsAdExtensionsKt.e(this, "Failed to read local file");
                }
            }
            sb.append("<script>");
            try {
                InputStream open = context.getAssets().open(Intrinsics.stringPlus(name, ".js"));
                Intrinsics.checkNotNullExpressionValue(open, "context.assets.open(\"$name.js\")");
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(open));
                while (true) {
                    String readLine = bufferedReader.readLine();
                    if (readLine == null) {
                        break;
                    } else {
                        sb.append(StringsKt.trim(readLine).toString()).append("\n");
                    }
                }
                bufferedReader.close();
                open.close();
            } catch (Exception unused2) {
                ApsAdExtensionsKt.e(this, Intrinsics.stringPlus("Error reading file:", name));
            }
            sb.append("</script>");
        }
    }

    private ApsAdViewFetchUtils() {
    }
}