PSP Dragon Emulator v1.0版本的 MD5 值为:c6379fb6b63c27b6a7d2f2f6f6f51637
以下内容为反编译后的 MetaData.java 源代码,内容仅作参考
package com.startapp.android.publish.common.metaData;
import android.content.Context;
import android.graphics.Bitmap;
import com.startapp.android.publish.common.Constants;
import com.startapp.android.publish.common.a;
import com.startapp.android.publish.common.commonUtils.g;
import com.startapp.android.publish.common.commonUtils.j;
import com.startapp.android.publish.common.commonUtils.r;
import com.startapp.android.publish.common.metaData.MetaDataRequest;
import com.startapp.android.publish.common.model.AdPreferences;
import java.io.ByteArrayOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
public class MetaData implements Serializable {
public static final boolean DEFAULT_ALWAYS_SEND_TOKEN = true;
public static final boolean DEFAULT_BT_ENABLED = false;
public static final boolean DEFAULT_COMPRESSION_ENABLED = false;
public static final boolean DEFAULT_INAPPBROWSER = true;
public static final long DEFAULT_LAST_KNOWN_LOCATION_THRESHOLD = 30;
public static final String DEFAULT_LOCATION_SOURCE = "API";
public static final boolean DEFAULT_PERIODIC_INFOEVENT_ENABLED = false;
public static final int DEFAULT_PERIODIC_INFOEVENT_INTERVAL = 360;
public static final boolean DEFAULT_PERIODIC_METADATA_ENABLED = false;
public static final int DEFAULT_PERIODIC_METADATA_INTERVAL = 360;
public static final int DEFAULT_SESSION_MAX_BACKGROUND_TIME = 1800;
public static final boolean DEFAULT_SIMPLE_TOKEN_ENABLED = true;
public static final boolean DEFAULT_WF_SCAN_ENABLED = true;
public static final String KEY_METADATA = "metaData";
private static final long serialVersionUID = 1;
private static transient c task;
@com.startapp.android.publish.common.c.e(b = b.class)
private b inAppBrowserPreLoad;
private static transient Object lock = new Object();
public static final Set<String> DEFAULT_INSTALLERS_LIST = new HashSet(Arrays.asList(Constants.j));
public static final String DEFAULT_METADATA_HOST = "https://init.startappservice.com/1.4/";
public static final String DEFAULT_AD_PLATFORM_HOST = "http://www.startappexchange.com/1.4/";
public static final String DEFAULT_PROFILE_ID = null;
public static final Set<String> DEFAULT_PRE_INSTALLED_PACKAGES = new HashSet(Arrays.asList("com.facebook.katana", "com.yandex.browser"));
private static transient MetaData instance = new MetaData();
@com.startapp.android.publish.common.c.e(a = true)
private f SimpleToken = new f();
private String metaDataHostSecured = DEFAULT_METADATA_HOST;
private String adPlatformHostGeneric = DEFAULT_AD_PLATFORM_HOST;
private int sessionMaxBackgroundTime = DEFAULT_SESSION_MAX_BACKGROUND_TIME;
private String profileId = DEFAULT_PROFILE_ID;
@com.startapp.android.publish.common.c.e(b = HashSet.class)
private Set<String> installersList = DEFAULT_INSTALLERS_LIST;
@com.startapp.android.publish.common.c.e(b = HashSet.class)
private Set<String> preInstalledPackages = DEFAULT_PRE_INSTALLED_PACKAGES;
private boolean simpleToken2 = true;
private boolean alwaysSendToken = true;
private boolean compressionEnabled = false;
private boolean btEnabled = false;
private boolean periodicMetaDataEnabled = false;
private int periodicMetaDataIntervalInMinutes = 360;
private boolean periodicInfoEventEnabled = false;
private int periodicInfoEventIntervalInMinutes = 360;
private boolean inAppBrowser = true;
private boolean SupportIABViewability = true;
private long IABDisplayImpressionDelayInSeconds = 1;
private long IABVideoImpressionDelayInSeconds = 2;
@com.startapp.android.publish.common.c.e(a = true)
private e sensorsConfig = new e();
@com.startapp.android.publish.common.c.e(a = true)
private com.startapp.android.publish.common.metaData.b btConfig = new com.startapp.android.publish.common.metaData.b();
private String assetsBaseUrl = "";
@com.startapp.android.publish.common.c.e(a = true)
private com.startapp.android.publish.common.b.a analytics = new com.startapp.android.publish.common.b.a();
@com.startapp.android.publish.common.c.e(a = true)
private LocationConfig location = new LocationConfig();
private boolean wfScanEnabled = true;
private transient boolean loading = false;
private transient boolean ready = false;
private transient List<d> metaDataListeners = new ArrayList();
private String metadataUpdateVersion = Constants.h;
public enum b {
DISABLED,
CONTENT,
FULL
}
private MetaData() {
}
public f getSimpleTokenConfig() {
return this.SimpleToken;
}
protected void setSimpleTokenConfig(f fVar) {
this.SimpleToken = fVar;
}
public static void init(Context context) {
MetaData metaData = (MetaData) g.a(context, "StartappMetadata", (Class<Object>) MetaData.class);
MetaData metaData2 = new MetaData();
if (metaData != null) {
if (metaData.isMetaDataVersionChanged()) {
r.a(metaData, metaData2);
}
metaData.initTransientFields();
instance = metaData;
} else {
instance = metaData2;
}
getInstance().applyAdPlatformProtocolToHosts();
}
public static void update(Context context, MetaData metaData) {
synchronized (lock) {
metaData.metaDataListeners = getInstance().metaDataListeners;
instance = metaData;
if (Constants.a().booleanValue()) {
j.a(3, "MetaData received:");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
com.startapp.android.publish.common.c.b bVar = new com.startapp.android.publish.common.c.b(byteArrayOutputStream);
bVar.a(metaData);
bVar.close();
j.a(3, byteArrayOutputStream.toString());
}
getInstance().applyAdPlatformProtocolToHosts();
metaData.metadataUpdateVersion = Constants.h;
g.a(context, "StartappMetadata", metaData);
j.a(3, "MetaData saved:");
getInstance().loading = false;
getInstance().ready = true;
if (getInstance().metaDataListeners != null) {
ArrayList<d> arrayList = new ArrayList(getInstance().metaDataListeners);
getInstance().metaDataListeners.clear();
for (d dVar : arrayList) {
dVar.onFinishLoadingMeta();
}
}
com.startapp.android.publish.common.f.b(context, "totalSessions", Integer.valueOf(com.startapp.android.publish.common.f.a(context, "totalSessions", (Integer) 0).intValue() + 1));
task = null;
}
}
public static void failedLoading() {
ArrayList<d> arrayList;
synchronized (lock) {
if (getInstance().metaDataListeners != null) {
arrayList = new ArrayList(getInstance().metaDataListeners);
getInstance().metaDataListeners.clear();
} else {
arrayList = null;
}
getInstance().loading = false;
}
if (arrayList != null) {
for (d dVar : arrayList) {
dVar.onFailedLoadingMeta();
}
}
}
public void loadFromServer(Context context, AdPreferences adPreferences, MetaDataRequest.a aVar, boolean z, d dVar) {
loadFromServer(context, adPreferences, aVar, z, dVar, false);
}
public void loadFromServer(Context context, AdPreferences adPreferences, MetaDataRequest.a aVar, boolean z, d dVar, boolean z2) {
if (!z && dVar != null) {
dVar.onFinishLoadingMeta();
}
synchronized (lock) {
if (getInstance().isReady() && !z2) {
if (!z || dVar == null) {
return;
}
dVar.onFinishLoadingMeta();
return;
}
if (!getInstance().isLoading() || z2) {
this.loading = true;
this.ready = false;
if (task != null) {
task.b();
}
task = new c(context, adPreferences, aVar);
task.a();
}
if (z && dVar != null) {
getInstance().addMetaDataListener(dVar);
}
}
}
public void addMetaDataListener(d dVar) {
synchronized (lock) {
this.metaDataListeners.add(dVar);
}
}
public static Object getLock() {
return lock;
}
public boolean isLoading() {
return this.loading;
}
public boolean isReady() {
return this.ready;
}
public void setReady(boolean z) {
this.ready = z;
}
private boolean isMetaDataVersionChanged() {
return !Constants.h.equals(this.metadataUpdateVersion);
}
public String getAssetsBaseUrl() {
return this.assetsBaseUrl;
}
public boolean isPeriodicMetaDataEnabled() {
return this.periodicMetaDataEnabled;
}
public void setPeriodicMetaDataEnabled(boolean z) {
this.periodicMetaDataEnabled = z;
}
public int getPeriodicMetaDataInterval() {
return this.periodicMetaDataIntervalInMinutes;
}
public void setPeriodicMetaDataInterval(int i) {
this.periodicMetaDataIntervalInMinutes = i;
}
public boolean isPeriodicInfoEventEnabled() {
return this.periodicInfoEventEnabled;
}
public void setPeriodicInfoEventEnabled(boolean z) {
this.periodicInfoEventEnabled = z;
}
public int getPeriodicInfoEventIntervalInMinutes() {
return this.periodicInfoEventIntervalInMinutes;
}
public void setPeriodicInfoEventIntervalInMinutes(int i) {
this.periodicInfoEventIntervalInMinutes = i;
}
public String getMetaDataHost() {
if (Constants.OVERRIDE_HOST != null) {
return Constants.OVERRIDE_HOST;
}
return this.metaDataHostSecured;
}
public String getAdPlatformHost() {
if (Constants.OVERRIDE_HOST != null) {
return Constants.OVERRIDE_HOST;
}
return this.adPlatformHostGeneric;
}
public long getSessionMaxBackgroundTime() {
return TimeUnit.SECONDS.toMillis(this.sessionMaxBackgroundTime);
}
public Set<String> getInstallersList() {
return this.installersList;
}
public void setInstallersList(Set<String> set) {
this.installersList = set;
}
public Set<String> getPreInstalledPackages() {
Set<String> set = this.preInstalledPackages;
if (set == null) {
set = DEFAULT_PRE_INSTALLED_PACKAGES;
}
return Collections.unmodifiableSet(set);
}
public void setPreInstalledPackages(Set<String> set) {
this.preInstalledPackages = set;
}
public boolean isSimpleToken2() {
return this.simpleToken2;
}
public void setSimpleToken2(boolean z) {
this.simpleToken2 = z;
}
public boolean isAlwaysSendToken() {
return this.alwaysSendToken;
}
public void setAlwaysSendToken(boolean z) {
this.alwaysSendToken = z;
}
public boolean isCompressionEnabled() {
return this.compressionEnabled;
}
public void setCompressionEnabled(boolean z) {
this.compressionEnabled = z;
}
public boolean isInAppBrowser() {
return r.a(256L) && this.inAppBrowser;
}
public void setInAppBrowser(boolean z) {
this.inAppBrowser = z;
}
public b getInAppBrowserPreLoad() {
return this.inAppBrowserPreLoad;
}
public void setInAppBrowserPreLoad(b bVar) {
this.inAppBrowserPreLoad = bVar;
}
public String getProfileId() {
return this.profileId;
}
public com.startapp.android.publish.common.b.a getAnalyticsConfig() {
return this.analytics;
}
public e getSensorsConfig() {
return this.sensorsConfig;
}
public com.startapp.android.publish.common.metaData.b getBluetoothConfig() {
return this.btConfig;
}
public LocationConfig getLocationConfig() {
return this.location;
}
public boolean isWfScanEnabled() {
return this.wfScanEnabled;
}
public static MetaData getInstance() {
return instance;
}
public long getIABDisplayImpressionDelayInSeconds() {
return this.IABDisplayImpressionDelayInSeconds;
}
public long getIABVideoImpressionDelayInSeconds() {
return this.IABVideoImpressionDelayInSeconds;
}
public boolean isSupportIABViewability() {
return this.SupportIABViewability;
}
public void applyAdPlatformProtocolToHosts() {
this.adPlatformHostGeneric = replaceAdProtocol(this.adPlatformHostGeneric, DEFAULT_AD_PLATFORM_HOST);
this.metaDataHostSecured = replaceAdProtocol(this.metaDataHostSecured, DEFAULT_METADATA_HOST);
}
private String replaceAdProtocol(String str, String str2) {
return str != null ? str.replace("%AdPlatformProtocol%", "1.4") : str2;
}
private void initTransientFields() {
this.loading = false;
this.ready = false;
this.metaDataListeners = new ArrayList();
}
public static void preCacheResources(Context context) {
String[] strArr;
String[] strArr2;
String[] strArr3;
String assetsBaseUrl = getInstance().getAssetsBaseUrl();
if (assetsBaseUrl.equals("")) {
return;
}
if (!com.startapp.android.publish.common.commonUtils.e.b(context, "close_button.png") && !r.a()) {
new com.startapp.android.publish.common.a(assetsBaseUrl + "close_button.png", new a(context, "close_button"), 0).a();
}
if (r.a(256L)) {
for (String str : Constants.k) {
if (!com.startapp.android.publish.common.commonUtils.e.b(context, str + ".png")) {
new com.startapp.android.publish.common.a(assetsBaseUrl + str + ".png", new a(context, str), 0).a();
}
}
}
if (r.a(64L)) {
for (String str2 : Constants.l) {
if (!com.startapp.android.publish.common.commonUtils.e.b(context, str2 + ".png")) {
new com.startapp.android.publish.common.a(assetsBaseUrl + str2 + ".png", new a(context, str2), 0).a();
}
}
if (com.startapp.android.publish.common.commonUtils.e.b(context, "logo.png")) {
return;
}
new com.startapp.android.publish.common.a(assetsBaseUrl + "logo.png", new a(context, "logo"), 0).a();
} else if (r.a(32L)) {
for (String str3 : Constants.l) {
if (!com.startapp.android.publish.common.commonUtils.e.b(context, str3 + ".png")) {
new com.startapp.android.publish.common.a(assetsBaseUrl + str3 + ".png", new a(context, str3), 0).a();
}
}
}
}
public static class a implements a.InterfaceC0143a {
Context a;
String b;
public a(Context context, String str) {
this.a = context;
this.b = str;
}
@Override
public void a(Bitmap bitmap, int i) {
if (bitmap != null) {
com.startapp.android.publish.common.commonUtils.e.a(this.a, bitmap, this.b);
}
}
}
}