VegeFruits v7.1版本的 MD5 值为:2ff167dfba698c783e879938fe00b9ce
以下内容为反编译后的 q.java 源代码,内容仅作参考
package com.startapp.android.publish.common.commonUtils;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Handler;
import android.os.SystemClock;
import android.support.v4.app.NotificationCompat;
import android.util.Base64;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.facebook.ads.AudienceNetworkActivity;
import com.ironsource.sdk.utils.Constants;
import com.startapp.android.publish.GeneratedConstants;
import com.startapp.android.publish.common.Constants;
import com.startapp.android.publish.common.metaData.InfoEventService;
import com.startapp.android.publish.common.metaData.MetaData;
import com.startapp.android.publish.common.metaData.PeriodicMetaDataService;
import com.startapp.android.publish.common.model.AdPreferences;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.WeakHashMap;
import org.json.JSONObject;
public class q {
protected static int b;
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> c = new WeakHashMap();
private static boolean d = false;
public interface a {
void a();
void a(String str);
}
public static boolean a() {
return new BigInteger(Constants.i, 10).intValue() == 0;
}
public static String b() {
String str = GeneratedConstants.INAPP_VERSION;
if (GeneratedConstants.INAPP_VERSION.equals("${version}")) {
str = "0";
}
j.a(3, "SDK version: [" + str + Constants.RequestParameters.RIGHT_BRACKETS);
return str;
}
public static String c() {
String str = GeneratedConstants.INAPP_FLAVOR;
if (GeneratedConstants.INAPP_FLAVOR.equals("${flavor}")) {
str = GeneratedConstants.INAPP_FLAVOR;
}
j.a(3, "SDK Flavor: [" + str + Constants.RequestParameters.RIGHT_BRACKETS);
return str;
}
public static boolean a(long j) {
String str = com.startapp.android.publish.common.Constants.i;
return str.equals("${flavor}") || (new BigInteger(str, 2).longValue() & j) != 0;
}
public static boolean d() {
return a(2L) || a(16L) || a(32L) || a(4L);
}
public static boolean a(Context context) {
if (com.startapp.android.publish.common.Constants.OVERRIDE_HOST != null || com.startapp.android.publish.common.Constants.OVERRIDE_NETWORK.booleanValue()) {
return true;
}
if (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 e) {
com.startapp.android.publish.common.b.e.a(context, com.startapp.android.publish.common.b.c.EXCEPTION, "Util.isNetworkAvailable - system service failed", e.getMessage(), "");
return false;
}
}
return false;
}
public static void a(SharedPreferences.Editor editor) {
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 long e() {
return SystemClock.elapsedRealtime() + (MetaData.getInstance().getPeriodicMetaDataInterval() * 60000);
}
public static long f() {
return SystemClock.elapsedRealtime() + (MetaData.getInstance().getPeriodicInfoEventIntervalInMinutes() * 60000);
}
public static void b(Context context) {
a(context, Long.valueOf(e()));
}
public static void a(Context context, Long l) {
j.a("StartAppWall.Util", 3, "setMetaDataPeriodicAlarm executes");
if (!com.startapp.android.publish.common.g.a(context, "periodicMetadataPaused", (Boolean) false).booleanValue() && MetaData.getInstance().isPeriodicMetaDataEnabled()) {
a(context, (Class<?>) PeriodicMetaDataService.class, l.longValue(), "periodicMetadataTriggerTime");
}
}
public static void c(Context context) {
a(context, f());
}
public static void a(Context context, long j) {
j.a("StartAppWall.Util", 3, "setInfoEventPeriodicAlarm executes");
if (!com.startapp.android.publish.common.g.a(context, "periodicInfoEventPaused", (Boolean) false).booleanValue() && MetaData.getInstance().isPeriodicInfoEventEnabled()) {
a(context, (Class<?>) InfoEventService.class, j, "periodicInfoEventTriggerTime");
}
}
private static void a(Context context, Intent intent, AlarmManager alarmManager) {
PendingIntent service = PendingIntent.getService(context, 0, intent, 134217728);
if (PendingIntent.getService(context, 0, intent, 268435456) != null) {
alarmManager.cancel(service);
service.cancel();
}
}
private static void a(Context context, Class<?> cls, long j, String str) {
try {
AlarmManager alarmManager = (AlarmManager) context.getSystemService(NotificationCompat.CATEGORY_ALARM);
Intent intent = new Intent(context, cls);
a(context, intent, alarmManager);
PendingIntent service = PendingIntent.getService(context, 0, intent, 134217728);
com.startapp.android.publish.common.g.b(context, str, Long.valueOf(j));
alarmManager.set(3, j, service);
} catch (Exception e) {
com.startapp.android.publish.common.b.e.a(context, com.startapp.android.publish.common.b.c.EXCEPTION, "Util.setPeriodicAlarm - failed setting alarm " + (cls != null ? cls.getSimpleName() : ""), e.getMessage(), "");
}
}
public static void a(Context context, Class<?> cls) {
a(context, new Intent(context, cls), (AlarmManager) context.getSystemService(NotificationCompat.CATEGORY_ALARM));
}
public static String a(Set<String> set, String str) {
if (set == null) {
throw new com.startapp.android.publish.common.e("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 d(Context context) {
if (context.getResources().getConfiguration().orientation == 2) {
return "landscape";
}
if (context.getResources().getConfiguration().orientation == 1) {
return "portrait";
}
return "undefined";
}
public static int a(Activity activity, int i, boolean z) {
if (z) {
if (!c.containsKey(activity)) {
c.put(activity, Integer.valueOf(activity.getRequestedOrientation()));
}
if (i == activity.getResources().getConfiguration().orientation) {
return b.a(activity, i, false);
}
return b.a(activity, i, true);
}
if (!c.containsKey(activity)) {
return -1;
}
int intValue = c.get(activity).intValue();
activity.setRequestedOrientation(intValue);
c.remove(activity);
return intValue;
}
public static void a(Activity activity, boolean z) {
a(activity, activity.getResources().getConfiguration().orientation, z);
}
private static List<Field> a(Class cls) {
return a((List<Field>) new LinkedList(), (Class<?>) cls);
}
private static List<Field> a(List<Field> list, Class<?> cls) {
list.addAll(Arrays.asList(cls.getDeclaredFields()));
if (cls.getSuperclass() != null) {
a(list, (Class<?>) cls.getSuperclass());
}
return list;
}
public static <T> void a(T t, T t2) {
try {
for (Field field : a(t2.getClass())) {
int modifiers = field.getModifiers();
if (!Modifier.isTransient(modifiers) && !Modifier.isStatic(modifiers)) {
field.setAccessible(true);
if (field.get(t) == null) {
field.set(t, field.get(t2));
}
}
}
} catch (Exception e) {
j.a(3, "Util.mergeDefaultValues failed: " + e.getMessage());
}
}
public static void a(Context context, AdPreferences adPreferences) {
String a2 = com.startapp.android.publish.common.g.a(context, "shared_prefs_devId", (String) null);
String a3 = com.startapp.android.publish.common.g.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 && !d) {
d = true;
Log.e("StartApp", "Integration Error - App ID is missing");
}
}
public static void a(Context context, String str, String str2) {
if (str != null) {
com.startapp.android.publish.common.g.b(context, "shared_prefs_devId", str.trim());
} else {
com.startapp.android.publish.common.g.b(context, "shared_prefs_devId", (String) null);
}
com.startapp.android.publish.common.g.b(context, "shared_prefs_appId", str2.trim());
}
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.common.Constants.OVERRIDE_NETWORK.booleanValue()) {
b = 25000;
webView.getSettings().setBlockNetworkImage(false);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
} else {
b = 0;
}
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
j.a("StartAppWall.Util", 4, "onPageFinished url=[" + url + Constants.RequestParameters.RIGHT_BRACKETS);
handler.removeCallbacksAndMessages(null);
handler.postDelayed(new Runnable() {
@Override
public void run() {
webView.destroy();
j.a("StartAppWall.Util", 4, "webview destroyed");
aVar.a();
}
}, q.b);
}
@Override
public void onReceivedError(final WebView view, int errorCode, final String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
j.a("StartAppWall.Util", 6, "onReceivedError failingUrl=[" + failingUrl + "], description=[" + description + Constants.RequestParameters.RIGHT_BRACKETS);
handler.removeCallbacksAndMessages(null);
handler.post(new Runnable() {
@Override
public void run() {
view.destroy();
aVar.a(description);
}
});
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
j.a("StartAppWall.Util", 4, "shouldOverrideUrlLoading url=[" + url + Constants.RequestParameters.RIGHT_BRACKETS);
return super.shouldOverrideUrlLoading(view, url);
}
});
a(webView, str);
j.a("StartAppWall.Util", 4, "Data loaded to webview");
handler.postDelayed(new Runnable() {
@Override
public void run() {
webView.destroy();
aVar.a();
j.a("StartAppWall.Util", 4, "webview destroyed pos 2");
}
}, 25000L);
} catch (Exception e) {
com.startapp.android.publish.common.b.e.a(context, com.startapp.android.publish.common.b.c.EXCEPTION, "Util.loadHtmlToCacheWebView - webview failed", e.getMessage(), "");
aVar.a("WebView instantiation Error");
}
}
public static void a(WebView webView, String str) {
try {
webView.loadDataWithBaseURL("http://www.startappexchange.com", str, "text/html", AudienceNetworkActivity.WEBVIEW_ENCODING, null);
} catch (Exception e) {
j.a(6, "StartAppWall.UtilError while encoding html");
}
}
public static String e(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 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 void a(AdPreferences adPreferences, String str, boolean z) {
a(adPreferences.getClass(), str, adPreferences, Boolean.valueOf(z));
}
public static Object a(Class cls, String str, Object obj) {
try {
Field declaredField = cls.getDeclaredField(str);
declaredField.setAccessible(true);
return declaredField.get(obj);
} catch (IllegalAccessException e) {
j.a("StartAppWall.Util", 6, e.getLocalizedMessage());
return null;
} catch (IllegalArgumentException e2) {
j.a("StartAppWall.Util", 6, e2.getLocalizedMessage());
return null;
} catch (NoSuchFieldException e3) {
j.a("StartAppWall.Util", 6, e3.getLocalizedMessage());
return null;
}
}
public 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 e) {
e.printStackTrace();
} catch (IllegalArgumentException e2) {
e2.printStackTrace();
} catch (NoSuchFieldException e3) {
e3.printStackTrace();
}
}
public static String f(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(")");
j.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 (b(context, cls) || !b(context, cls2)) {
return cls;
}
Log.w("StartAppWall.Util", "Expected activity " + cls.getName() + " is missing from AndroidManifest.xml");
return cls2;
}
public static boolean b(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 e) {
}
return false;
}
public static boolean g(Context context) {
try {
for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : ((ActivityManager) context.getSystemService("activity")).getRunningAppProcesses()) {
if (runningAppProcessInfo.importance == 100 && runningAppProcessInfo.processName.equals(context.getPackageName())) {
return true;
}
}
} catch (Exception e) {
}
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.adsCommon.OverlayActivity") || activityInfo.name.equals("com.startapp.android.publish.FullScreenActivity")) {
z = (activityInfo.flags & 512) == 0;
}
i = i2;
} else {
return z;
}
} catch (PackageManager.NameNotFoundException e) {
return z;
} catch (Exception e2) {
return z;
}
}
return z;
} catch (PackageManager.NameNotFoundException e3) {
return false;
} catch (Exception e4) {
return false;
}
}
public static boolean g() {
return a("com.google.android.gms.ads.identifier.AdvertisingIdClient");
}
public static boolean a(String str) {
try {
Class.forName(str);
return true;
} catch (ClassNotFoundException e) {
return false;
}
}
public static String i(Context context) {
try {
return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
return null;
} catch (Exception e2) {
return null;
}
}
public static int j(Context context) {
try {
return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
} catch (PackageManager.NameNotFoundException e) {
return 0;
} catch (Exception e2) {
return 0;
}
}
public static String b(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 e) {
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 e) {
str2 = null;
}
if (str2 != null) {
return a(str2, str);
}
return null;
} catch (Exception e2) {
com.startapp.android.publish.common.b.e.a(context, com.startapp.android.publish.common.b.c.EXCEPTION, "Util.getApkHash - system service failed", e2.getMessage(), "");
return null;
}
}
public static String a(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 & 255) + 256, 16).substring(1));
}
} catch (Exception e) {
}
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 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 e) {
return false;
} catch (Exception e2) {
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 e) {
return "";
}
}
public static <T> T a(String str, Class<T> cls) {
com.startapp.android.publish.common.c.a aVar;
try {
aVar = new com.startapp.android.publish.common.c.a(str);
try {
T t = (T) aVar.a(cls, (JSONObject) null);
if (t == null) {
throw new com.startapp.android.publish.common.e();
}
if (aVar != null) {
try {
aVar.close();
} catch (IOException e) {
}
}
return t;
} catch (Throwable th) {
th = th;
if (aVar != null) {
try {
aVar.close();
} catch (IOException e2) {
}
}
throw th;
}
} catch (Throwable th2) {
th = th2;
aVar = null;
}
}
}