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))));
}
}
}