卡特世界 v1.0.8版本的 MD5 值为:003518196b64b6d0c6e5f7f4996f7146
以下内容为反编译后的 b.java 源代码,内容仅作参考
package com.sigmob.sdk.mraid;
import android.content.Context;
import android.graphics.Rect;
import android.location.Location;
import android.net.Uri;
import android.os.Build;
import android.text.TextUtils;
import android.util.Base64;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.ConsoleMessage;
import android.webkit.JavascriptInterface;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.RenderProcessGoneDetail;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.bumptech.glide.load.Key;
import com.bytedance.sdk.openadsdk.TTAdConstant;
import com.bytedance.sdk.openadsdk.api.plugin.PluginConstants;
import com.bytedance.sdk.openadsdk.mediation.MediationConstant;
import com.czhj.sdk.common.ClientMetadata;
import com.czhj.sdk.common.Constants;
import com.czhj.sdk.common.json.JSONSerializer;
import com.czhj.sdk.common.network.Networking;
import com.czhj.sdk.common.track.AdTracker;
import com.czhj.sdk.common.utils.Md5Util;
import com.czhj.sdk.common.utils.ReflectionUtil;
import com.czhj.sdk.common.utils.TouchLocation;
import com.czhj.sdk.logger.SigmobLog;
import com.czhj.volley.toolbox.StringUtil;
import com.sigmob.sdk.base.common.aa;
import com.sigmob.sdk.base.common.ad;
import com.sigmob.sdk.base.common.ak;
import com.sigmob.sdk.base.common.m;
import com.sigmob.sdk.base.models.AppInfo;
import com.sigmob.sdk.base.models.BaseAdUnit;
import com.sigmob.sdk.base.models.ClickCommon;
import com.sigmob.sdk.base.models.CurrentAppOrientation;
import com.sigmob.sdk.base.models.ExposureChange;
import com.sigmob.sdk.base.models.LoadAdRequest;
import com.sigmob.sdk.base.models.MraidEnv;
import com.sigmob.sdk.base.models.PlacementType;
import com.sigmob.sdk.base.models.VideoItem;
import com.sigmob.sdk.base.models.ViewState;
import com.sigmob.sdk.base.models.rtb.Ad;
import com.sigmob.sdk.base.models.rtb.MaterialMeta;
import com.sigmob.sdk.base.models.rtb.RvAdSetting;
import com.sigmob.sdk.base.mta.PointEntitySigmob;
import com.sigmob.sdk.mraid.a;
import com.sigmob.sdk.mraid.i;
import com.sigmob.sdk.mraid.p;
import com.sigmob.sdk.videoAd.BaseAdActivity;
import com.sigmob.windad.WindAdError;
import com.sigmob.windad.WindAds;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.lang.ref.WeakReference;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class b {
static final String a = "mraid://open?url=";
private final BaseAdUnit b;
private final PlacementType c;
private final i d;
private String e;
private InterfaceC0354b f;
private p g;
private ak h;
private boolean i;
private final WebViewClient j;
private c k;
public static class AnonymousClass6 {
static final int[] a;
static {
int[] iArr = new int[g.values().length];
a = iArr;
try {
iArr[g.CLOSE.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
a[g.UNLOAD.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
a[g.OPENFOURELEMENTS.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
a[g.RESIZE.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
a[g.EXPAND.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
a[g.USE_CUSTOM_CLOSE.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
try {
a[g.OPEN.ordinal()] = 7;
} catch (NoSuchFieldError unused7) {
}
try {
a[g.feedBack.ordinal()] = 8;
} catch (NoSuchFieldError unused8) {
}
try {
a[g.SET_ORIENTATION_PROPERTIES.ordinal()] = 9;
} catch (NoSuchFieldError unused9) {
}
try {
a[g.PLAY_VIDEO.ordinal()] = 10;
} catch (NoSuchFieldError unused10) {
}
try {
a[g.STORE_PICTURE.ordinal()] = 11;
} catch (NoSuchFieldError unused11) {
}
try {
a[g.CREATE_CALENDAR_EVENT.ordinal()] = 12;
} catch (NoSuchFieldError unused12) {
}
try {
a[g.VPAID.ordinal()] = 13;
} catch (NoSuchFieldError unused13) {
}
try {
a[g.EXTENSION.ordinal()] = 14;
} catch (NoSuchFieldError unused14) {
}
try {
a[g.UNSPECIFIED.ordinal()] = 15;
} catch (NoSuchFieldError unused15) {
}
}
}
static class a {
private final WeakReference<b> a;
public a(b mraidBridge) {
this.a = new WeakReference<>(mraidBridge);
}
public b a() {
return this.a.get();
}
@JavascriptInterface
public String addMacro(JSONObject jsonData) {
try {
BaseAdUnit b = b();
String string = jsonData.has("key") ? jsonData.getString("key") : null;
String string2 = jsonData.has("value") ? jsonData.getString("value") : null;
if (!TextUtils.isEmpty(string) && !TextUtils.isEmpty(string2)) {
b.getMacroCommon().addMarcoKey(string, string2);
return b.a(200, "addMacro success", (Object) null);
}
return b.a(300, "key or value is empty", (Object) null);
} catch (Throwable th) {
return b.a((int) TTAdConstant.SHOW_POLL_TIME_SPLASH_DEFAULT, "addMacro add fail " + th.getMessage(), (Object) null);
}
}
public BaseAdUnit b() {
b a = a();
if (a != null) {
return a.b;
}
return null;
}
@JavascriptInterface
public String excuteRewardAdTrack(JSONObject jsonData) {
try {
BaseAdUnit b = b();
String string = jsonData.getString("event");
int b2 = com.sigmob.sdk.base.network.g.b(b, string, true);
if (b2 == 0) {
return b.a(200, "excuteRewardAdTrack success", (Object) null);
}
if (b2 == -1) {
return b.a(300, "event is empty", (Object) null);
}
if (b2 == -2) {
return b.a(300, string + " can't find in trackers", (Object) null);
}
return b.a(400, "unknown error: " + b2, (Object) null);
} catch (Throwable th) {
return b.a((int) TTAdConstant.SHOW_POLL_TIME_SPLASH_DEFAULT, "unknown error: " + th.getMessage(), (Object) null);
}
}
@JavascriptInterface
public String func(String jsonData) {
try {
JSONObject jSONObject = new JSONObject(jsonData);
String string = jSONObject.has("func") ? jSONObject.getString("func") : null;
if (TextUtils.isEmpty(string)) {
return b.a(400, "func is empty", (Object) null);
}
ReflectionUtil.MethodBuilder methodBuilder = new ReflectionUtil.MethodBuilder(this, string.replace(":", ""));
methodBuilder.addParam(JSONObject.class, jSONObject);
return (String) methodBuilder.execute();
} catch (Throwable th) {
return b.a((int) TTAdConstant.SHOW_POLL_TIME_SPLASH_DEFAULT, th.getMessage(), (Object) null);
}
}
@JavascriptInterface
public String getAppInfo(JSONObject jsonData) {
Object deviceId;
int densityDpi;
try {
JSONObject jSONObject = new JSONObject();
BaseAdUnit b = b();
if (jsonData != null && b != null && jsonData.has("arguments")) {
JSONArray jSONArray = jsonData.getJSONArray("arguments");
for (int i = 0; i < jSONArray.length(); i++) {
String string = jSONArray.getString(i);
char c = 65535;
try {
switch (string.hashCode()) {
case -1776992973:
if (string.equals("ad_source_logo")) {
c = 20;
break;
}
break;
case -1590994477:
if (string.equals("display_orientation")) {
c = ' ';
break;
}
break;
case -1581153970:
if (string.equals("settlement_price_enc")) {
c = 29;
break;
}
break;
case -1534836170:
if (string.equals("google_aid")) {
c = 3;
break;
}
break;
case -1342627961:
if (string.equals("bid_price")) {
c = 27;
break;
}
break;
case -1295727824:
if (string.equals("device_height")) {
c = '\n';
break;
}
break;
case -1152230954:
if (string.equals("ad_type")) {
c = 16;
break;
}
break;
case -1093016302:
if (string.equals("client_pixel")) {
c = '\b';
break;
}
break;
case -918718184:
if (string.equals("forbiden_parse_landingpage")) {
c = 31;
break;
}
break;
case -901870406:
if (string.equals(com.sigmob.sdk.base.h.q)) {
c = 5;
break;
}
break;
case -702722614:
if (string.equals("creative_type")) {
c = 15;
break;
}
break;
case -582019427:
if (string.equals("device_width")) {
c = '\t';
break;
}
break;
case -568274923:
if (string.equals("screen_density")) {
c = 11;
break;
}
break;
case -516987305:
if (string.equals("pkgname")) {
c = '\r';
break;
}
break;
case -376724013:
if (string.equals(PluginConstants.KEY_SDK_VERSION)) {
c = 6;
break;
}
break;
case -205033663:
if (string.equals("is_override")) {
c = 30;
break;
}
break;
case -41411609:
if (string.equals("screenangle")) {
c = 14;
break;
}
break;
case -19457365:
if (string.equals("network_type")) {
c = '\f';
break;
}
break;
case 3556:
if (string.equals("os")) {
c = 0;
break;
}
break;
case 116753:
if (string.equals("vid")) {
c = 23;
break;
}
break;
case 3062218:
if (string.equals("crid")) {
c = 24;
break;
}
break;
case 3236040:
if (string.equals("imei")) {
c = 1;
break;
}
break;
case 37109963:
if (string.equals("request_id")) {
c = 17;
break;
}
break;
case 93029116:
if (string.equals("appid")) {
c = 19;
break;
}
break;
case 549673881:
if (string.equals("camp_id")) {
c = 25;
break;
}
break;
case 672836989:
if (string.equals("os_version")) {
c = 7;
break;
}
break;
case 722989291:
if (string.equals("android_id")) {
c = 2;
break;
}
break;
case 1103406469:
if (string.equals("clienttype")) {
c = 4;
break;
}
break;
case 1127917191:
if (string.equals("cust_id")) {
c = 26;
break;
}
break;
case 1139668345:
if (string.equals("adslot_id")) {
c = 22;
break;
}
break;
case 1224358069:
if (string.equals("placement_id")) {
c = 18;
break;
}
break;
case 1437471655:
if (string.equals("expired_time")) {
c = '!';
break;
}
break;
case 1753008747:
if (string.equals("product_id")) {
c = 28;
break;
}
break;
case 1765767291:
if (string.equals("ad_source_channel")) {
c = 21;
break;
}
break;
}
switch (c) {
case 0:
jSONObject.put(string, 2);
break;
case 1:
deviceId = ClientMetadata.getInstance().getDeviceId();
jSONObject.put(string, deviceId);
break;
case 2:
deviceId = ClientMetadata.getInstance().getAndroidId();
jSONObject.put(string, deviceId);
break;
case 3:
deviceId = ClientMetadata.getInstance().getAdvertisingId();
jSONObject.put(string, deviceId);
break;
case 4:
deviceId = ClientMetadata.getDeviceModel();
jSONObject.put(string, deviceId);
break;
case 5:
deviceId = ClientMetadata.getInstance().getAppVersion();
jSONObject.put(string, deviceId);
break;
case 6:
deviceId = com.sigmob.sdk.base.h.j;
jSONObject.put(string, deviceId);
break;
case 7:
deviceId = ClientMetadata.getDeviceOsVersion();
jSONObject.put(string, deviceId);
break;
case '\b':
deviceId = String.format("%sx%s", Integer.valueOf(ClientMetadata.getInstance().getDisplayMetrics().widthPixels), Integer.valueOf(ClientMetadata.getInstance().getDisplayMetrics().heightPixels));
jSONObject.put(string, deviceId);
break;
case '\t':
deviceId = ClientMetadata.getInstance().getDeviceScreenWidthDip();
jSONObject.put(string, deviceId);
break;
case '\n':
deviceId = ClientMetadata.getInstance().getDeviceScreenHeightDip();
jSONObject.put(string, deviceId);
break;
case 11:
densityDpi = ClientMetadata.getInstance().getDensityDpi();
jSONObject.put(string, densityDpi);
break;
case '\f':
densityDpi = ClientMetadata.getInstance().getActiveNetworkType();
jSONObject.put(string, densityDpi);
break;
case '\r':
deviceId = ClientMetadata.getInstance().getAppPackageName();
jSONObject.put(string, deviceId);
break;
case 14:
densityDpi = Math.abs(ClientMetadata.getInstance().getOrientationInt().intValue() - 1) * 90;
jSONObject.put(string, densityDpi);
break;
case 15:
densityDpi = b.getCreativeType();
jSONObject.put(string, densityDpi);
break;
case 16:
densityDpi = b.getAd_type();
jSONObject.put(string, densityDpi);
break;
case 17:
deviceId = b.getRequestId();
jSONObject.put(string, deviceId);
break;
case 18:
case 22:
deviceId = b.getadslot_id();
jSONObject.put(string, deviceId);
break;
case 19:
deviceId = WindAds.sharedAds().getAppId();
jSONObject.put(string, deviceId);
break;
case 20:
deviceId = b.getAd_source_logo();
jSONObject.put(string, deviceId);
break;
case 21:
deviceId = b.getAd_source_channel();
jSONObject.put(string, deviceId);
break;
case 23:
deviceId = b.getAd().vid;
jSONObject.put(string, deviceId);
break;
case 24:
deviceId = b.getCrid();
jSONObject.put(string, deviceId);
break;
case 25:
deviceId = b.getCamp_id();
jSONObject.put(string, deviceId);
break;
case 26:
deviceId = b.getAd().cust_id;
jSONObject.put(string, deviceId);
break;
case 27:
deviceId = b.getAd().bid_price;
jSONObject.put(string, deviceId);
break;
case 28:
deviceId = b.getAd().product_id;
jSONObject.put(string, deviceId);
break;
case 29:
deviceId = b.getAd().settlement_price_enc;
jSONObject.put(string, deviceId);
break;
case 30:
deviceId = b.getAd().is_override;
jSONObject.put(string, deviceId);
break;
case 31:
deviceId = b.getAd().forbiden_parse_landingpage;
jSONObject.put(string, deviceId);
break;
case ' ':
densityDpi = b.getDisplay_orientation();
jSONObject.put(string, densityDpi);
break;
case '!':
deviceId = b.getAd().expired_time;
jSONObject.put(string, deviceId);
break;
}
} catch (Throwable unused) {
}
}
}
return b.a(200, "getAppInfo success ", jSONObject);
} catch (Throwable th) {
return b.a((int) TTAdConstant.SHOW_POLL_TIME_SPLASH_DEFAULT, "getAppInfo error: " + th.getMessage(), (Object) null);
}
}
@JavascriptInterface
public String hello(JSONObject jsonData) {
try {
return jsonData.toString();
} catch (Throwable unused) {
return null;
}
}
@JavascriptInterface
public String javascriptAddDcLog(final JSONObject jsonData) {
try {
if (jsonData == null) {
return b.a(400, "not params", (Object) null);
}
if (jsonData.has("_ac_type")) {
aa.a(jsonData.getString("_ac_type"), b(), (LoadAdRequest) null, new aa.a() {
@Override
public void a(Object pointEntityBase) {
HashMap hashMap = new HashMap();
Iterator<String> keys = jsonData.keys();
while (keys.hasNext()) {
String next = keys.next();
if (next.equalsIgnoreCase(com.sigmob.sdk.base.h.l)) {
try {
try {
JSONObject jSONObject = new JSONObject(jsonData.optString(next));
Iterator<String> keys2 = jSONObject.keys();
while (keys2.hasNext()) {
String next2 = keys2.next();
hashMap.put(next2, jSONObject.optString(next2));
}
} catch (JSONException e) {
e.printStackTrace();
}
} catch (Exception unused) {
hashMap.put(com.sigmob.sdk.base.h.l, Base64.encodeToString(jsonData.getString(com.sigmob.sdk.base.h.l).getBytes(), 2));
}
} else if (!next.equalsIgnoreCase("_ac_type")) {
try {
hashMap.put(next, jsonData.getString(next));
} catch (Throwable unused2) {
}
}
}
hashMap.put(com.sigmob.sdk.base.h.k, "js");
if (pointEntityBase instanceof PointEntitySigmob) {
((PointEntitySigmob) pointEntityBase).setOptions(hashMap);
}
}
});
return b.a(200, "add dc log success", (Object) null);
}
return b.a(300, "_ac_type is empty", (Object) null);
} catch (Throwable th) {
return b.a((int) TTAdConstant.SHOW_POLL_TIME_SPLASH_DEFAULT, th.toString(), (Object) null);
}
}
@JavascriptInterface
public String mraidJsLoaded() {
b a = a();
if (a == null || a.f == null) {
return null;
}
a.f.b();
return null;
}
@JavascriptInterface
public void postMessage(final String data) {
final b a = a();
SigmobLog.d("postMessage: raw " + data);
if (a != null) {
a.g.post(new Runnable() {
@Override
public void run() {
try {
JSONObject jSONObject = new JSONObject(data);
a.a(jSONObject.optString("event"), jSONObject.optString("subEvent"), jSONObject.optJSONObject("args"));
} catch (JSONException e) {
e.printStackTrace();
}
a.e(data);
}
});
}
}
@JavascriptInterface
public String tracking(JSONObject jsonData) {
try {
BaseAdUnit b = b();
String optString = jsonData.optString("event");
JSONArray optJSONArray = jsonData.optJSONArray("urls");
if (optJSONArray == null || optJSONArray.length() <= 0) {
return b.a(300, "urls is empty", (Object) null);
}
for (int i = 0; i < optJSONArray.length(); i++) {
ad adVar = new ad(optJSONArray.optString(i), optString, b.getRequestId());
adVar.setRetryNum(Integer.valueOf(b.getTrackingRetryNum()));
adVar.setSource("js");
com.sigmob.sdk.base.network.g.a((AdTracker) adVar, b, false);
}
return b.a(200, "tracking success", (Object) null);
} catch (Throwable th) {
return b.a((int) TTAdConstant.SHOW_POLL_TIME_SPLASH_DEFAULT, "unknown error: " + th.getMessage(), (Object) null);
}
}
}
public interface InterfaceC0354b {
void a();
void a(int width, int height, int offsetX, int offsetY, a.EnumC0353a closePosition, boolean allowOffscreen);
void a(final WindAdError error);
void a(String event, Map<String, String> params);
void a(URI uri);
void a(URI uri, int interActionType, String ext);
void a(URI uri, boolean shouldUseCustomClose) throws com.sigmob.sdk.mraid.c;
void a(boolean isVisible);
void a(boolean allowOrientationChange, k forceOrientation) throws com.sigmob.sdk.mraid.c;
boolean a(ConsoleMessage consoleMessage);
boolean a(String message, JsResult result);
void b();
void b(String event, Map<String, String> params);
void b(boolean shouldUseCustomClose);
void c();
void d();
void e();
void f();
void g();
}
public interface c {
void a(String subEvent, JSONObject args);
void b(String subEvent, JSONObject args);
void c(String subEvent, JSONObject args);
void d(String subEvent, JSONObject args);
void e(String subEvent, JSONObject args);
}
private interface d {
void a(String event, Map<String, String> params);
}
public b(BaseAdUnit adUnit, PlacementType placementType) {
this(adUnit, placementType, new i());
}
b(BaseAdUnit adUnit, PlacementType placementType, i mraidNativeCommandHandler) {
this.j = new q() {
@Override
public void onPageFinished(WebView view, String url) {
b.this.o();
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
SigmobLog.e("Error: " + description);
super.onReceivedError(view, errorCode, description, failingUrl);
}
@Override
public boolean onRenderProcessGone(final WebView view, final RenderProcessGoneDetail detail) {
b.this.a(detail);
return true;
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
if (!TextUtils.isEmpty(b.this.b.getVideoPath()) && url.endsWith(b.this.b.getVideoPath()) && b.this.b.isVideoExist()) {
try {
return new WebResourceResponse("video/mp4", Key.STRING_CHARSET_NAME, new FileInputStream(b.this.b.getVideoPath()));
} catch (FileNotFoundException e) {
SigmobLog.e(e.getMessage());
}
}
return super.shouldInterceptRequest(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return b.this.a(view, url);
}
};
this.b = adUnit;
this.c = placementType;
this.d = mraidNativeCommandHandler;
}
private int a(int value, int min, int max) throws com.sigmob.sdk.mraid.c {
if (value < min || value > max) {
throw new com.sigmob.sdk.mraid.c("Integer parameter out of range: " + value);
}
return value;
}
private a.EnumC0353a a(String text, a.EnumC0353a defaultValue) throws com.sigmob.sdk.mraid.c {
if (TextUtils.isEmpty(text)) {
return defaultValue;
}
if (text.equals("top-left")) {
return a.EnumC0353a.TOP_LEFT;
}
if (text.equals("top-right")) {
return a.EnumC0353a.TOP_RIGHT;
}
if (text.equals("center")) {
return a.EnumC0353a.CENTER;
}
if (text.equals("bottom-left")) {
return a.EnumC0353a.BOTTOM_LEFT;
}
if (text.equals("bottom-right")) {
return a.EnumC0353a.BOTTOM_RIGHT;
}
if (text.equals("top-center")) {
return a.EnumC0353a.TOP_CENTER;
}
if (text.equals("bottom-center")) {
return a.EnumC0353a.BOTTOM_CENTER;
}
throw new com.sigmob.sdk.mraid.c("Invalid close position: " + text);
}
public static String a(int code, String message, Object data) {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put(PluginConstants.KEY_ERROR_CODE, code);
if (!TextUtils.isEmpty(message)) {
jSONObject.put("message", message);
}
if (data != null) {
jSONObject.put("data", data);
}
return jSONObject.toString();
} catch (Throwable th) {
return th.getMessage();
}
}
private String a(Rect rect) {
return rect.left + "," + rect.top + "," + rect.width() + "," + rect.height();
}
public static String a(String value) {
if (value == null || value.equalsIgnoreCase("null") || value.equalsIgnoreCase("undefined")) {
return null;
}
return value;
}
private URI a(String encodedText, URI defaultValue) throws com.sigmob.sdk.mraid.c {
return encodedText == null ? defaultValue : i(encodedText);
}
private void a(g command) {
c("window.mraidbridge.nativeCallComplete(" + JSONObject.quote(command.a()) + ")");
}
public void a(g command, String message) {
c("window.mraidbridge.notifyErrorEvent(" + JSONObject.quote(command.a()) + ", " + JSONObject.quote(message) + ")");
}
public void a(String event, String subEvent, JSONObject args) {
char c2;
switch (event.hashCode()) {
case -1068318794:
if (event.equals("motion")) {
c2 = 3;
break;
}
c2 = 65535;
break;
case -720854149:
if (event.equals("motionView")) {
c2 = 4;
break;
}
c2 = 65535;
break;
case 40710404:
if (event.equals("addSubview")) {
c2 = 2;
break;
}
c2 = 65535;
break;
case 112408642:
if (event.equals("vpaid")) {
c2 = 0;
break;
}
c2 = 65535;
break;
case 1182268276:
if (event.equals("belowSubview")) {
c2 = 1;
break;
}
c2 = 65535;
break;
default:
c2 = 65535;
break;
}
if (c2 == 0) {
this.k.a(subEvent, args);
} else if (c2 == 1) {
this.k.b(subEvent, args);
} else if (c2 == 2) {
this.k.c(subEvent, args);
} else if (c2 == 3) {
this.k.d(subEvent, args);
} else if (c2 != 4) {
} else {
this.k.e(subEvent, args);
}
}
private boolean a(String text, boolean defaultValue) throws com.sigmob.sdk.mraid.c {
return text == null ? defaultValue : h(text);
}
private String b(Rect rect) {
return rect.width() + "," + rect.height();
}
private URI c(String encodedText, String defaultValue) throws com.sigmob.sdk.mraid.c {
try {
try {
return encodedText == null ? new URI(defaultValue) : new URI(encodedText);
} catch (URISyntaxException unused) {
return new URI(defaultValue);
}
} catch (URISyntaxException unused2) {
throw new com.sigmob.sdk.mraid.c("Invalid URL parameter: " + encodedText);
}
}
private int f(String text) throws com.sigmob.sdk.mraid.c {
try {
return Integer.parseInt(text, 10);
} catch (NumberFormatException unused) {
throw new com.sigmob.sdk.mraid.c("Invalid numeric parameter: " + text);
}
}
private k g(String text) throws com.sigmob.sdk.mraid.c {
if ("portrait".equals(text)) {
return k.PORTRAIT;
}
if ("landscape".equals(text)) {
return k.LANDSCAPE;
}
if (com.baidu.mobads.sdk.internal.a.a.equals(text)) {
return k.NONE;
}
throw new com.sigmob.sdk.mraid.c("Invalid orientation: " + text);
}
private boolean h(final String text) throws com.sigmob.sdk.mraid.c {
if ("true".equals(text)) {
return true;
}
if ("false".equals(text)) {
return false;
}
throw new com.sigmob.sdk.mraid.c("Invalid boolean parameter: " + text);
}
private URI i(String encodedText) throws com.sigmob.sdk.mraid.c {
if (encodedText != null) {
try {
return new URI(encodedText);
} catch (URISyntaxException unused) {
throw new com.sigmob.sdk.mraid.c("Invalid URL parameter: " + encodedText);
}
}
throw new com.sigmob.sdk.mraid.c("Parameter cannot be null");
}
public void o() {
if (this.i) {
return;
}
this.i = true;
InterfaceC0354b interfaceC0354b = this.f;
if (interfaceC0354b != null) {
interfaceC0354b.a();
}
}
public String a() {
return this.e;
}
void a(int process) {
c("bridge.notifyApkDownloadProcessEvent(" + process + ");");
}
public void a(Context context, String htmlData) {
p pVar = this.g;
if (pVar == null) {
SigmobLog.e("MRAID bridge called setContentHtml before WebView was attached");
return;
}
pVar.addJavascriptInterface(new a(this), "sigandroid");
this.i = false;
String md5 = Md5Util.md5(htmlData);
File a2 = com.sigmob.sdk.base.utils.c.a(htmlData, md5 + ".html");
if (a2 == null || TextUtils.isEmpty(a2.getAbsolutePath())) {
p pVar2 = this.g;
pVar2.loadDataWithBaseURL(Networking.getBaseUrlScheme() + "://localhost/", htmlData, "text/html", Key.STRING_CHARSET_NAME, null);
return;
}
p pVar3 = this.g;
pVar3.loadUrl("file://" + a2.getAbsolutePath());
}
public void a(Location location) {
c("mraidbridge.setLocation(" + location.getLatitude() + "," + location.getLongitude() + ",\"" + location.getProvider() + "\");");
}
void a(final RenderProcessGoneDetail detail) {
WindAdError windAdError = (detail == null || !detail.didCrash()) ? WindAdError.RENDER_PROCESS_GONE_UNSPECIFIED : WindAdError.RENDER_PROCESS_GONE_WITH_CRASH;
SigmobLog.e("handleRenderProcessGone " + windAdError.toString());
b();
InterfaceC0354b interfaceC0354b = this.f;
if (interfaceC0354b != null) {
interfaceC0354b.a(windAdError);
}
}
public void a(ValueCallback callback) {
a("mraidbridge.getPlayProgress();", callback);
}
void a(AppInfo appInfo) {
c("bridge.fireChangeEvent({" + appInfo.toString().replace("=", ":") + "});");
}
public void a(CurrentAppOrientation appOrientation) {
c("mraidbridge.fireChangeEvent({" + appOrientation.toString().replace("=", ":") + "});");
}
public void a(ExposureChange exposedProperty) {
c("mraidbridge.fireChangeEvent({" + exposedProperty.toString().replace("=", ":") + "});");
}
public void a(MraidEnv env) {
String Serialize = JSONSerializer.Serialize(env, "env", true);
c("mraidbridge.fireChangeEvent(" + Serialize + ");");
}
public void a(PlacementType placementType) {
c("mraidbridge.setPlacementType(" + JSONObject.quote(placementType.toJavascriptString()) + ")");
}
public void a(VideoItem videoItem) {
String Serialize = JSONSerializer.Serialize(videoItem, "video", false);
c("bridge.fireChangeEvent(" + Serialize + ");");
}
public void a(ViewState state) {
c("mraidbridge.setState(" + JSONObject.quote(state.toJavascriptString()) + ")");
}
public void a(Ad ad) {
String Serialize = JSONSerializer.Serialize(ad, ClickCommon.CLICK_SCENE_AD, true);
c("bridge.fireChangeEvent(" + Serialize + ");");
}
public void a(MaterialMeta materialMeta) {
String Serialize = JSONSerializer.Serialize(materialMeta, ClickCommon.CLICK_AREA_MATERIAL, true);
c("bridge.fireChangeEvent(" + Serialize + ");");
}
public void a(RvAdSetting rvAdSetting) {
String Serialize = JSONSerializer.Serialize(rvAdSetting, "rvSetting", false);
c("bridge.fireChangeEvent(" + Serialize + ");");
}
public void a(InterfaceC0354b listener) {
this.f = listener;
}
public void a(c listener) {
this.k = listener;
}
void a(final g command, Map<String, String> params) throws com.sigmob.sdk.mraid.c {
if (this.f == null) {
throw new com.sigmob.sdk.mraid.c("Invalid state to execute this command");
}
if (this.g == null) {
throw new com.sigmob.sdk.mraid.c("The current WebView is being destroyed");
}
switch (AnonymousClass6.a[command.ordinal()]) {
case 1:
this.f.d();
return;
case 2:
this.f.e();
return;
case 3:
this.f.f();
return;
case 4:
this.f.a(a(f(params.get("width")), 0, 100000), a(f(params.get("height")), 0, 100000), a(f(params.get("offsetX")), -100000, 100000), a(f(params.get("offsetY")), -100000, 100000), a(params.get("customClosePosition"), a.EnumC0353a.TOP_RIGHT), a(params.get("allowOffscreen"), true));
return;
case 5:
this.f.a(a(params.get("url"), (URI) null), a(params.get("shouldUseCustomClose"), false));
return;
case 6:
this.f.b(a(params.get("shouldUseCustomClose"), false));
return;
case 7:
this.f.a(c(params.get("url"), "https://m.sigmob.com"), 1, a(params.get(com.sigmob.sdk.base.h.l)));
return;
case 8:
this.f.g();
return;
case 9:
this.f.a(h(params.get("allowOrientationChange")), g(params.get("forceOrientation")));
return;
case 10:
this.f.a(i(params.get("uri")));
return;
case 11:
this.d.a(this.g.getContext(), i(params.get("uri")).toString(), new i.a() {
@Override
public void a(final com.sigmob.sdk.mraid.c exception) {
b.this.a(command, exception.getMessage());
}
});
return;
case 12:
this.d.a(this.g.getContext(), params);
return;
case 13:
this.f.a(params.get("event"), params);
return;
case 14:
this.f.b(params.get("event"), params);
return;
case 15:
throw new com.sigmob.sdk.mraid.c("Unspecified MRAID Javascript command");
default:
return;
}
}
public void a(final l screenMetrics) {
c("mraidbridge.setScreenSize(" + b(screenMetrics.c()) + ");mraidbridge.setMaxSize(" + b(screenMetrics.e()) + ");mraidbridge.setCurrentPosition(" + a(screenMetrics.g()) + ");mraidbridge.setDefaultPosition(" + a(screenMetrics.i()) + ")");
StringBuilder sb = new StringBuilder();
sb.append("mraidbridge.notifySizeChangeEvent(");
sb.append(b(screenMetrics.g()));
sb.append(")");
c(sb.toString());
}
public void a(p mraidWebView) {
this.g = mraidWebView;
try {
ReflectionUtil.MethodBuilder methodBuilder = new ReflectionUtil.MethodBuilder(mraidWebView.getSettings(), new String(Base64.decode(com.sigmob.sdk.base.h.C, 2)));
methodBuilder.addParam(Boolean.TYPE, true);
methodBuilder.execute();
} catch (Exception e) {
e.printStackTrace();
}
try {
ReflectionUtil.MethodBuilder methodBuilder2 = new ReflectionUtil.MethodBuilder(mraidWebView.getSettings(), new String(Base64.decode(com.sigmob.sdk.base.h.D, 2)));
methodBuilder2.addParam(Boolean.TYPE, true);
methodBuilder2.execute();
} catch (Exception e2) {
e2.printStackTrace();
}
if (Build.VERSION.SDK_INT >= 17 && this.c == PlacementType.INTERSTITIAL) {
mraidWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);
}
this.g.setScrollContainer(false);
this.g.setVerticalScrollBarEnabled(false);
this.g.setHorizontalScrollBarEnabled(false);
this.g.setBackgroundColor(0);
this.g.setAdUnit(this.b);
this.g.a((m.a) null);
this.g.setWebViewClient(this.j);
this.g.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onConsoleMessage(final ConsoleMessage consoleMessage) {
return b.this.f != null ? b.this.f.a(consoleMessage) : super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onJsAlert(final WebView view, final String url, final String message, final JsResult result) {
return b.this.f != null ? b.this.f.a(message, result) : super.onJsAlert(view, url, message, result);
}
@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue, result);
}
@Override
public void onShowCustomView(final View view, final WebChromeClient.CustomViewCallback callback) {
super.onShowCustomView(view, callback);
}
});
this.h = new ak(this.g.getContext(), this.g, this.b);
this.g.setOnTouchListener(new View.OnTouchListener() {
private MotionEvent b;
@Override
public boolean onTouch(final View v, final MotionEvent event) {
b.this.h.onTouchEvent(event);
int action = event.getAction();
if ((action == 0 || action == 1) && !v.hasFocus()) {
v.requestFocus();
}
if (event.getAction() == 1) {
b.this.e = String.format("%d,%d,%d,%d", Integer.valueOf((int) this.b.getRawX()), Integer.valueOf((int) this.b.getRawY()), Integer.valueOf((int) event.getRawX()), Integer.valueOf((int) event.getRawY()));
if (this.b == null) {
this.b = event;
}
b.this.b.getMacroCommon().updateClickMarco(this.b, event, true);
} else if (event.getAction() == 0) {
this.b = MotionEvent.obtain(event);
}
return false;
}
});
this.g.setVisibilityChangedListener(new p.a() {
@Override
public void a(final boolean isVisible) {
if (b.this.f != null) {
b.this.f.a(isVisible);
}
}
});
}
public void a(String uniqueId, int position) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("uniqueId", uniqueId);
jSONObject.put("currentTime", position / 1000.0f);
} catch (JSONException e) {
e.printStackTrace();
}
c("mraidbridge.setvdPlayToEnd(" + jSONObject + ")");
}
public void a(String uniqueId, int position, int duration) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("uniqueId", uniqueId);
jSONObject.put("currentTime", position / 1000.0f);
jSONObject.put(MediationConstant.EXTRA_DURATION, duration / 1000.0f);
} catch (JSONException e) {
e.printStackTrace();
}
c("mraidbridge.setvdPlayCurrentTime(" + jSONObject + ")");
}
public void a(String uniqueId, int duration, int width, int height) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("uniqueId", uniqueId);
jSONObject.put(MediationConstant.EXTRA_DURATION, duration / 1000.0f);
jSONObject.put("width", width);
jSONObject.put("height", height);
} catch (JSONException e) {
e.printStackTrace();
}
c("mraidbridge.setvdReadyToPlay(" + jSONObject + ")");
}
void a(String javascript, ValueCallback callback) {
if (this.g == null) {
SigmobLog.e("Attempted to inject Javascript into MRAID WebView while was not attached:\n\t" + javascript);
return;
}
if (javascript.startsWith("bridge")) {
javascript = javascript.replaceFirst("bridge", StringUtil.decode(StringUtil.s));
}
SigmobLog.d("Injecting Javascript into MRAID WebView:\n\t" + javascript);
if (Build.VERSION.SDK_INT >= 19) {
this.g.evaluateJavascript(javascript, callback);
return;
}
SigmobLog.e("Injecting Javascript into MRAID WebView:\n\t can't support less KITKAT" + javascript);
}
public void a(String x, String y) {
this.e = String.format("%s,%s,%s,%s", x, y, x, y);
this.b.getMacroCommon().updateClickMarco(x, y, x, y);
this.b.getClickCommon().down = new TouchLocation(Integer.parseInt(x), Integer.parseInt(y));
this.b.getClickCommon().up = new TouchLocation(Integer.parseInt(x), Integer.parseInt(y));
}
public void a(String uniqueId, String type, String event, HashMap<String, Object> args) {
JSONObject jSONObject = new JSONObject();
try {
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("event", event);
jSONObject2.put("uniqueId", uniqueId);
if (args != null) {
jSONObject2.put("args", new JSONObject(args));
}
jSONObject.put("onChangeFired", jSONObject2);
} catch (JSONException e) {
e.printStackTrace();
}
c("mraidbridge.fireChangeEvent(" + jSONObject + ");");
}
public void a(String event, HashMap<String, Object> args) {
JSONObject jSONObject = new JSONObject();
try {
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("event", event);
if (args != null) {
jSONObject2.put("args", new JSONObject(args));
}
jSONObject.put("onChangeEvent", jSONObject2);
} catch (JSONException e) {
e.printStackTrace();
}
c("mraidbridge.fireChangeEvent(" + jSONObject + ");");
}
public void a(boolean isViewable) {
c("mraidbridge.setIsViewable(" + isViewable + ")");
}
public void a(boolean sms, boolean telephone, boolean calendar, boolean storePicture, boolean inlineVideo, boolean vpaid, boolean location) {
c("mraidbridge.setSupports(" + sms + "," + telephone + "," + calendar + "," + storePicture + "," + inlineVideo + "," + vpaid + "," + location + ")");
}
boolean a(WebView view, final String url) {
int i;
InterfaceC0354b interfaceC0354b;
try {
new URI(url);
Uri parse = Uri.parse(url);
String scheme = parse.getScheme();
String host = parse.getHost();
if (StringUtil.decode(StringUtil.s).equals(scheme)) {
if ("failLoad".equals(host) && this.c == PlacementType.INLINE && (interfaceC0354b = this.f) != null) {
interfaceC0354b.c();
}
return true;
} else if (BaseAdActivity.c.equals(scheme)) {
g a2 = g.a(host);
try {
a(a2, ClientMetadata.getQueryParamMap(parse));
} catch (Throwable th) {
a(a2, th.getMessage());
}
a(a2);
return true;
} else {
if (!TextUtils.isEmpty(url)) {
if (url.startsWith(Constants.HTTP)) {
view.loadUrl(url);
} else {
try {
List<String> list = this.b.getAdSetting() != null ? this.b.getAdSetting().scheme_white_list : null;
if (list != null && list.size() > 0) {
while (i < list.size()) {
String str = list.get(i);
i = (url.startsWith(str) || str.equals("*")) ? 0 : i + 1;
com.sigmob.sdk.base.common.s.a(this.g.getContext(), Uri.parse(url));
return true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
return true;
}
} catch (URISyntaxException unused) {
SigmobLog.e("Invalid MRAID URL: " + url);
a(g.UNSPECIFIED, "Mraid command sent an invalid URL");
return true;
}
}
public void b() {
p pVar = this.g;
if (pVar != null) {
pVar.destroy();
this.g = null;
}
}
public void b(ValueCallback callback) {
a("mraidbridge.getAdDuration();", callback);
}
public void b(String url) {
p pVar = this.g;
if (pVar == null) {
SigmobLog.e("MRAID bridge called setContentHtml while WebView was not attached");
return;
}
pVar.addJavascriptInterface(new a(this), "sigandroid");
this.i = false;
this.g.loadUrl(url);
}
public void b(String uniqueId, int state) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("uniqueId", uniqueId);
jSONObject.put("state", state);
} catch (JSONException e) {
e.printStackTrace();
}
c("mraidbridge.setvdLoadStateChanged(" + jSONObject + ")");
}
public void b(String uniqueId, String error) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("uniqueId", uniqueId);
jSONObject.put("error", error);
} catch (JSONException e) {
e.printStackTrace();
}
c("mraidbridge.setvdPlayError(" + jSONObject + ")");
}
void c() {
c("bridge.fireChangeEvent({\"osType\":2});");
}
public void c(String javascript) {
if (this.g == null) {
SigmobLog.e("Attempted to inject Javascript into MRAID WebView while was not attached:\n\t" + javascript);
return;
}
if (javascript.startsWith("bridge")) {
javascript = javascript.replaceFirst("bridge", StringUtil.decode(StringUtil.s));
}
SigmobLog.d("Injecting Javascript into MRAID WebView:\n\t" + javascript);
if (Build.VERSION.SDK_INT >= 19) {
this.g.evaluateJavascript(javascript, null);
return;
}
p pVar = this.g;
pVar.loadUrl("javascript:" + javascript);
}
public void c(String uniqueId, int state) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("uniqueId", uniqueId);
jSONObject.put("state", state);
} catch (JSONException e) {
e.printStackTrace();
}
c("mraidbridge.setvdPlayStateChanged(" + jSONObject + ")");
}
void d() {
c("mraidbridge.fireChangeEvent({\"hostSDKVersion\":4.15.1});");
}
void d(String url) {
c("mraidbridge.fireVideoSrc(\"" + url + "\")");
}
public void e() {
c("mraidbridge.notifyReadyEvent();");
}
void e(String cmd) {
c("mraidbridge.nativeCallCompleteV2(" + JSONObject.quote(cmd) + ")");
}
public void f() {
c("bridge.notifyApkDownloadStartEvent();");
}
public void g() {
c("bridge.notifyApkDownloadFailEvent();");
}
public void h() {
c("bridge.notifyApkDownloadEndEvent();");
}
public void i() {
c("bridge.notifyApkDownloadInstalledEvent();");
}
public void j() {
c("mraidbridge.startAd();");
}
boolean k() {
ak akVar = this.h;
return akVar != null && akVar.c();
}
boolean l() {
p pVar = this.g;
return pVar != null && pVar.i();
}
boolean m() {
return this.g != null;
}
boolean n() {
return this.i;
}
}