Life Simulator: Game Dev v0.6版本的 MD5 值为:ecca8c682c00d3b861fbed7f58e41c8d
以下内容为反编译后的 x.java 源代码,内容仅作参考
package com.startapp.android.publish.i;
import android.R;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.amazon.device.ads.DeviceInfo;
import com.amazon.device.ads.WebRequest;
import com.flurry.android.Constants;
import com.mopub.common.AdType;
import com.startapp.android.publish.Ad;
import com.startapp.android.publish.OverlayActivity;
import com.startapp.android.publish.d.b;
import com.startapp.android.publish.model.AdDetails;
import com.startapp.android.publish.model.AdPreferences;
import com.startapp.android.publish.model.MetaData;
import com.startapp.android.publish.model.NameValueObject;
import com.tapjoy.TapjoyConstants;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.WeakHashMap;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.json.JSONException;
import org.json.JSONObject;
public class x {
private static ProgressDialog d;
private static int f;
public static final byte[] a = {12, 31, 86, 96, 103, 10, 28, 15, 17, 28, 36, 84, 64, 82, 84, 64, 80, 80, 69, 78, 67, 82, 89, 80, 84, 73, 79, 78, 75, 69, 89, 4, 32, 18, 16, 18, 11, 53, 45, 34};
private static Map<Activity, Integer> b = new WeakHashMap();
private static ThreadPoolExecutor c = new ThreadPoolExecutor(1, 4, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue());
private static boolean e = false;
public interface a {
void a();
void a(String str);
}
public static String a() {
String str = "3.4.3";
if ("3.4.3".equals("${project.version}")) {
str = "0";
}
n.a(3, "SDK version: [" + str + "]");
return str;
}
public static void b() {
if (k()) {
com.startapp.android.publish.g.a().a("Cordova", a());
}
if (i()) {
com.startapp.android.publish.g.a().a("AdMob", f("com.startapp.android.mediation.admob"));
}
if (j()) {
com.startapp.android.publish.g.a().a("MoPub", f("com.mopub.mobileads"));
}
if (l() && !com.startapp.android.publish.g.a().j().containsKey("B4A")) {
com.startapp.android.publish.g.a().a("MoPub", "0");
}
}
private static String f(String str) {
try {
return (String) Class.forName(str + ".StartAppConstants").getField("WRAPPER_VERSION").get(null);
} catch (Exception e2) {
return "0";
}
}
private static boolean i() {
return g("com.startapp.android.mediation.admob.StartAppCustomEvent");
}
private static boolean j() {
return g("com.mopub.mobileads.StartAppCustomEventInterstitial");
}
public static boolean c() {
return com.startapp.android.publish.g.a().a("Unity") != null;
}
private static boolean k() {
return g("org.apache.cordova.CordovaPlugin");
}
private static boolean l() {
return g("anywheresoftware.b4a.BA");
}
private static boolean g(String str) {
try {
Class.forName(str);
return true;
} catch (ClassNotFoundException e2) {
return false;
} catch (Exception e3) {
return false;
}
}
public static boolean a(Activity activity) {
boolean z = activity.getTheme().obtainStyledAttributes(new int[]{R.attr.windowFullscreen}).getBoolean(0, false);
if ((activity.getWindow().getAttributes().flags & 1024) != 0) {
return true;
}
return z;
}
public static String a(Context context, String str) {
try {
return context.getResources().getString(context.getApplicationInfo().labelRes);
} catch (Resources.NotFoundException e2) {
PackageManager packageManager = context.getPackageManager();
ApplicationInfo applicationInfo = null;
try {
applicationInfo = packageManager.getApplicationInfo(context.getApplicationInfo().packageName, 0);
} catch (PackageManager.NameNotFoundException e3) {
}
return (String) (applicationInfo != null ? packageManager.getApplicationLabel(applicationInfo) : str);
}
}
public static boolean a(Context context) {
if (com.startapp.android.publish.e.OVERRIDE_HOST != null || com.startapp.android.publish.e.OVERRIDE_NETWORK.booleanValue()) {
return true;
}
if (com.startapp.android.publish.i.b.a(context, "android.permission.ACCESS_NETWORK_STATE")) {
try {
NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo();
if (activeNetworkInfo != null) {
if (activeNetworkInfo.isConnected()) {
return true;
}
}
} catch (Exception e2) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.isNetworkAvailable - system service failed", e2.getMessage(), "");
return false;
}
}
return false;
}
public static void a(SharedPreferences.Editor editor) {
com.startapp.android.publish.i.b.a(editor);
}
public static String a(String str, String str2, String str3) {
int indexOf;
int indexOf2;
if (str == null || str2 == null || str3 == null || (indexOf = str.indexOf(str2)) == -1 || (indexOf2 = str.indexOf(str3, str2.length() + indexOf)) == -1) {
return null;
}
return str.substring(str2.length() + indexOf, indexOf2);
}
public static void a(List<NameValueObject> list, String str, Object obj, boolean z) {
a(list, str, obj, z, true);
}
public static void a(List<NameValueObject> list, String str, Object obj, boolean z, boolean z2) {
if (z && obj == null) {
throw new s("Required key: [" + str + "] is missing", null);
}
if (obj != null && !obj.toString().equals("")) {
try {
NameValueObject nameValueObject = new NameValueObject();
nameValueObject.setName(str);
String obj2 = obj.toString();
if (z2) {
obj2 = URLEncoder.encode(obj2, WebRequest.CHARSET_UTF_8);
}
nameValueObject.setValue(obj2);
list.add(nameValueObject);
} catch (UnsupportedEncodingException e2) {
if (z) {
throw new s("failed encoding value: [" + obj + "]", e2);
}
}
}
}
public static void a(List<NameValueObject> list, String str, Set<String> set, boolean z) {
if (z && set == null) {
throw new s("Required key: [" + str + "] is missing", null);
}
if (set != null) {
NameValueObject nameValueObject = new NameValueObject();
nameValueObject.setName(str);
HashSet hashSet = new HashSet();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
try {
hashSet.add(URLEncoder.encode(it.next(), WebRequest.CHARSET_UTF_8));
} catch (UnsupportedEncodingException e2) {
}
}
if (z && hashSet.size() == 0) {
throw new s("failed encoding value: [" + set + "]", null);
}
nameValueObject.setValueSet(hashSet);
list.add(nameValueObject);
}
}
public static String a(Set<String> set, String str) {
if (set == null) {
throw new s("Values set cant be empty or null", null);
}
if (set.isEmpty()) {
return "";
}
StringBuilder sb = new StringBuilder();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
sb.append(it.next() + str);
}
return sb.toString().substring(0, sb.length() - 1);
}
public static String b(Context context) {
if (context.getResources().getConfiguration().orientation == 2) {
return "landscape";
}
if (context.getResources().getConfiguration().orientation == 1) {
return DeviceInfo.ORIENTATION_PORTRAIT;
}
return "undefined";
}
public static int a(Activity activity, int i, boolean z) {
if (z) {
if (!b.containsKey(activity)) {
b.put(activity, Integer.valueOf(activity.getRequestedOrientation()));
}
if (i == activity.getResources().getConfiguration().orientation) {
return com.startapp.android.publish.i.b.a(activity, i, false);
}
return com.startapp.android.publish.i.b.a(activity, i, true);
}
if (!b.containsKey(activity)) {
return -1;
}
int intValue = b.get(activity).intValue();
activity.setRequestedOrientation(intValue);
b.remove(activity);
return intValue;
}
public static void a(Activity activity, boolean z) {
a(activity, activity.getResources().getConfiguration().orientation, z);
}
public static int a(String str) {
return Integer.parseInt(str.split("&")[r0.length - 1].split("=")[1]);
}
public static void a(List<com.startapp.android.publish.d> list, List<String> list2) {
n.a(3, "in getAppPresenceDParameter()");
ArrayList arrayList = new ArrayList();
ArrayList arrayList2 = new ArrayList();
for (com.startapp.android.publish.d dVar : list) {
if (!dVar.c()) {
String h = h(dVar.a());
if (dVar.d()) {
arrayList.add("d=" + h);
} else {
arrayList2.add("d=" + h);
}
}
}
n.a(3, "appPresence tracking size = " + arrayList.size() + " normal size = " + arrayList2.size());
if (!arrayList.isEmpty()) {
list2.addAll(a(arrayList, "false", "true"));
}
if (!arrayList2.isEmpty()) {
list2.addAll(a(arrayList2, "false", "false"));
}
}
private static String h(String str) {
return str.split("tracking/adImpression[?]d=")[1];
}
private static List<String> a(List<String> list, String str, String str2) {
ArrayList arrayList = new ArrayList();
for (int i = 0; i < list.size(); i += 5) {
arrayList.add(com.startapp.android.publish.e.f + "?" + TextUtils.join("&", list.subList(i, Math.min(i + 5, list.size()))) + "&isShown=" + str + (str2 != null ? "&appPresence=" + str2 : ""));
}
n.a(3, "newUrlList size = " + arrayList.size());
return arrayList;
}
public static void a(Context context, String[] strArr, String str, String str2) {
a(context, strArr, str, 0, str2);
}
public static void a(Context context, String[] strArr, String str, int i, String str2) {
v nonImpressionReason = new v(str).setOffset(i).setNonImpressionReason(str2);
if (strArr != null) {
for (String str3 : strArr) {
if (str3 != null && !str3.equalsIgnoreCase("")) {
n.a(3, "Sending Impression: [" + str3 + "]");
a(context, str3, nonImpressionReason, false);
}
}
}
}
public static void a(Context context, String str, v vVar) {
if (str != null && !str.equalsIgnoreCase("")) {
n.a(3, "Sending Impression: [" + str + "]");
a(context, str, vVar, true);
}
}
public static void a(Context context, String[] strArr, v vVar) {
if (strArr != null) {
for (String str : strArr) {
a(context, str, vVar);
}
}
}
public static final void a(Context context, String str, String str2, v vVar, boolean z) {
if (str2 != null && !str2.equals("")) {
b(context, str2, vVar);
}
com.startapp.android.publish.g.a().b();
String str3 = null;
try {
str3 = a(str, str2);
} catch (Exception e2) {
com.startapp.android.publish.d.d.a(context, b.a.FAILED_EXTRACTING_DPARAMS, "Util.clickWithoutSmartRedirect(): Couldn't extract dparams with clickUrl " + str + " and tacking click url " + str2, e2.getMessage(), null);
n.a(6, "Cannot start activity to handle url: [" + str + "]");
}
String str4 = "InAppBrowser";
try {
if (MetaData.getInstance().isInAppBrowser() && z) {
b(context, str, str3);
} else {
str4 = "externalBrowser";
c(context, str);
}
} catch (Exception e3) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.clickWithoutSmartRedirect - Couldn't start activity for " + str4, e3.getMessage(), str3);
n.a(6, "Cannot start activity to handle url: [" + str + "]");
}
}
public static final void a(Context context, String str, String str2, String str3, v vVar, long j, boolean z) {
a(context, str, str2, str3, vVar, j, z, null);
}
public static final void a(Context context, String str, String str2, String str3, v vVar, long j, boolean z, Runnable runnable) {
com.startapp.android.publish.g.a().b();
String str4 = null;
try {
str4 = a(str, str2);
} catch (Exception e2) {
com.startapp.android.publish.d.d.a(context, b.a.FAILED_EXTRACTING_DPARAMS, "Util.clickWithSmartRedirect(): Couldn't extract dparams with clickUrl " + str + " and tacking click url " + str2, e2.getMessage(), null);
n.a(6, "Cannot start activity to handle url: [" + str + "]");
}
if (str2 != null && !str2.equals("")) {
b(context, str2, vVar);
}
a(context, str + (MetaData.getInstance().isDisableTwoClicks() ? d.a(str4) : ""), str3, str4, j, z, runnable);
}
public static void b(Context context, String str, v vVar) {
a(context, str, vVar, true);
}
private static void a(final Context context, final String str, final v vVar, final boolean z) {
if (!str.equals("")) {
c.execute(new Runnable() {
@Override
public void run() {
try {
if (z) {
com.startapp.android.publish.h.c.a(context, str + vVar.getQueryString() + d.a(x.b(str)), null);
} else {
com.startapp.android.publish.h.c.a(context, str + vVar.getQueryString(), null);
}
} catch (s e2) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.sendTrackingMessage - Error sending tracking message", e2.getMessage(), x.b(str));
n.a(6, "Error sending tracking message", e2);
}
}
});
}
}
public static void b(final Context context, final String str) {
c.execute(new Runnable() {
@Override
public void run() {
try {
com.startapp.android.publish.h.c.a(context, str, null);
} catch (s e2) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.sendTrackingMessage - Error sending tracking message", e2.getMessage(), "");
n.a(6, "Error sending tracking message", e2);
}
}
});
}
private static final void a(Context context, String str, String str2, String str3, long j, boolean z, Runnable runnable) {
l.a(context).a(new Intent("com.startapp.android.OnClickCallback"));
if (i(str)) {
if (str2 != null && !str2.equals("") && !str.toLowerCase().contains(str2.toLowerCase())) {
com.startapp.android.publish.d.d.a(context, b.a.WRONG_PACKAGE_REACHED, "Wrong package name reached", "Expected: " + str2 + " Link: " + str, str3);
}
a(context, str, str3);
if (runnable != null) {
runnable.run();
return;
}
return;
}
if (context instanceof Activity) {
a((Activity) context, true);
}
try {
final WebView webView = new WebView(context);
if (d == null && (context instanceof Activity) && !((Activity) context).isFinishing()) {
d = ProgressDialog.show(context, null, "Loading....", false, false, new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
webView.stopLoading();
}
});
d.setCancelable(false);
}
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new b(context, j, z, d, str, str2, str3, runnable));
webView.loadUrl(str);
} catch (Exception e2) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.smartRedirect - Webview failed", e2.getMessage(), str3);
a(context, str, str3);
if (runnable != null) {
runnable.run();
}
}
}
public static boolean i(String str) {
return str.startsWith("market") || str.startsWith("http://play.google.com") || str.startsWith("https://play.google.com");
}
public static final void c(Context context) {
if (context != null && (context instanceof Activity)) {
a((Activity) context, false);
}
d();
}
public static final void d() {
m();
}
private static void m() {
if (d != null) {
synchronized (d) {
if (d != null && d.isShowing()) {
try {
d.cancel();
} catch (Exception e2) {
n.a(6, "Error while cancelling progress", e2);
}
d = null;
}
}
}
}
public static class b extends WebViewClient {
private String a;
private String b;
private long e;
private boolean f;
private String g;
private ProgressDialog h;
private Runnable i;
private Context m;
private boolean c = false;
private boolean d = false;
private boolean j = false;
private boolean k = false;
private List<String> l = new ArrayList();
public b(Context context, long j, boolean z, ProgressDialog progressDialog, String str, String str2, String str3, Runnable runnable) {
this.a = "";
this.f = true;
this.m = context;
this.e = j;
this.f = z;
this.h = progressDialog;
this.a = str;
this.g = str2;
this.b = str3;
this.i = runnable;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
n.a(2, "MyWebViewClientSmartRedirect::onPageStarted - [" + url + "]");
super.onPageStarted(view, url, favicon);
if (!this.d) {
a();
this.d = true;
}
this.k = false;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
n.a(2, "MyWebViewClientSmartRedirect::shouldOverrideUrlLoading - [" + url + "]");
try {
this.a = url;
this.l.add(this.a);
if (!x.i(url.toLowerCase())) {
return false;
}
if (this.j) {
return true;
}
this.c = true;
x.c(this.m);
x.c(this.m, url);
if (this.g != null && !this.g.equals("") && !this.a.toLowerCase().contains(this.g.toLowerCase())) {
com.startapp.android.publish.d.d.a(this.m, b.a.WRONG_PACKAGE_REACHED, "Wrong package name reached", "Expected: " + this.g + " Link: " + this.a, this.b);
} else if (Math.random() * 100.0d < MetaData.getInstance().getAnalyticsConfig().e()) {
com.startapp.android.publish.d.d.a(this.m, b.a.SUCCEEDED_SMART_REDIRECT, "Smart redirect succeeded", this.l.toString(), this.b);
}
if (this.i == null) {
return true;
}
this.i.run();
return true;
} catch (Exception e) {
n.a(6, "StartAppWall.UtilExcpetion - view to attached to window - Load Progress");
return true;
}
}
@Override
public void onPageFinished(WebView view, String url) {
n.a(2, "MyWebViewClientSmartRedirect::onPageFinished - [" + url + "]");
if (!this.c && !this.j && this.a.equals(url) && url != null && !x.i(url) && (url.startsWith("http://") || url.startsWith("https://"))) {
this.k = true;
}
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
n.a(2, "MyWebViewClientSmartRedirect::onReceivedError - [" + description + "], [" + failingUrl + "]");
if (failingUrl != null && !x.i(failingUrl) && (failingUrl.startsWith("http://") || failingUrl.startsWith("https://"))) {
com.startapp.android.publish.d.d.a(this.m, b.a.FAILED_SMART_REDIRECT, Integer.toString(errorCode), failingUrl, this.b);
}
super.onReceivedError(view, errorCode, description, failingUrl);
}
private void a() {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(b.this.e);
} catch (InterruptedException e) {
}
if (!b.this.c) {
if (b.this.k) {
com.startapp.android.publish.d.d.a(b.this.m, b.a.FAILED_SMART_REDIRECT, "Timeout - Page Finished", b.this.a, b.this.b);
} else {
com.startapp.android.publish.d.d.a(b.this.m, b.a.FAILED_SMART_REDIRECT, "Timeout", b.this.a, b.this.b);
}
b.this.j = true;
x.c(b.this.m);
if (!b.this.f || !MetaData.getInstance().isInAppBrowser()) {
x.a(b.this.m, b.this.a, b.this.b);
} else {
x.b(b.this.m, b.this.a, b.this.b);
}
if (b.this.i != null) {
b.this.i.run();
}
}
}
}).start();
}
}
public static void c(Context context, String str) {
a(context, str, (String) null);
}
public static void a(Context context, String str, String str2) {
Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(str));
intent.addFlags(76021760);
if (MetaData.getInstance().isDisableInAppStore() || !(context instanceof Activity)) {
intent.addFlags(268435456);
}
a(context, intent);
try {
context.startActivity(intent);
} catch (Exception e2) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.openUrlExternally - Couldn't start activity", e2.getMessage(), str2);
n.a(6, "Cannot find activity to handle url: [" + str + "]");
}
}
public static void b(Context context, String str, String str2) {
if (i(str) || !a(context, (Class<? extends Activity>) OverlayActivity.class)) {
a(context, str, str2);
return;
}
Intent intent = new Intent(context, (Class<?>) OverlayActivity.class);
intent.addFlags(524288);
intent.addFlags(32768);
intent.setData(Uri.parse(str));
intent.putExtra("placement", AdPreferences.Placement.INAPP_BROWSER.getIndex());
intent.putExtra("activityShouldLockOrientation", false);
try {
context.startActivity(intent);
} catch (Exception e2) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.OpenAsInAppBrowser - Couldn't start activity", e2.getMessage(), str2);
n.a(6, "Cannot find activity to handle url: [" + str + "]");
}
}
public static void a(Context context, AdPreferences adPreferences) {
String a2 = j.a(context, "shared_prefs_devId", (String) null);
String a3 = j.a(context, "shared_prefs_appId", (String) null);
if (adPreferences.getPublisherId() == null) {
adPreferences.setPublisherId(a2);
}
if (adPreferences.getProductId() == null) {
if (a3 == null) {
}
adPreferences.setProductId(a3);
}
if (adPreferences.getProductId() == null && !e) {
e = true;
Log.e("StartApp", "Integration Error - App ID is missing");
}
}
public static void c(Context context, String str, String str2) {
if (str != null) {
j.b(context, "shared_prefs_devId", str.trim());
} else {
j.b(context, "shared_prefs_devId", (String) null);
}
j.b(context, "shared_prefs_appId", str2.trim());
}
public static String e() {
return "&position=" + f();
}
public static String f() {
StackTraceElement[] stackTrace = new Throwable().getStackTrace();
for (int i = 0; i < 8; i++) {
if (stackTrace[i].getMethodName().compareTo("doHome") == 0) {
return "home";
}
if (stackTrace[i].getMethodName().compareTo("onBackPressed") == 0) {
if (com.startapp.android.publish.g.a().f() || c()) {
com.startapp.android.publish.g.a().i();
return "back";
}
return AdType.INTERSTITIAL;
}
}
return AdType.INTERSTITIAL;
}
public static void a(Context context, String str, final a aVar) {
try {
final WebView webView = new WebView(context);
final Handler handler = new Handler();
if (com.startapp.android.publish.e.OVERRIDE_NETWORK.booleanValue()) {
f = 20000;
webView.getSettings().setBlockNetworkImage(false);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
} else {
f = 0;
}
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
n.a("StartAppWall.Util", 4, "onPageFinished url=[" + url + "]");
handler.removeCallbacksAndMessages(null);
handler.postDelayed(new Runnable() {
@Override
public void run() {
webView.destroy();
n.a("StartAppWall.Util", 4, "webview destroyed");
aVar.a();
}
}, x.f);
}
@Override
public void onReceivedError(final WebView view, int errorCode, final String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
n.a("StartAppWall.Util", 6, "onReceivedError failingUrl=[" + failingUrl + "], description=[" + description + "]");
handler.removeCallbacksAndMessages(null);
handler.post(new Runnable() {
@Override
public void run() {
view.destroy();
aVar.a(description);
}
});
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
n.a("StartAppWall.Util", 4, "shouldOverrideUrlLoading url=[" + url + "]");
return super.shouldOverrideUrlLoading(view, url);
}
});
a(webView, str);
n.a("StartAppWall.Util", 4, "Data loaded to webview");
handler.postDelayed(new Runnable() {
@Override
public void run() {
webView.destroy();
aVar.a();
n.a("StartAppWall.Util", 4, "webview destroyed pos 2");
}
}, TapjoyConstants.TIMER_INCREMENT);
} catch (Exception e2) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.loadHtmlToCacheWebView - webview failed", e2.getMessage(), "");
aVar.a("WebView instantiation Error");
}
}
public static void a(WebView webView, String str) {
try {
webView.loadDataWithBaseURL("http://www.startappexchange.com", str, WebRequest.CONTENT_TYPE_HTML, "utf-8", null);
} catch (Exception e2) {
n.a(6, "StartAppWall.UtilError while encoding html");
}
}
public static void d(Context context) {
j.b(context, "shared_prefs_simple_token", t.a(context));
}
public static String e(Context context) {
StringBuffer stringBuffer = new StringBuffer();
if (MetaData.getInstance().getAdInformationConfig().g().a(context)) {
stringBuffer.append(j.a(context, "shared_prefs_simple_token", ""));
}
return stringBuffer.toString();
}
public static void a(String str, String str2, String str3, Context context, v vVar) {
a(context, str3, vVar, true);
Intent launchIntentForPackage = context.getPackageManager().getLaunchIntentForPackage(str);
if (str2 != null) {
try {
JSONObject jSONObject = new JSONObject(str2);
Iterator<String> keys = jSONObject.keys();
while (keys.hasNext()) {
String valueOf = String.valueOf(keys.next());
launchIntentForPackage.putExtra(valueOf, String.valueOf(jSONObject.get(valueOf)));
}
} catch (JSONException e2) {
n.a(6, "Couldn't parse intent details json!", e2);
}
}
try {
context.startActivity(launchIntentForPackage);
} catch (Exception e3) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.handleCPEClick - Couldn't start activity", e3.getMessage(), a(str3, (String) null));
n.a(6, "Cannot find activity to handle url: [" + str3 + "]");
}
}
public static String f(Context context) {
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.HOME");
ResolveInfo resolveActivity = context.getPackageManager().resolveActivity(intent, 0);
if (resolveActivity == null || resolveActivity.activityInfo == null) {
return "";
}
String str = resolveActivity.activityInfo.packageName;
if (str != null) {
return str.toLowerCase();
}
return str;
}
public static void a(Context context, Intent intent) {
for (ResolveInfo resolveInfo : context.getPackageManager().queryIntentActivities(intent, 0)) {
if (resolveInfo.activityInfo.packageName.equalsIgnoreCase(com.startapp.android.publish.e.i)) {
intent.setComponent(new ComponentName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name));
}
}
}
public static boolean a(AdPreferences adPreferences, String str) {
Object a2 = a(adPreferences.getClass(), str, adPreferences);
if (a2 == null || !(a2 instanceof Boolean)) {
return false;
}
return ((Boolean) a2).booleanValue();
}
public static String b(AdPreferences adPreferences, String str) {
Object a2 = a(adPreferences.getClass(), str, adPreferences);
if (a2 == null || !(a2 instanceof String)) {
return null;
}
return (String) a2;
}
public static Ad.AdType c(AdPreferences adPreferences, String str) {
Object a2 = a(adPreferences.getClass(), str, adPreferences);
if (a2 == null || !(a2 instanceof Ad.AdType)) {
return null;
}
return (Ad.AdType) a2;
}
public static void a(AdPreferences adPreferences, String str, boolean z) {
a(adPreferences.getClass(), str, adPreferences, Boolean.valueOf(z));
}
public static void a(AdPreferences adPreferences, String str, Ad.AdType adType) {
a(adPreferences.getClass(), str, adPreferences, adType);
}
private static Object a(Class cls, String str, Object obj) {
try {
Field declaredField = cls.getDeclaredField(str);
declaredField.setAccessible(true);
return declaredField.get(obj);
} catch (IllegalAccessException e2) {
n.a("StartAppWall.Util", 6, e2.getLocalizedMessage());
return null;
} catch (IllegalArgumentException e3) {
n.a("StartAppWall.Util", 6, e3.getLocalizedMessage());
return null;
} catch (NoSuchFieldException e4) {
n.a("StartAppWall.Util", 6, e4.getLocalizedMessage());
return null;
}
}
private static void a(Class cls, String str, Object obj, Object obj2) {
try {
Field declaredField = cls.getDeclaredField(str);
declaredField.setAccessible(true);
declaredField.set(obj, obj2);
} catch (IllegalAccessException e2) {
e2.printStackTrace();
} catch (IllegalArgumentException e3) {
e3.printStackTrace();
} catch (NoSuchFieldException e4) {
e4.printStackTrace();
}
}
public static String b(String str) {
return a(str, (String) null);
}
public static String a(String str, String str2) {
String str3;
if (str2 != null && !str2.equals("")) {
str3 = str2.split("[?&]d=")[1];
} else {
str3 = str.split("[?&]d=")[1];
}
return str3.split("[?&]")[0];
}
public static String[] a(com.startapp.android.publish.f fVar) {
if (fVar instanceof com.startapp.android.publish.a.c) {
return ((com.startapp.android.publish.a.c) fVar).getTrackingUrls();
}
if (fVar instanceof com.startapp.android.publish.a.e) {
return a(((com.startapp.android.publish.a.e) fVar).b());
}
return new String[0];
}
public static String[] a(List<AdDetails> list) {
ArrayList arrayList = new ArrayList();
if (list != null) {
Iterator<AdDetails> it = list.iterator();
while (it.hasNext()) {
arrayList.add(it.next().getTrackingUrl());
}
}
return (String[]) arrayList.toArray(new String[0]);
}
public static String g(Context context) {
return context.getPackageManager().getInstallerPackageName(context.getPackageName());
}
public static void a(WebView webView, String str, Object... objArr) {
if (webView != null) {
StringBuilder sb = new StringBuilder();
sb.append(str);
sb.append("(");
if (objArr != null) {
for (int i = 0; i < objArr.length; i++) {
if (objArr[i] instanceof String) {
sb.append("\"").append(objArr[i]).append("\"");
} else {
sb.append(objArr[i]);
}
if (i < objArr.length - 1) {
sb.append(",");
}
}
}
sb.append(")");
n.a("StartAppWall.Util", 3, "runJavascript: " + sb.toString());
webView.loadUrl("javascript:" + sb.toString());
}
}
public static Class<?> a(Context context, Class<? extends Activity> cls, Class<? extends Activity> cls2) {
if (a(context, cls) || !a(context, cls2)) {
return cls;
}
Log.w("StartAppWall.Util", "Expected activity " + cls.getName() + " is missing from AndroidManifest.xml");
return cls2;
}
public static boolean a(Context context, Class<? extends Activity> cls) {
try {
for (ActivityInfo activityInfo : context.getPackageManager().getPackageInfo(context.getPackageName(), 1).activities) {
if (activityInfo.name.equals(cls.getName())) {
return true;
}
}
} catch (Exception e2) {
}
return false;
}
public static boolean h(Context context) {
try {
ActivityInfo[] activityInfoArr = context.getPackageManager().getPackageInfo(context.getPackageName(), 1).activities;
int i = 0;
boolean z = false;
while (!z) {
try {
if (i < activityInfoArr.length) {
int i2 = i + 1;
ActivityInfo activityInfo = activityInfoArr[i];
if (activityInfo.name.equals("com.startapp.android.publish.AppWallActivity") || activityInfo.name.equals("com.startapp.android.publish.OverlayActivity") || activityInfo.name.equals("com.startapp.android.publish.FullScreenActivity")) {
z = (activityInfo.flags & 512) == 0;
}
i = i2;
} else {
return z;
}
} catch (PackageManager.NameNotFoundException e2) {
return z;
} catch (Exception e3) {
return z;
}
}
return z;
} catch (PackageManager.NameNotFoundException e4) {
return false;
} catch (Exception e5) {
return false;
}
}
public static boolean g() {
return c("com.google.android.gms.ads.identifier.AdvertisingIdClient");
}
public static boolean c(String str) {
try {
Class.forName(str);
return true;
} catch (ClassNotFoundException e2) {
return false;
}
}
public static String i(Context context) {
try {
return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e2) {
return null;
} catch (Exception e3) {
return null;
}
}
public static int j(Context context) {
try {
return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
} catch (PackageManager.NameNotFoundException e2) {
return 0;
} catch (Exception e3) {
return 0;
}
}
public static String d(String str) {
int hashCode = a.hashCode();
long hashCode2 = str.getBytes().hashCode();
if (hashCode > hashCode2) {
long j = ((hashCode2 * 29509871405L) + 11) & 16777215;
int i = (int) (j >>> 17);
if (hashCode >= 1000) {
int i2 = i % hashCode;
} else if (((-hashCode) & hashCode) == j) {
}
}
try {
return Base64.encodeToString(a(a(str.getBytes(), new String(a).substring(a[5], a[33]).getBytes()), new String(a).substring(a[35], a[1]).getBytes()), 0);
} catch (Exception e2) {
return str;
}
}
public static String a(String str, Context context) {
String str2;
try {
try {
str2 = context.getPackageManager().getApplicationInfo(context.getPackageName(), 128).sourceDir;
} catch (PackageManager.NameNotFoundException e2) {
str2 = null;
}
if (str2 != null) {
return b(str2, str);
}
return null;
} catch (Exception e3) {
com.startapp.android.publish.d.d.a(context, b.a.EXCEPTION, "Util.getApkHash - system service failed", e3.getMessage(), "");
return null;
}
}
public static String b(String str, String str2) {
StringBuilder sb = new StringBuilder();
try {
FileInputStream fileInputStream = new FileInputStream(str);
byte[] bArr = new byte[1024];
MessageDigest messageDigest = MessageDigest.getInstance(str2);
int i = 0;
while (i != -1) {
i = fileInputStream.read(bArr);
if (i > 0) {
messageDigest.update(bArr, 0, i);
}
}
fileInputStream.close();
for (byte b2 : messageDigest.digest()) {
sb.append(Integer.toString((b2 & Constants.UNKNOWN) + 256, 16).substring(1));
}
} catch (Exception e2) {
}
String sb2 = sb.toString();
if (sb2 != null) {
return sb2.toUpperCase();
}
return null;
}
public static byte[] a(byte[] bArr, byte[] bArr2) {
byte[] bArr3 = new byte[bArr.length];
for (int i = 0; i < bArr.length; i++) {
bArr3[i] = (byte) (bArr[i] ^ bArr2[i % bArr2.length]);
}
return bArr3;
}
public static byte[] a(byte[] bArr, int i) {
byte[] bArr2 = new byte[Math.min(bArr.length, i)];
for (int i2 = 0; i2 < bArr.length; i2++) {
int i3 = i2 % i;
bArr2[i3] = (byte) (bArr2[i3] ^ bArr[i2]);
}
return bArr2;
}
public static long a(File file, long j) {
return com.startapp.android.publish.i.b.a(file, j);
}
public static boolean a(Context context, String str, int i) {
try {
return context.getPackageManager().getPackageInfo(str, 128).versionCode >= i;
} catch (PackageManager.NameNotFoundException e2) {
return false;
} catch (Exception e3) {
return false;
}
}
public static String a(Context context, int i) {
try {
Bitmap decodeResource = BitmapFactory.decodeResource(context.getResources(), i);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
decodeResource.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
return Base64.encodeToString(byteArrayOutputStream.toByteArray(), 2);
} catch (Exception e2) {
return "";
}
}
}