my follower v1.0版本的 MD5 值为:a6c33a154f0b0a15fabfd7267ad5288a
以下内容为反编译后的 MetaData.java 源代码,内容仅作参考
package com.startapp.sdk.adsbase.remoteconfig;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Build;
import com.startapp.common.Constants;
import com.startapp.common.a;
import com.startapp.sdk.adsbase.AdsConstants;
import com.startapp.sdk.adsbase.consent.ConsentConfig;
import com.startapp.sdk.adsbase.infoevents.AnalyticsConfig;
import com.startapp.sdk.adsbase.infoevents.InfoEventCategory;
import com.startapp.sdk.adsbase.j;
import com.startapp.sdk.adsbase.j.u;
import com.startapp.sdk.adsbase.model.AdPreferences;
import com.startapp.sdk.adsbase.remoteconfig.MetaDataRequest;
import com.startapp.sdk.insight.NetworkTestsMetaData;
import com.startapp.sdk.triggeredlinks.TriggeredLinksMetadata;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
public class MetaData implements Serializable {
private static final Object a;
private static Set<String> b = null;
private static String c = null;
private static String d = null;
private static int[] e = null;
private static Set<String> f = null;
private static volatile MetaData g = null;
private static com.startapp.sdk.adsbase.remoteconfig.a j = null;
private static final long serialVersionUID = 1;
private String adPlatformBannerHostSecured;
private String adPlatformNativeHostSecured;
private String adPlatformOverlayHostSecured;
private String adPlatformReturnHostSecured;
private String adPlatformSplashHostSecured;
@com.startapp.common.parser.d(a = true)
private ConsentConfig consentDetails;
@com.startapp.common.parser.d(a = true)
private NetworkDiagnosticConfig netDiag;
@com.startapp.common.parser.d(a = true)
private RscMetadata rsc;
@com.startapp.common.parser.d(a = true)
private TriggeredLinksMetadata triggeredLinks;
@com.startapp.common.parser.d(a = true)
private SimpleTokenConfig SimpleToken = new SimpleTokenConfig();
public String metaDataHostSecured = c;
public String adPlatformHostSecured = d;
public String trackDownloadHost = d;
private int sessionMaxBackgroundTime = 1800;
private String profileId = null;
@com.startapp.common.parser.d(b = HashSet.class)
private Set<String> installersList = b;
@com.startapp.common.parser.d(b = HashSet.class)
private Set<String> preInstalledPackages = f;
private boolean simpleToken2 = true;
private boolean alwaysSendToken = true;
private boolean isToken1Mandatory = true;
private boolean compressionEnabled = false;
private boolean periodicMetaDataEnabled = false;
private int periodicMetaDataIntervalInMinutes = 360;
private boolean periodicInfoEventEnabled = false;
private int[] periodicEventIntMin = e;
private int periodicThresholdMin = 5;
private boolean inAppBrowser = true;
private boolean SupportIABViewability = true;
private long IABDisplayImpressionDelayInSeconds = serialVersionUID;
private long IABVideoImpressionDelayInSeconds = 2;
private long userAgentDelayInSeconds = 5;
private boolean userAgentEnabled = true;
@com.startapp.common.parser.d(a = true)
private SensorsConfig sensorsConfig = new SensorsConfig();
@com.startapp.common.parser.d(a = true)
private BluetoothConfig btConfig = new BluetoothConfig();
private String assetsBaseUrlSecured = "";
@com.startapp.common.parser.d(b = HashSet.class)
private Set<Integer> invalidForRetry = com.startapp.sdk.adsbase.d.c.a;
private int notVisibleBannerReloadInterval = 3600;
@com.startapp.common.parser.d(a = true)
public AnalyticsConfig analytics = new AnalyticsConfig();
@com.startapp.common.parser.d(a = true)
private LocationConfig location = new LocationConfig();
private transient boolean h = false;
private transient boolean i = false;
private transient List<b> k = new ArrayList();
private String metadataUpdateVersion = AdsConstants.c;
private boolean dns = false;
private int stopAutoLoadAmount = 3;
private int stopAutoLoadPreCacheAmount = 3;
private boolean trueNetEnabled = false;
private boolean webViewSecured = true;
private boolean omSdkEnabled = false;
private boolean chromeCustomeTabsInternal = true;
private boolean chromeCustomeTabsExternal = true;
private boolean disableSendAdvertisingId = false;
@com.startapp.common.parser.d(a = true)
private NetworkTestsMetaData networkTests = new NetworkTestsMetaData();
static {
MetaData.class.getSimpleName();
a = new Object();
b = new HashSet(Arrays.asList(Constants.a));
c = "https://adsmetadata.startappservice.com/1.5/";
d = "https://req.startappservice.com/1.5/";
e = new int[]{60, 60, 240};
f = new HashSet(Arrays.asList("com.facebook.katana", "com.yandex.browser"));
g = new MetaData();
}
public final NetworkDiagnosticConfig a() {
return this.netDiag;
}
public final RscMetadata b() {
return this.rsc;
}
public final NetworkTestsMetaData c() {
return this.networkTests;
}
public final TriggeredLinksMetadata d() {
return this.triggeredLinks;
}
public final SimpleTokenConfig e() {
return this.SimpleToken;
}
public final ConsentConfig f() {
return this.consentDetails;
}
public static void a(Context context) {
MetaData metaData = (MetaData) com.startapp.common.b.d.a(context, "StartappMetadata");
MetaData metaData2 = new MetaData();
if (metaData != null) {
boolean a2 = u.a(metaData, metaData2);
if (!(!AdsConstants.c.equals(metaData.metadataUpdateVersion)) && a2) {
new com.startapp.sdk.adsbase.infoevents.e(InfoEventCategory.ERROR).f("metadata_null").a(context);
}
metaData.h = false;
metaData.i = false;
metaData.k = new ArrayList();
g = metaData;
} else {
g = metaData2;
}
g.R();
}
public static void a(Context context, MetaData metaData, MetaDataRequest.RequestReason requestReason, boolean z) {
boolean z2 = z;
ArrayList arrayList = null;
synchronized (a) {
if (g.k != null) {
arrayList = new ArrayList(g.k);
g.k.clear();
}
metaData.k = g.k;
metaData.R();
metaData.metadataUpdateVersion = AdsConstants.c;
com.startapp.common.b.d.b(context, "StartappMetadata", metaData);
metaData.h = false;
metaData.i = true;
if (!u.b(g, metaData)) {
z2 = true;
}
g = metaData;
if (u.h(context)) {
try {
j.b(context, "totalSessions", Integer.valueOf(j.a(context, "totalSessions", (Integer) 0).intValue() + 1));
} catch (Throwable th) {
new com.startapp.sdk.adsbase.infoevents.e(th).a(context);
}
}
j = null;
}
if (arrayList != null) {
Iterator it = arrayList.iterator();
while (it.hasNext()) {
((b) it.next()).a(requestReason, z2);
}
}
}
public static void g() {
ArrayList arrayList = null;
synchronized (a) {
if (g.k != null) {
arrayList = new ArrayList(g.k);
g.k.clear();
}
g.h = false;
}
if (arrayList != null) {
Iterator it = arrayList.iterator();
while (it.hasNext()) {
((b) it.next()).a();
}
}
}
public static boolean b(Context context) {
return context.getFileStreamPath("StartappMetadata").exists();
}
public final void a(Context context, AdPreferences adPreferences, MetaDataRequest.RequestReason requestReason, boolean z, b bVar, boolean z2) {
if (!z && bVar != null) {
bVar.a(requestReason, false);
}
synchronized (a) {
if (!g.i || z2) {
if (!g.h || z2) {
this.h = true;
this.i = false;
if (j != null) {
j.b();
}
com.startapp.sdk.adsbase.remoteconfig.a aVar = new com.startapp.sdk.adsbase.remoteconfig.a(context, adPreferences, requestReason);
j = aVar;
aVar.a();
}
if (z && bVar != null) {
g.a(bVar);
}
return;
}
if (z && bVar != null) {
bVar.a(requestReason, false);
}
}
}
public final void a(b bVar) {
synchronized (a) {
this.k.add(bVar);
}
}
public static Object h() {
return a;
}
public final boolean i() {
return this.i;
}
public final void j() {
this.i = true;
}
public final String k() {
return this.assetsBaseUrlSecured != null ? this.assetsBaseUrlSecured : "";
}
public final boolean l() {
return this.periodicMetaDataEnabled;
}
public final int m() {
return this.periodicMetaDataIntervalInMinutes;
}
public final boolean n() {
return this.periodicInfoEventEnabled;
}
public final int c(Context context) {
int i;
if (this.periodicEventIntMin == null || this.periodicEventIntMin.length < 3) {
this.periodicEventIntMin = e;
}
if (com.startapp.common.b.b.a(context, "android.permission.ACCESS_FINE_LOCATION")) {
int i2 = this.periodicEventIntMin[0];
i = i2;
if (i2 <= 0) {
i = e[0];
}
} else if (com.startapp.common.b.b.a(context, "android.permission.ACCESS_COARSE_LOCATION")) {
int i3 = this.periodicEventIntMin[1];
i = i3;
if (i3 <= 0) {
i = e[1];
}
} else {
i = this.periodicEventIntMin[2];
}
return i;
}
public final int o() {
return this.periodicThresholdMin;
}
public final Set<Integer> p() {
return this.invalidForRetry;
}
public final String q() {
return this.adPlatformHostSecured != null ? this.adPlatformHostSecured : d;
}
public final String a(AdPreferences.Placement placement) {
switch (placement) {
case INAPP_BANNER:
return this.adPlatformBannerHostSecured != null ? this.adPlatformBannerHostSecured : q();
case INAPP_OVERLAY:
return this.adPlatformOverlayHostSecured != null ? this.adPlatformOverlayHostSecured : q();
case INAPP_NATIVE:
return this.adPlatformNativeHostSecured != null ? this.adPlatformNativeHostSecured : q();
case INAPP_RETURN:
return this.adPlatformReturnHostSecured != null ? this.adPlatformReturnHostSecured : q();
case INAPP_SPLASH:
return this.adPlatformSplashHostSecured != null ? this.adPlatformSplashHostSecured : q();
default:
return q();
}
}
public final long s() {
return TimeUnit.SECONDS.toMillis(this.sessionMaxBackgroundTime);
}
public final Set<String> t() {
return this.installersList;
}
public final Set<String> u() {
Set<String> set = this.preInstalledPackages;
Set<String> set2 = set;
if (set == null) {
set2 = f;
}
return Collections.unmodifiableSet(set2);
}
public final boolean v() {
return this.alwaysSendToken;
}
public final boolean w() {
return this.isToken1Mandatory;
}
public final boolean x() {
return this.compressionEnabled;
}
public final boolean y() {
return u.a(256L) && this.inAppBrowser;
}
public final String z() {
return this.profileId;
}
public final SensorsConfig A() {
return this.sensorsConfig;
}
public final BluetoothConfig B() {
return this.btConfig;
}
public final LocationConfig C() {
return this.location;
}
public final int D() {
return this.notVisibleBannerReloadInterval;
}
public static MetaData E() {
return g;
}
public final long F() {
return this.IABDisplayImpressionDelayInSeconds;
}
public final long G() {
return this.IABVideoImpressionDelayInSeconds;
}
public final long H() {
return this.userAgentDelayInSeconds;
}
public final boolean I() {
return this.userAgentEnabled;
}
public final boolean J() {
return this.SupportIABViewability;
}
private void R() {
this.adPlatformHostSecured = a(this.adPlatformHostSecured, d);
this.metaDataHostSecured = a(this.metaDataHostSecured, c);
this.adPlatformBannerHostSecured = a(this.adPlatformBannerHostSecured, (String) null);
this.adPlatformSplashHostSecured = a(this.adPlatformSplashHostSecured, (String) null);
this.adPlatformReturnHostSecured = a(this.adPlatformReturnHostSecured, (String) null);
this.adPlatformOverlayHostSecured = a(this.adPlatformOverlayHostSecured, (String) null);
this.adPlatformNativeHostSecured = a(this.adPlatformNativeHostSecured, (String) null);
}
public final boolean K() {
return !this.dns;
}
public final int L() {
return this.stopAutoLoadAmount;
}
public final int M() {
return this.stopAutoLoadPreCacheAmount;
}
public final boolean N() {
return this.chromeCustomeTabsInternal;
}
public final boolean O() {
return this.chromeCustomeTabsExternal;
}
public final boolean P() {
return this.disableSendAdvertisingId;
}
private static String a(String str, String str2) {
return str != null ? str.replace("%AdPlatformProtocol%", "1.5") : str2;
}
public static void a(Context context, String str) {
if (str != null && !str.equals("")) {
if (!com.startapp.sdk.adsbase.j.a.a(context, "close_button", ".png") && !u.a()) {
new com.startapp.common.a(str + "close_button.png", new a(context, "close_button"), 0).a();
}
if (u.a(256L)) {
String[] strArr = AdsConstants.f;
for (int i = 0; i < 6; i++) {
String str2 = strArr[i];
if (!com.startapp.sdk.adsbase.j.a.a(context, str2, ".png")) {
new com.startapp.common.a(str + str2 + ".png", new a(context, str2), 0).a();
}
}
}
if (u.a(64L)) {
String[] strArr2 = AdsConstants.g;
for (int i2 = 0; i2 < 3; i2++) {
String str3 = strArr2[i2];
if (!com.startapp.sdk.adsbase.j.a.a(context, str3, ".png")) {
new com.startapp.common.a(str + str3 + ".png", new a(context, str3), 0).a();
}
}
if (!com.startapp.sdk.adsbase.j.a.a(context, "logo", ".png")) {
new com.startapp.common.a(str + "logo.png", new a(context, "logo"), 0).a();
return;
}
return;
}
if (u.a(32L)) {
String[] strArr3 = AdsConstants.g;
for (int i3 = 0; i3 < 3; i3++) {
String str4 = strArr3[i3];
if (!com.startapp.sdk.adsbase.j.a.a(context, str4, ".png")) {
new com.startapp.common.a(str + str4 + ".png", new a(context, str4), 0).a();
}
}
}
}
}
public final boolean Q() {
return this.omSdkEnabled;
}
public static class a implements a.InterfaceC0032a {
private Context a;
private String b;
public a(Context context, String str) {
this.a = context;
this.b = str;
}
@Override
public final void a(Bitmap bitmap, int i) {
if (bitmap != null) {
com.startapp.sdk.adsbase.j.a.a(this.a, bitmap, this.b, ".png");
}
}
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
MetaData metaData = (MetaData) obj;
return this.sessionMaxBackgroundTime == metaData.sessionMaxBackgroundTime && this.simpleToken2 == metaData.simpleToken2 && this.alwaysSendToken == metaData.alwaysSendToken && this.isToken1Mandatory == metaData.isToken1Mandatory && this.compressionEnabled == metaData.compressionEnabled && this.periodicMetaDataEnabled == metaData.periodicMetaDataEnabled && this.periodicMetaDataIntervalInMinutes == metaData.periodicMetaDataIntervalInMinutes && this.periodicInfoEventEnabled == metaData.periodicInfoEventEnabled && this.periodicThresholdMin == metaData.periodicThresholdMin && this.inAppBrowser == metaData.inAppBrowser && this.SupportIABViewability == metaData.SupportIABViewability && this.IABDisplayImpressionDelayInSeconds == metaData.IABDisplayImpressionDelayInSeconds && this.IABVideoImpressionDelayInSeconds == metaData.IABVideoImpressionDelayInSeconds && this.userAgentDelayInSeconds == metaData.userAgentDelayInSeconds && this.userAgentEnabled == metaData.userAgentEnabled && this.notVisibleBannerReloadInterval == metaData.notVisibleBannerReloadInterval && this.dns == metaData.dns && this.stopAutoLoadAmount == metaData.stopAutoLoadAmount && this.stopAutoLoadPreCacheAmount == metaData.stopAutoLoadPreCacheAmount && this.trueNetEnabled == metaData.trueNetEnabled && this.webViewSecured == metaData.webViewSecured && this.omSdkEnabled == metaData.omSdkEnabled && this.chromeCustomeTabsInternal == metaData.chromeCustomeTabsInternal && this.chromeCustomeTabsExternal == metaData.chromeCustomeTabsExternal && this.disableSendAdvertisingId == metaData.disableSendAdvertisingId && u.b(this.SimpleToken, metaData.SimpleToken) && u.b(this.consentDetails, metaData.consentDetails) && u.b(this.metaDataHostSecured, metaData.metaDataHostSecured) && u.b(this.adPlatformHostSecured, metaData.adPlatformHostSecured) && u.b(this.trackDownloadHost, metaData.trackDownloadHost) && u.b(this.adPlatformBannerHostSecured, metaData.adPlatformBannerHostSecured) && u.b(this.adPlatformSplashHostSecured, metaData.adPlatformSplashHostSecured) && u.b(this.adPlatformReturnHostSecured, metaData.adPlatformReturnHostSecured) && u.b(this.adPlatformOverlayHostSecured, metaData.adPlatformOverlayHostSecured) && u.b(this.adPlatformNativeHostSecured, metaData.adPlatformNativeHostSecured) && u.b(this.profileId, metaData.profileId) && u.b(this.installersList, metaData.installersList) && u.b(this.preInstalledPackages, metaData.preInstalledPackages) && Arrays.equals(this.periodicEventIntMin, metaData.periodicEventIntMin) && u.b(this.sensorsConfig, metaData.sensorsConfig) && u.b(this.btConfig, metaData.btConfig) && u.b(this.assetsBaseUrlSecured, metaData.assetsBaseUrlSecured) && u.b(this.invalidForRetry, metaData.invalidForRetry) && u.b(this.analytics, metaData.analytics) && u.b(this.location, metaData.location) && u.b(this.metadataUpdateVersion, metaData.metadataUpdateVersion) && u.b(this.networkTests, metaData.networkTests) && u.b(this.triggeredLinks, metaData.triggeredLinks) && u.b(this.rsc, metaData.rsc) && u.b(this.netDiag, metaData.netDiag);
}
public int hashCode() {
return u.a(this.SimpleToken, this.consentDetails, this.metaDataHostSecured, this.adPlatformHostSecured, this.trackDownloadHost, this.adPlatformBannerHostSecured, this.adPlatformSplashHostSecured, this.adPlatformReturnHostSecured, this.adPlatformOverlayHostSecured, this.adPlatformNativeHostSecured, Integer.valueOf(this.sessionMaxBackgroundTime), this.profileId, this.installersList, this.preInstalledPackages, Boolean.valueOf(this.simpleToken2), Boolean.valueOf(this.alwaysSendToken), Boolean.valueOf(this.isToken1Mandatory), Boolean.valueOf(this.compressionEnabled), Boolean.valueOf(this.periodicMetaDataEnabled), Integer.valueOf(this.periodicMetaDataIntervalInMinutes), Boolean.valueOf(this.periodicInfoEventEnabled), this.periodicEventIntMin, Integer.valueOf(this.periodicThresholdMin), Boolean.valueOf(this.inAppBrowser), Boolean.valueOf(this.SupportIABViewability), Long.valueOf(this.IABDisplayImpressionDelayInSeconds), Long.valueOf(this.IABVideoImpressionDelayInSeconds), Long.valueOf(this.userAgentDelayInSeconds), Boolean.valueOf(this.userAgentEnabled), this.sensorsConfig, this.btConfig, this.assetsBaseUrlSecured, this.invalidForRetry, Integer.valueOf(this.notVisibleBannerReloadInterval), this.analytics, this.location, this.metadataUpdateVersion, Boolean.valueOf(this.dns), Integer.valueOf(this.stopAutoLoadAmount), Integer.valueOf(this.stopAutoLoadPreCacheAmount), Boolean.valueOf(this.trueNetEnabled), Boolean.valueOf(this.webViewSecured), Boolean.valueOf(this.omSdkEnabled), Boolean.valueOf(this.chromeCustomeTabsInternal), Boolean.valueOf(this.chromeCustomeTabsExternal), Boolean.valueOf(this.disableSendAdvertisingId), this.networkTests, this.triggeredLinks, this.rsc, this.netDiag);
}
public final String r() {
String str;
int indexOf;
String q = g.q();
int i = Build.VERSION.SDK_INT;
boolean z = this.webViewSecured;
String str2 = q;
if (i > 26 || z) {
str = "https";
} else {
str = "http";
}
if (!str2.startsWith(str + "://") && (indexOf = str2.indexOf(58)) != -1) {
str2 = str + str2.substring(indexOf);
}
return str2;
}
}