mirror of
https://github.com/roytam1/UXP.git
synced 2026-06-15 21:09:35 +00:00
128 lines
3.8 KiB
Java
128 lines
3.8 KiB
Java
package com.adjust.sdk;
|
|
|
|
import android.content.Context;
|
|
|
|
/**
|
|
* Created by pfms on 06/11/14.
|
|
*/
|
|
public class AdjustConfig {
|
|
Context context;
|
|
String appToken;
|
|
String environment;
|
|
LogLevel logLevel;
|
|
String sdkPrefix;
|
|
Boolean eventBufferingEnabled;
|
|
String defaultTracker;
|
|
OnAttributionChangedListener onAttributionChangedListener;
|
|
String referrer;
|
|
long referrerClickTime;
|
|
Boolean knownDevice;
|
|
|
|
public static final String ENVIRONMENT_SANDBOX = "sandbox";
|
|
public static final String ENVIRONMENT_PRODUCTION = "production";
|
|
|
|
public AdjustConfig(Context context, String appToken, String environment) {
|
|
if (!isValid(context, appToken, environment)) {
|
|
return;
|
|
}
|
|
|
|
this.context = context.getApplicationContext();
|
|
this.appToken = appToken;
|
|
this.environment = environment;
|
|
|
|
// default values
|
|
this.logLevel = LogLevel.INFO;
|
|
this.eventBufferingEnabled = false;
|
|
}
|
|
|
|
public void setEventBufferingEnabled(Boolean eventBufferingEnabled) {
|
|
this.eventBufferingEnabled = eventBufferingEnabled;
|
|
}
|
|
|
|
public void setLogLevel(LogLevel logLevel) {
|
|
this.logLevel = logLevel;
|
|
}
|
|
|
|
public void setSdkPrefix(String sdkPrefix) {
|
|
this.sdkPrefix = sdkPrefix;
|
|
}
|
|
|
|
public void setDefaultTracker(String defaultTracker) {
|
|
this.defaultTracker = defaultTracker;
|
|
}
|
|
|
|
public void setOnAttributionChangedListener(OnAttributionChangedListener onAttributionChangedListener) {
|
|
this.onAttributionChangedListener = onAttributionChangedListener;
|
|
}
|
|
|
|
public boolean hasListener() {
|
|
return onAttributionChangedListener != null;
|
|
}
|
|
|
|
public boolean isValid() {
|
|
return appToken != null;
|
|
}
|
|
|
|
private boolean isValid(Context context, String appToken, String environment) {
|
|
if (!checkAppToken(appToken)) return false;
|
|
if (!checkEnvironment(environment)) return false;
|
|
if (!checkContext(context)) return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
private static boolean checkContext(Context context) {
|
|
ILogger logger = AdjustFactory.getLogger();
|
|
if (context == null) {
|
|
logger.error("Missing context");
|
|
return false;
|
|
}
|
|
|
|
if (!Util.checkPermission(context, android.Manifest.permission.INTERNET)) {
|
|
logger.error("Missing permission: INTERNET");
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
private static boolean checkAppToken(String appToken) {
|
|
ILogger logger = AdjustFactory.getLogger();
|
|
if (appToken == null) {
|
|
logger.error("Missing App Token.");
|
|
return false;
|
|
}
|
|
|
|
if (appToken.length() != 12) {
|
|
logger.error("Malformed App Token '%s'", appToken);
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
private static boolean checkEnvironment(String environment) {
|
|
ILogger logger = AdjustFactory.getLogger();
|
|
if (environment == null) {
|
|
logger.error("Missing environment");
|
|
return false;
|
|
}
|
|
|
|
if (environment == AdjustConfig.ENVIRONMENT_SANDBOX) {
|
|
logger.Assert("SANDBOX: Adjust is running in Sandbox mode. " +
|
|
"Use this setting for testing. " +
|
|
"Don't forget to set the environment to `production` before publishing!");
|
|
return true;
|
|
}
|
|
if (environment == AdjustConfig.ENVIRONMENT_PRODUCTION) {
|
|
logger.Assert(
|
|
"PRODUCTION: Adjust is running in Production mode. " +
|
|
"Use this setting only for the build that you want to publish. " +
|
|
"Set the environment to `sandbox` if you want to test your app!");
|
|
return true;
|
|
}
|
|
|
|
logger.error("Unknown environment '%s'", environment);
|
|
return false;
|
|
}
|
|
} |