Idle Egg Factory v2.1.5版本的 MD5 值为:7d2ba6677008ca521af0101bb927d72a
以下内容为反编译后的 SafeDK.java 源代码,内容仅作参考
package com.safedk.android;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import com.mbridge.msdk.foundation.download.core.DownloadCommon;
import com.safedk.android.analytics.AppLovinBridge;
import com.safedk.android.analytics.StatsCollector;
import com.safedk.android.analytics.StatsReporter;
import com.safedk.android.analytics.brandsafety.BannerFinder;
import com.safedk.android.analytics.brandsafety.BrandSafetyUtils;
import com.safedk.android.analytics.brandsafety.InterstitialFinder;
import com.safedk.android.analytics.brandsafety.b;
import com.safedk.android.analytics.brandsafety.creatives.CreativeInfoManager;
import com.safedk.android.analytics.brandsafety.f;
import com.safedk.android.analytics.brandsafety.i;
import com.safedk.android.analytics.brandsafety.m;
import com.safedk.android.analytics.reporters.CrashReporter;
import com.safedk.android.internal.DeviceData;
import com.safedk.android.internal.d;
import com.safedk.android.utils.Logger;
import com.safedk.android.utils.annotations.Api;
import com.safedk.android.utils.h;
import com.tapjoy.TapjoyConstants;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicBoolean;
import org.json.JSONObject;
public class SafeDK {
public static final String f6747a = "com.safedk";
private static final String c = "SafeDKMain";
private static final String d = "SafeDK";
private static final String e = "https://config.safedk.com/";
private static final String f = "com.safedk.AppID";
private static final String g = "com.safedk.ConfigPrefix";
private static final String h = "com.safedk.APIPrefix";
private static final String i = "com.safedk.DebugMode";
private static final String j = "com.safedk.MaximumStatsSetSize";
private static final String k = "com.safedk.AggregationThreshold";
private static String n;
private static String o;
private static String p;
private static int q;
private static boolean r;
private static boolean t;
private static Context v;
private h B;
private boolean s;
private DeviceData z;
private static final List<String> l = Arrays.asList("com.android.vending", "com.amazon.venezia", "com.sec.android.app.samsungapps");
private static boolean m = false;
private static SafeDK u = null;
private static d w = new d();
private static AtomicBoolean x = new AtomicBoolean(false);
private static AtomicBoolean F = new AtomicBoolean(false);
private static AtomicBoolean G = new AtomicBoolean(false);
private static Boolean H = false;
private static Boolean I = false;
private static Boolean J = false;
private String y = null;
private final Map<BrandSafetyUtils.AdType, b> A = new HashMap();
private AtomicBoolean C = new AtomicBoolean(false);
private int D = 0;
private int E = 0;
com.safedk.android.analytics.brandsafety.h b = null;
public static String getSdkKey() {
return "tncwodr-tEt3wb7stV2EH5qmeoq6DCCbDMHr0cBHuhrM4iXv_x0e1bQOJGPgRT6x9XtZTfTDOfykiUBFqt5KA7";
}
public static boolean a() {
return t;
}
public static synchronized boolean b() {
boolean z;
synchronized (SafeDK.class) {
z = x.get();
}
return z;
}
private SafeDK(Context context) {
Logger.d(c, "SafeDK ctor started");
v = context;
AppLovinBridge.init(context);
c();
Logger.d(c, "Before reading shared prefs");
this.z = new DeviceData(context, this.B);
}
public void c() {
Logger.d(c, "loading config from prefs");
this.B = new h(v.getSharedPreferences("SafeDKToggles", 0), m);
}
private void U() {
Logger.d(c, "init");
if (!m()) {
Iterator<b> it = this.A.values().iterator();
while (it.hasNext()) {
it.next().a((String) null);
}
this.A.clear();
}
}
private void V() {
try {
ApplicationInfo applicationInfo = v.getPackageManager().getApplicationInfo(v.getPackageName(), 128);
if (applicationInfo.metaData != null) {
a(applicationInfo);
b(applicationInfo);
c(applicationInfo);
d(applicationInfo);
} else {
Logger.e(c, "SafeDK meta data is missing from manifest file");
}
} catch (PackageManager.NameNotFoundException e2) {
Logger.d(c, "Couldn't get application's meta data");
}
}
private void a(ApplicationInfo applicationInfo) {
try {
try {
PackageInfo packageInfo = v.getPackageManager().getPackageInfo(v.getPackageName(), 0);
Logger.d(c, "package is: " + packageInfo.packageName + ", Installer Package Name is " + v.getPackageManager().getInstallerPackageName(packageInfo.packageName));
t = l.contains(v.getPackageManager().getInstallerPackageName(packageInfo.packageName));
r = (applicationInfo.flags & 2) != 0;
p = extractAppIdentifier(applicationInfo.metaData);
Uri.Builder appendQueryParameter = new Uri.Builder().appendPath("apps").appendPath("cfg").appendPath(p).appendPath(String.valueOf(packageInfo.versionCode)).appendQueryParameter(TapjoyConstants.TJC_STORE, String.valueOf(t));
if (t) {
appendQueryParameter = appendQueryParameter.appendQueryParameter(com.byfen.archiver.sdk.a.i, packageInfo.versionName);
}
String uri = appendQueryParameter.build().toString();
o = extractUrlPrefix(applicationInfo.metaData);
if (o != null && o.length() > 0) {
Logger.d(c, "apiURL Value from manifest is " + o + ". Setting new edge urls");
AppLovinBridge.receiveEdgeUrls(o, o);
} else {
Logger.d(c, "no apiURL Value in manifest");
}
q = packageInfo.versionCode;
String string = applicationInfo.metaData.getString(g);
if (string == null) {
n = getDefaultConfig() + uri;
return;
}
if (!string.endsWith(File.separator)) {
string = string + File.separator;
}
if (uri.startsWith(File.separator)) {
uri = uri.substring(1);
}
n = string + uri;
Logger.d(c, "basePrefix != null, configUrl:" + n);
} catch (PackageManager.NameNotFoundException e2) {
Logger.d(c, "Bad URL; won't update toggles");
}
} catch (Throwable th) {
Logger.e(c, "Caught exception", th);
new CrashReporter().caughtException(th);
}
}
private static String extractAppIdentifier(Bundle metaData) {
return metaData.getString(f);
}
private static String extractUrlPrefix(Bundle metaData) {
return metaData.getString(h, "https://edge.safedk.com");
}
private static String getDefaultConfig() {
return e;
}
public static String getProguardMD5() {
return "";
}
private void b(ApplicationInfo applicationInfo) {
boolean z = false;
if (w.v() && (applicationInfo.metaData.getBoolean(i, false) || Z())) {
z = true;
}
Logger.setDebugMode(z);
}
private void c(ApplicationInfo applicationInfo) {
w.a(applicationInfo.metaData.getInt(j, 5000));
}
private void d(ApplicationInfo applicationInfo) {
w.b(applicationInfo.metaData.getInt(k, 500));
}
private void W() {
this.y = UUID.randomUUID().toString();
this.B.a(this.y);
}
public static synchronized SafeDK a(Context context) {
SafeDK safeDK;
synchronized (SafeDK.class) {
Logger.d(c, "start started");
if (u == null) {
u = new SafeDK(context);
u.a(false);
if (w.v()) {
Logger.i("SafeDK", "SafeDK Device ID: " + u.y);
Logger.i("SafeDK", "SafeDK version: " + getVersion());
}
u.b(true);
} else {
Logger.d(c, "SafeDK already started");
}
safeDK = u;
}
return safeDK;
}
public static void a(Application application) {
if (getInstance().k() && Build.VERSION.SDK_INT >= 14) {
application.registerActivityLifecycleCallbacks(com.safedk.android.internal.b.getInstance());
}
}
private void X() {
try {
Logger.d(c, "setIsFirstSession started");
if (!G.get()) {
String p2 = this.B.p();
Logger.d(c, "setIsFirstSession Current safedk version : 4.8.5 , stored version is " + p2);
if (p2 == null || !a.f6748a.equals(p2)) {
Logger.d(c, "setIsFirstSession setting is_first_session to true");
this.s = true;
}
this.B.c(a.f6748a);
G.set(true);
return;
}
Logger.d(c, "setIsFirstSession already executed, value is " + this.s);
} catch (Throwable th) {
Logger.d(c, "setIsFirstSession Exception : " + th.getMessage(), th);
}
}
public boolean d() {
return this.s;
}
public static SafeDK getInstance() {
return u;
}
public int e() {
return w.a();
}
public boolean f() {
return w.b();
}
private void a(boolean z, boolean z2) {
try {
if (u == null) {
Logger.d(c, "instance is null, existing");
return;
}
u.b(false);
if (!w.v()) {
Logger.d(c, "SafeDK is disabled.");
Logger.setDebugMode(false);
com.safedk.android.internal.b.getInstance().clearBackgroundForegroundListeners();
return;
}
V();
if (Z()) {
Logger.setDebugMode(true);
}
Logger.d(c, "Configuration download completed, configurationDownloadedSuccessfully=" + z);
Logger.d(c, "configurationDownloadCompleted isMaxProcess " + z2);
Logger.d(c, "configurationDownloadCompleted isActive " + w.v() + ", packageId = " + getInstance().h().getPackageName());
if (w.v() && z2 && !F.get()) {
F.set(true);
CreativeInfoManager.e();
Y();
if (z) {
Logger.d(c, "Will attempt to load events from storage");
StatsCollector.c().d();
} else {
X();
}
X();
Logger.d(c, "Loading singletons");
f.a();
i.a();
if (this.b == null) {
this.b = com.safedk.android.analytics.brandsafety.h.a();
}
if (!this.A.containsKey(BrandSafetyUtils.AdType.INTERSTITIAL)) {
this.A.put(BrandSafetyUtils.AdType.INTERSTITIAL, new InterstitialFinder());
}
if (!this.A.containsKey(BrandSafetyUtils.AdType.BANNER) && l()) {
this.A.put(BrandSafetyUtils.AdType.BANNER, new BannerFinder());
}
if (!this.A.containsKey(BrandSafetyUtils.AdType.MREC) && l()) {
this.A.put(BrandSafetyUtils.AdType.MREC, new m());
}
}
this.C.set(true);
} catch (Throwable th) {
Logger.e(c, "Exception handling configuration event", th);
new CrashReporter().caughtException(th);
}
}
private static void Y() {
if (!x.get()) {
Logger.d(c, "Starting reporter thread");
StatsCollector.a(true);
int x2 = w.x();
int A = w.A();
StatsReporter.a();
StatsCollector.c().a(x2, com.safedk.android.internal.b.getInstance().isInBackground(), A, StatsReporter.b());
StatsCollector.a(false);
StatsCollector.b(getInstance().m());
x.set(true);
Logger.d(c, "Reporter thread started");
return;
}
Logger.d(c, "Reporter thread already initialized, skipping");
}
public void a(Bundle bundle, boolean z) {
Logger.d(c, "Updating configuration");
boolean a2 = w.a(bundle, true);
if (a2) {
a(bundle);
}
a(a2, z);
}
private void a(Bundle bundle) {
Logger.d(c, "Writing to shared preferences: " + bundle.toString());
this.B.a(bundle);
}
public static int g() {
return q;
}
public Context h() {
return v;
}
public boolean i() {
return w.w() || Z();
}
public boolean j() {
return r;
}
public boolean k() {
return w.v();
}
public boolean l() {
return w.r();
}
public boolean m() {
return !n() && w.v();
}
public boolean n() {
return this.B.b();
}
private boolean Z() {
try {
Set<String> E = w.E();
if (!E.contains("*")) {
if (!E.contains(this.y)) {
return false;
}
}
return true;
} catch (Throwable th) {
Logger.e(c, "Caught exception", th);
new CrashReporter().caughtException(th);
return false;
}
}
public static boolean o() {
return w.z();
}
public List<String> p() {
return w.s();
}
public List<String> q() {
return w.t();
}
public DeviceData r() {
return this.z;
}
public Map<BrandSafetyUtils.AdType, b> s() {
return this.A;
}
public com.safedk.android.analytics.brandsafety.a a(BrandSafetyUtils.AdType adType) {
return this.A.get(adType);
}
public InterstitialFinder t() {
return (InterstitialFinder) a(BrandSafetyUtils.AdType.INTERSTITIAL);
}
public BannerFinder u() {
return (BannerFinder) a(BrandSafetyUtils.AdType.BANNER);
}
public m v() {
return (m) a(BrandSafetyUtils.AdType.MREC);
}
public int w() {
return this.E;
}
public int x() {
return this.D;
}
public int a(String str) {
int c2;
if (str.equals(com.safedk.android.utils.f.h)) {
c2 = 16384;
} else {
c2 = w.c();
}
Logger.d(c, "getMinValidImageSize sdkPackage=" + str + ", result = " + c2);
return c2;
}
public int y() {
return w.d();
}
public float z() {
return w.e();
}
public float A() {
return w.f();
}
public boolean B() {
return w.g();
}
public int C() {
return w.h();
}
public long D() {
return w.i();
}
public int E() {
return w.j();
}
public int F() {
return w.k();
}
public int G() {
return w.l();
}
public void a(boolean z) {
Logger.d(c, "Reading configuration from shared preferences");
try {
this.y = this.B.a();
if (this.y == null) {
W();
}
Bundle e2 = this.B.e();
Logger.d(c, "configurationBundle loaded : " + e2.toString());
if (e2 != null && !e2.isEmpty()) {
Logger.d(c, "Parsing configuration from shared preferences");
w.a(e2, false);
} else {
Logger.d(c, "Configuration bundle from storage is empty");
}
a(false, z);
} catch (Throwable th) {
Logger.e(c, "Caught exception", th);
new CrashReporter().caughtException(th);
}
}
public synchronized void a(Activity activity) {
Logger.d(c, "Starting interstitial finder in activity " + activity.getClass().getName());
InterstitialFinder interstitialFinder = (InterstitialFinder) a(BrandSafetyUtils.AdType.INTERSTITIAL);
if (interstitialFinder != null) {
interstitialFinder.a(activity);
}
}
public synchronized void b(Activity activity) {
Logger.d(c, "Stopping interstitial finder in activity " + activity.getClass().getName());
InterstitialFinder interstitialFinder = (InterstitialFinder) a(BrandSafetyUtils.AdType.INTERSTITIAL);
if (interstitialFinder != null) {
interstitialFinder.c(activity);
}
}
public synchronized void b(String str) {
InterstitialFinder interstitialFinder = (InterstitialFinder) a(BrandSafetyUtils.AdType.INTERSTITIAL);
if (interstitialFinder != null) {
interstitialFinder.i(str);
}
}
public synchronized void c(Activity activity) {
if (k()) {
Logger.d(c, "onForegroundActivity " + activity.getClass().getName());
}
}
public synchronized void d(Activity activity) {
if (k()) {
Logger.d(c, "onBackgroundActivity " + activity.getClass().getName());
}
}
public String c(String str) {
JSONObject jSONObject;
String str2 = null;
Logger.d(c, "getSdkVersion getSdkVersion: " + str);
JSONObject j2 = this.B.j();
if (j2 != null) {
Logger.d(c, "getSdkVersion sdkVersionsJson=" + j2.toString());
}
try {
jSONObject = j2.getJSONObject(str);
} catch (Throwable th) {
}
if (jSONObject == null) {
Logger.d(c, "getSdkVersion sdkData is null");
return str2;
}
Logger.d(c, "getSdkVersion sdkData : " + jSONObject.toString());
str2 = jSONObject.getString("sdk_version");
Logger.d(c, "getSdkVersion version : " + str2);
Logger.d(c, "return sdk version: " + str2);
return str2;
}
public JSONObject H() {
return this.B.j();
}
@Api
public String getUserId() {
return this.y;
}
public static String getVersion() {
return a.f6748a;
}
public static boolean I() {
return a.f6748a.contains(DownloadCommon.DOWNLOAD_REPORT_RETRY_COUNT);
}
private void b(boolean z) {
boolean m2 = m();
Logger.d(c, "notifyMonitorUserActivityUpdate shouldMonitorUser is " + m2);
CreativeInfoManager.a(m2);
com.safedk.android.internal.b.setActiveMode(m2);
com.safedk.android.analytics.brandsafety.h.a(m2);
if (z) {
U();
}
}
public long J() {
return w.H();
}
public int K() {
return w.I();
}
public int L() {
return w.J();
}
public ArrayList<String> M() {
return w.K();
}
public float N() {
return w.m();
}
public float O() {
return w.n();
}
public int P() {
return w.o();
}
public int Q() {
return w.p();
}
public int R() {
return w.q();
}
public static boolean S() {
return H.booleanValue();
}
public static void T() {
H = true;
if (!b()) {
Y();
}
if (!I.booleanValue()) {
CreativeInfoManager.b();
I = true;
}
}
}