BuzzCast Porno v1.0.0.0版本的 MD5 值为:74d6ef6b6062f3b4dab5598ca2751841

以下内容为反编译后的 DTBAdMRAIDController.java 源代码,内容仅作参考


package com.amazon.device.ads;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.ValueCallback;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.amazon.device.ads.SDKUtilities;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Date;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;
public abstract class DTBAdMRAIDController implements DTBActivityListener {
    public static final String LOG_TAG = "DTBAdMRAIDController";
    public static final String MRAID_CLOSE = "window.mraid.close();";
    private static final String MRAID_READY = "window.mraidBridge.event.ready();";
    public DTBAdView adView;
    public LinearLayout closeIndicatorRegion;
    public DTBMRAIDCloseButtonListener customButtonListener;
    private Boolean g;
    private Rect lastRect;
    private MraidExposure lastReportedExposure;
    private boolean loadReportSubmitted;
    public boolean pageLoaded = false;
    public boolean useCustomClose = false;
    private int lastReportedSizeChangeWidth = -1;
    private int f = -1;
    public MraidStateType state = MraidStateType.LOADING;
    private boolean jsReady = false;
    private boolean isTwoPartExpand = false;

    public static class AnonymousClass2 {
        public static final int[] f704a;

        static {
            int[] iArr = new int[MraidStateType.values().length];
            f704a = iArr;
            try {
                iArr[MraidStateType.LOADING.ordinal()] = 1;
            } catch (NoSuchFieldError unused) {
            }
            try {
                f704a[MraidStateType.DEFAULT.ordinal()] = 2;
            } catch (NoSuchFieldError unused2) {
            }
            try {
                f704a[MraidStateType.RESIZED.ordinal()] = 3;
            } catch (NoSuchFieldError unused3) {
            }
            try {
                f704a[MraidStateType.EXPANDED.ordinal()] = 4;
            } catch (NoSuchFieldError unused4) {
            }
            try {
                f704a[MraidStateType.HIDDEN.ordinal()] = 5;
            } catch (NoSuchFieldError unused5) {
            }
        }
    }

    public class MraidExposure {
        public int percent;
        public Rect rect;

        public MraidExposure(int i, Rect rect) {
            DTBAdMRAIDController.this = r1;
            this.percent = i;
            this.rect = new Rect(rect);
        }
    }

    static {
        MraidCommand.registerCommand(ak.NAME, ak.class);
        MraidCommand.registerCommand(MraidCloseCommand.NAME, MraidCloseCommand.class);
        MraidCommand.registerCommand(al.NAME, al.class);
        MraidCommand.registerCommand(MraidResizeCommand.NAME, MraidResizeCommand.class);
        MraidCommand.registerCommand(aj.NAME, aj.class);
        MraidCommand.registerCommand(am.NAME, am.class);
        MraidCommand.registerCommand(MraidJSReadyCommand.NAME, MraidJSReadyCommand.class);
        MraidCommand.registerCommand(MraidFirePixelCommand.NAME, MraidFirePixelCommand.class);
    }

    public DTBAdMRAIDController(DTBAdView dTBAdView) {
        this.adView = dTBAdView;
    }

    private void evaluateJavascriptMethod(String str, JSONObject jSONObject) {
        evaluateJavascript(String.format(c.e(str, "(%s);"), jSONObject.toString()));
    }

    private void evaluateJavascriptProperty(String str, JSONObject jSONObject) {
        evaluateJavascript(String.format(c.e(str, "= %s ;"), jSONObject.toString()));
    }

    private void fireMaxSizeEvent() {
        SDKUtilities.SimpleSize maxSize = DTBAdUtil.getMaxSize(getAdView());
        evaluateJavascript(String.format("window.mraidBridge.property.setMaxSize({'width':%d, 'height':%d});", Integer.valueOf(maxSize.getWidth()), Integer.valueOf(maxSize.getHeight())));
    }

    private JSONObject formProperties(MraidProperty[] mraidPropertyArr) {
        JSONObject jSONObject = new JSONObject();
        for (MraidProperty mraidProperty : mraidPropertyArr) {
            mraidProperty.formJSON(jSONObject);
        }
        return jSONObject;
    }

    private void h(int i, Rect rect) {
        evaluateJavascript(String.format("window.mraidBridge.event.exposureChange(%d, { x:%d, y:%d, width:%d, height: %d}, null);", Integer.valueOf(i), Integer.valueOf(DTBAdUtil.a(rect.left)), Integer.valueOf(DTBAdUtil.a(rect.top)), Integer.valueOf(DTBAdUtil.a(rect.right - rect.left)), Integer.valueOf(DTBAdUtil.a(rect.bottom - rect.top))));
    }

    private MraidProperty i() {
        int i = AnonymousClass2.f704a[this.state.ordinal()];
        if (i != 1) {
            if (i != 2) {
                if (i != 3) {
                    if (i != 4) {
                        if (i != 5) {
                            return MraidProperty.STATE_DEFAULT_PROPERTY;
                        }
                        return MraidProperty.STATE_HIDDEN_PROPERTY;
                    }
                    return MraidProperty.STATE_EXPANDED_PROPERTY;
                }
                return MraidProperty.STATE_RESIZED_PROPERTY;
            }
            return MraidProperty.STATE_DEFAULT_PROPERTY;
        }
        return MraidProperty.STATE_LOADING_PROPERTY;
    }

    public void j(String str, ValueCallback valueCallback) {
        getAdView().evaluateJavascript(str, valueCallback);
    }

    public void k(final String str) {
        if (getAdView() != null) {
            getAdView().evaluateJavascript(str, new ValueCallback<String>() {
                {
                    DTBAdMRAIDController.this = this;
                }

                @Override
                public void onReceiveValue(String str2) {
                    if (str2 == null || "null".equals(str2)) {
                        return;
                    }
                    String str3 = DTBAdMRAIDController.LOG_TAG;
                    StringBuilder c2 = o7.c("Value received:", str2, " for script ");
                    c2.append(str);
                    DtbLog.debug(str3, c2.toString());
                }
            });
        }
    }

    public void lambda$onMRAIDUnload$3() {
        getAdView().loadUrl("about:blank");
    }

    public boolean lambda$setCloseIndicatorContent$4(View view, MotionEvent motionEvent) {
        if (motionEvent.getAction() == 0) {
            evaluateJavascript(MRAID_CLOSE);
            ((ViewGroup) view.getParent()).removeView(view);
            this.closeIndicatorRegion = null;
            return true;
        }
        return true;
    }

    public void lambda$setState$2() {
        getAdView().setVisibility(8);
    }

    public void aa(DTBMRAIDCloseButtonListener dTBMRAIDCloseButtonListener) {
        this.customButtonListener = dTBMRAIDCloseButtonListener;
    }

    public void addCloseIndicator(int i, int i2) {
        removeCloseIndicator();
        addCloseIndicator(i, i2, false);
    }

    public void closeExpandedPartTwo() {
    }

    public void commandCompleted(String str) {
        evaluateJavascript(String.format("window.mraidBridge.service.acknowledgement('%s');", str));
    }

    public void createContentIndicator() {
        LinearLayout linearLayout = new LinearLayout(getAdView().getContext());
        this.closeIndicatorRegion = linearLayout;
        linearLayout.setVisibility(this.useCustomClose ? 4 : 0);
        this.closeIndicatorRegion.setOrientation(1);
    }

    public void createLoadReport() {
        String bidId = this.adView.getBidId();
        String hostname = this.adView.getHostname();
        if (bidId == null || this.loadReportSubmitted) {
            return;
        }
        DTBMetricsProcessor.getInstance().submitLatencyReportBidId(DTBMetricReport.addBid(bidId, hostname), DTBMetricsProcessor.REPORT_LOAD_LATENCY, (int) (new Date().getTime() - this.adView.getStartTime()));
        this.loadReportSubmitted = true;
    }

    public void evaluateJavascript(final String str, final ValueCallback<String> valueCallback) {
        new Handler(Looper.getMainLooper()).post(new Runnable() {
            @Override
            public final void run() {
                DTBAdMRAIDController.this.j(str, valueCallback);
            }
        });
    }

    public abstract void expand(Map<String, Object> map);

    public void fireErrorEvent(String str, String str2) {
        evaluateJavascript(String.format("window.mraidBridge.event.error('%s','%s');", str2, str));
    }

    public void fireExposureChange(int i, Rect rect) {
        int i2 = rect.right;
        if (this.jsReady) {
            h(i, rect);
        } else {
            this.lastReportedExposure = new MraidExposure(i, rect);
        }
    }

    public void fireMRAIDReadyEvent() {
        evaluateJavascript(MRAID_READY);
    }

    public void fireMRAIDSupports() {
        evaluateJavascriptMethod("window.mraidBridge.property.setSupports", MraidProperty.SUPPORTS_PROPERTY.getData());
    }

    public void firePlacementType() {
        JSONObject jSONObject = new JSONObject();
        jSONObject.put("type", getPlacementType());
        evaluateJavascriptMethod("window.mraidBridge.property.setPlacementType", jSONObject);
    }

    public void fireSizeChange(int i, int i2) {
        if (this.lastReportedSizeChangeWidth == i && this.f == i2) {
            return;
        }
        this.lastReportedSizeChangeWidth = i;
        this.f = i2;
        if (this.jsReady) {
            v(i, i2);
        }
    }

    public void fireViewableChange(boolean z) {
        Boolean bool = this.g;
        if (bool == null || bool.booleanValue() != z) {
            if (this.jsReady) {
                w(z);
            }
            this.g = Boolean.valueOf(z);
        }
    }

    public DTBAdView getAdView() {
        return this.adView;
    }

    public Context getContext() {
        return getAdView().getContext();
    }

    public String getPlacementType() {
        return "";
    }

    public void impressionFired() {
        commandCompleted(MraidFirePixelCommand.NAME);
    }

    public boolean isTwoPartExpand() {
        return this.isTwoPartExpand;
    }

    public void jsReady() {
        int i;
        commandCompleted(MraidJSReadyCommand.NAME);
        this.jsReady = true;
        Boolean bool = this.g;
        if (bool != null) {
            w(bool.booleanValue());
        }
        MraidExposure mraidExposure = this.lastReportedExposure;
        if (mraidExposure != null) {
            h(mraidExposure.percent, mraidExposure.rect);
        }
        int i2 = this.lastReportedSizeChangeWidth;
        if (i2 <= 0 || (i = this.f) <= 0) {
            return;
        }
        v(i2, i);
    }

    @Override
    public void onActivityDestroyed(Activity activity) {
    }

    @Override
    public void onActivityPaused(Activity activity) {
    }

    @Override
    public void onActivityResumed(Activity activity) {
    }

    @Override
    public void onActivityStopped(Activity activity) {
    }

    public void onAdClicked() {
    }

    public abstract void onAdLeftApplication();

    public void onAdOpened(DTBAdView dTBAdView) {
    }

    public void onAdRemoved() {
    }

    public void onLoadError(String str, int i) {
        onLoadError();
    }

    public abstract void onMRAIDClose();

    public void onMRAIDUnload() {
        new Handler(Looper.getMainLooper()).post(new p(this, 0));
    }

    public abstract void onPageLoad();

    public void onPositionChanged(Rect rect) {
        Rect rect2 = this.lastRect;
        if (rect2 == null || !rect2.equals(rect)) {
            int i = rect.right - rect.left;
            int i2 = rect.bottom - rect.top;
            Rect rect3 = this.lastRect;
            boolean z = true;
            if (rect3 != null) {
                int i3 = rect3.right - rect3.left;
                int i4 = rect3.bottom - rect3.top;
                if (Math.abs(i3 - i) <= 1 && Math.abs(i4 - i2) <= 1) {
                    z = false;
                }
            }
            setCurrentPositionProperty();
            if (z) {
                fireSizeChange(DTBAdUtil.a(i), DTBAdUtil.a(i2));
            }
            this.lastRect = rect;
        }
    }

    public abstract void onResize(Map<String, Object> map);

    public void onViewabilityChanged(boolean z) {
        DtbLog.debug("SET MRAID Visible " + z);
        fireViewableChange(z);
    }

    public void openUrl(String str) {
        PackageManager packageManager = this.adView.getContext().getPackageManager();
        try {
            Uri parse = Uri.parse(str);
            if (DtbConstants.AMAZON_MOBILE.equals(parse.getScheme()) && parse.getHost().equals("intent")) {
                String[] split = str.split("intent=");
                if (split.length > 1) {
                    String str2 = null;
                    for (int i = 1; i < split.length; i++) {
                        try {
                            String str3 = split[i];
                            if (str3.lastIndexOf("&") == str3.length() - 1) {
                                str3 = str3.substring(0, str3.length() - 1);
                            }
                            str2 = URLDecoder.decode(str3, "UTF-8");
                            getContext().startActivity(new Intent("android.intent.action.VIEW", Uri.parse(str2)));
                            onAdLeftApplication();
                            break;
                        } catch (ActivityNotFoundException unused) {
                            DtbLog.debug(ih5.a("Intent:", str2, " not found."));
                            fireErrorEvent(ak.NAME, "requested activity not found");
                        } catch (UnsupportedEncodingException unused2) {
                            DtbLog.debug("Unsupported encoding");
                        }
                    }
                }
            } else if (DTBAdViewSupportClient.MOBILE_SHOPPING_SCHEME.equals(parse.getScheme())) {
                try {
                    if (packageManager.getLaunchIntentForPackage("com.amazon.mShop.android.shopping") != null) {
                        Intent intent = new Intent("android.intent.action.VIEW");
                        intent.setData(parse);
                        AdRegistration.getCurrentActivity().startActivity(intent);
                    } else {
                        Intent intent2 = new Intent("android.intent.action.VIEW");
                        intent2.setData(parse);
                        int indexOf = str.indexOf("products/");
                        if (indexOf > 0) {
                            intent2.setData(Uri.parse("https://www.amazon.com/dp/" + str.substring(indexOf + 9)));
                            AdRegistration.getCurrentActivity().startActivity(intent2);
                        }
                    }
                    onAdLeftApplication();
                } catch (ActivityNotFoundException unused3) {
                    DtbLog.debug(LOG_TAG, "Activity not found com.amazon.mobile.shopping");
                    fireErrorEvent(ak.NAME, "mshop activity not found");
                } catch (NullPointerException unused4) {
                    DtbLog.debug(LOG_TAG, "Current activity from AdRegistration not found");
                    fireErrorEvent(ak.NAME, "current activity from AdRegistration not found");
                }
            } else if (!DTBAdViewSupportClient.MARKET_SCHEME.equals(parse.getScheme()) && !DTBAdViewSupportClient.AMAZON_SCHEME.equals(parse.getScheme())) {
                if (parse.getScheme() == null) {
                    parse = Uri.parse("https:" + str);
                }
                try {
                    getContext().startActivity(new Intent("android.intent.action.VIEW", parse));
                    onAdLeftApplication();
                } catch (Exception e2) {
                    DtbLog.error(LOG_TAG, e2.getMessage());
                    fireErrorEvent(ak.NAME, c.e("invalid url ", str));
                }
            } else {
                try {
                    try {
                        Intent intent3 = new Intent("android.intent.action.VIEW");
                        intent3.setData(parse);
                        AdRegistration.getCurrentActivity().startActivity(intent3);
                        onAdLeftApplication();
                    } catch (ActivityNotFoundException unused5) {
                        DTBAdUtil.directAppStoreLinkToBrowser(this, parse);
                    } catch (NullPointerException unused6) {
                        DtbLog.debug(LOG_TAG, "Current activity from AdRegistration not found");
                        fireErrorEvent(ak.NAME, "current activity from AdRegistration not found");
                    }
                } catch (ActivityNotFoundException unused7) {
                    DtbLog.debug(LOG_TAG, "App stores and browsers not found");
                    fireErrorEvent(ak.NAME, "app stores and browsers not found");
                } catch (NullPointerException unused8) {
                    DtbLog.debug(LOG_TAG, "Current activity from AdRegistration not found");
                    fireErrorEvent(ak.NAME, "current activity from AdRegistration not found");
                }
            }
            commandCompleted(ak.NAME);
        } catch (Exception unused9) {
            fireErrorEvent(ak.NAME, c.e("invalid url ", str));
            commandCompleted(ak.NAME);
        }
    }

    public void passLoadError() {
    }

    public void prepareMraid() {
        createLoadReport();
        this.pageLoaded = true;
        fireMaxSizeEvent();
        x();
        if (getAdView().isVisible()) {
            setCurrentPositionProperty();
        }
        fireMRAIDSupports();
        firePlacementType();
        setCurrentAppOrientation();
        setState(z());
        fireMRAIDReadyEvent();
        if (AdRegistration.isTestMode()) {
            evaluateJavascript("window.mraidBridge.service.debug('enable');");
        }
    }

    public void removeCloseIndicator() {
        ViewGroup viewGroup;
        LinearLayout linearLayout = this.closeIndicatorRegion;
        if (linearLayout == null || (viewGroup = (ViewGroup) linearLayout.getParent()) == null) {
            return;
        }
        viewGroup.removeView(this.closeIndicatorRegion);
    }

    public void setCloseIndicatorContent(View.OnTouchListener onTouchListener) {
        this.closeIndicatorRegion.setBackgroundColor(0);
        LinearLayout linearLayout = this.closeIndicatorRegion;
        int i = R.id.mraid_close_indicator;
        linearLayout.setId(i);
        ImageView imageView = new ImageView(getAdView().getContext());
        imageView.setId(i);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(DTBAdUtil.sizeToDevicePixels(24), DTBAdUtil.sizeToDevicePixels(24));
        layoutParams.setMargins(DTBAdUtil.sizeToDevicePixels(14), DTBAdUtil.sizeToDevicePixels(14), 0, 0);
        this.closeIndicatorRegion.addView(imageView, layoutParams);
        imageView.setImageDrawable(hm.b(getAdView().getContext(), R.drawable.mraid_close));
        if (onTouchListener != null) {
            this.closeIndicatorRegion.setOnTouchListener(onTouchListener);
        } else {
            this.closeIndicatorRegion.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public final boolean onTouch(View view, MotionEvent motionEvent) {
                    boolean lambda$setCloseIndicatorContent$4;
                    lambda$setCloseIndicatorContent$4 = DTBAdMRAIDController.this.lambda$setCloseIndicatorContent$4(view, motionEvent);
                    return lambda$setCloseIndicatorContent$4;
                }
            });
        }
    }

    public void setCurrentAppOrientation() {
        int b2 = DisplayUtils.b();
        String str = b2 != 1 ? b2 != 2 ? "unspecified" : ag.ORIENTATION_LANDSCAPE : ag.ORIENTATION_PORTRAIT;
        boolean isRotationLocked = DisplayUtils.isRotationLocked();
        JSONObject jSONObject = new JSONObject();
        jSONObject.put("orientation", str);
        jSONObject.put("locked", isRotationLocked);
        evaluateJavascriptMethod("window.mraidBridge.property.setCurrentAppOrientation", jSONObject);
    }

    public void setCurrentPositionProperty() {
        if (this.pageLoaded) {
            int[] iArr = new int[2];
            getAdView().getLocationOnScreen(iArr);
            setCurrentPositionProperty(iArr[0], iArr[1], getAdView().getWidth(), getAdView().getHeight());
        }
    }

    public void setState(MraidStateType mraidStateType) {
        this.state = mraidStateType;
        if (mraidStateType == MraidStateType.HIDDEN) {
            new Handler(Looper.getMainLooper()).post(new q(this, 0));
        }
        y();
    }

    public void setTwoPartExpand(boolean z) {
        this.isTwoPartExpand = z;
    }

    public void setUseCustomClose(boolean z) {
        DtbLog.debug("Set useCustomClose to " + z);
        this.useCustomClose = z;
        commandCompleted(am.NAME);
        DTBMRAIDCloseButtonListener dTBMRAIDCloseButtonListener = this.customButtonListener;
        if (dTBMRAIDCloseButtonListener != null) {
            dTBMRAIDCloseButtonListener.useCustomButtonUpdated();
        }
    }

    public void v(int i, int i2) {
        evaluateJavascript(String.format("window.mraidBridge.event.sizeChange(%d, %d);", Integer.valueOf(i), Integer.valueOf(i2)));
    }

    public void w(boolean z) {
        Object[] objArr = new Object[1];
        objArr[0] = z ? "true" : "false";
        evaluateJavascript(String.format("window.mraidBridge.event.viewableChange(%s);", objArr));
    }

    public void x() {
        SDKUtilities.SimpleSize screenSize = DTBAdUtil.getScreenSize(getAdView());
        evaluateJavascript(String.format("window.mraidBridge.property.setScreenSize({'width':%d, 'height':%d});", Integer.valueOf(screenSize.getWidth()), Integer.valueOf(screenSize.getHeight())));
    }

    public void y() {
        try {
            JSONObject formProperties = formProperties(new MraidProperty[]{i()});
            String str = LOG_TAG;
            DtbLog.debug(str, "State was changed to " + formProperties.toString() + " for controller " + this);
            evaluateJavascript(String.format("window.mraidBridge.event.stateChange(%s);", formProperties.toString()));
        } catch (JSONException e2) {
            e2.printStackTrace();
        }
    }

    public MraidStateType z() {
        return MraidStateType.DEFAULT;
    }

    private void evaluateJavascriptMethod(String str, String str2) {
        evaluateJavascript(String.format(c.e(str, "(%s);"), str2));
    }

    public void evaluateJavascript(final String str) {
        DtbLog.debug(LOG_TAG, c.e("MRAID Evaluate JSScript:", str));
        new Handler(Looper.getMainLooper()).post(new Runnable() {
            @Override
            public final void run() {
                DTBAdMRAIDController.this.k(str);
            }
        });
    }

    public void onLoadError() {
        String bidId = this.adView.getBidId();
        String hostname = this.adView.getHostname();
        if (bidId != null) {
            DTBMetricsProcessor.getInstance().e(DTBMetricReport.addBid(bidId, hostname), DTBMetricsProcessor.REPORT_LOAD_FAILURE);
        }
        passLoadError();
    }

    public void addCloseIndicator(int i, int i2, boolean z) {
        removeCloseIndicator();
        addCloseIndicator(i, i2, null, z);
    }

    public void setCurrentPositionProperty(float f, float f2) {
        if (this.pageLoaded) {
            int[] iArr = new int[2];
            getAdView().getLocationOnScreen(iArr);
            setCurrentPositionProperty(iArr[0], iArr[1], f, f2);
        }
    }

    @SuppressLint({"ResourceType"})
    public void addCloseIndicator(int i, int i2, View.OnTouchListener onTouchListener, boolean z) {
        createContentIndicator();
        DTBAdUtil.getRootView(getAdView()).addView(this.closeIndicatorRegion, DTBAdUtil.sizeToDevicePixels(50), DTBAdUtil.sizeToDevicePixels(50));
        this.closeIndicatorRegion.setX(i - DTBAdUtil.sizeToDevicePixels(50));
        this.closeIndicatorRegion.setY(i2);
        setCloseIndicatorContent(onTouchListener);
    }

    public void setCurrentPositionProperty(int i, int i2, float f, float f2) {
        if (this.pageLoaded) {
            evaluateJavascript(String.format("window.mraidBridge.property.setCurrentPosition({'xPos':%.1f, 'yPos':%.1f, 'width': %.1f, 'height': %.1f});", Float.valueOf(DTBAdUtil.a(i)), Float.valueOf(DTBAdUtil.a(i2)), Float.valueOf(DTBAdUtil.a((int) f)), Float.valueOf(DTBAdUtil.a((int) f2))));
        }
    }
}