1 package com.adjust.sdk; 2 3 import android.content.Context; 4 5 /** 6 * Created by pfms on 06/11/14. 7 */ 8 public class AdjustConfig { 9 Context context; 10 String appToken; 11 String environment; 12 LogLevel logLevel; 13 String sdkPrefix; 14 Boolean eventBufferingEnabled; 15 String defaultTracker; 16 OnAttributionChangedListener onAttributionChangedListener; 17 String referrer; 18 long referrerClickTime; 19 Boolean knownDevice; 20 21 public static final String ENVIRONMENT_SANDBOX = "sandbox"; 22 public static final String ENVIRONMENT_PRODUCTION = "production"; 23 AdjustConfig(Context context, String appToken, String environment)24 public AdjustConfig(Context context, String appToken, String environment) { 25 if (!isValid(context, appToken, environment)) { 26 return; 27 } 28 29 this.context = context.getApplicationContext(); 30 this.appToken = appToken; 31 this.environment = environment; 32 33 // default values 34 this.logLevel = LogLevel.INFO; 35 this.eventBufferingEnabled = false; 36 } 37 setEventBufferingEnabled(Boolean eventBufferingEnabled)38 public void setEventBufferingEnabled(Boolean eventBufferingEnabled) { 39 this.eventBufferingEnabled = eventBufferingEnabled; 40 } 41 setLogLevel(LogLevel logLevel)42 public void setLogLevel(LogLevel logLevel) { 43 this.logLevel = logLevel; 44 } 45 setSdkPrefix(String sdkPrefix)46 public void setSdkPrefix(String sdkPrefix) { 47 this.sdkPrefix = sdkPrefix; 48 } 49 setDefaultTracker(String defaultTracker)50 public void setDefaultTracker(String defaultTracker) { 51 this.defaultTracker = defaultTracker; 52 } 53 setOnAttributionChangedListener(OnAttributionChangedListener onAttributionChangedListener)54 public void setOnAttributionChangedListener(OnAttributionChangedListener onAttributionChangedListener) { 55 this.onAttributionChangedListener = onAttributionChangedListener; 56 } 57 hasListener()58 public boolean hasListener() { 59 return onAttributionChangedListener != null; 60 } 61 isValid()62 public boolean isValid() { 63 return appToken != null; 64 } 65 isValid(Context context, String appToken, String environment)66 private boolean isValid(Context context, String appToken, String environment) { 67 if (!checkAppToken(appToken)) return false; 68 if (!checkEnvironment(environment)) return false; 69 if (!checkContext(context)) return false; 70 71 return true; 72 } 73 checkContext(Context context)74 private static boolean checkContext(Context context) { 75 ILogger logger = AdjustFactory.getLogger(); 76 if (context == null) { 77 logger.error("Missing context"); 78 return false; 79 } 80 81 if (!Util.checkPermission(context, android.Manifest.permission.INTERNET)) { 82 logger.error("Missing permission: INTERNET"); 83 return false; 84 } 85 86 return true; 87 } 88 checkAppToken(String appToken)89 private static boolean checkAppToken(String appToken) { 90 ILogger logger = AdjustFactory.getLogger(); 91 if (appToken == null) { 92 logger.error("Missing App Token."); 93 return false; 94 } 95 96 if (appToken.length() != 12) { 97 logger.error("Malformed App Token '%s'", appToken); 98 return false; 99 } 100 101 return true; 102 } 103 checkEnvironment(String environment)104 private static boolean checkEnvironment(String environment) { 105 ILogger logger = AdjustFactory.getLogger(); 106 if (environment == null) { 107 logger.error("Missing environment"); 108 return false; 109 } 110 111 if (environment == AdjustConfig.ENVIRONMENT_SANDBOX) { 112 logger.Assert("SANDBOX: Adjust is running in Sandbox mode. " + 113 "Use this setting for testing. " + 114 "Don't forget to set the environment to `production` before publishing!"); 115 return true; 116 } 117 if (environment == AdjustConfig.ENVIRONMENT_PRODUCTION) { 118 logger.Assert( 119 "PRODUCTION: Adjust is running in Production mode. " + 120 "Use this setting only for the build that you want to publish. " + 121 "Set the environment to `sandbox` if you want to test your app!"); 122 return true; 123 } 124 125 logger.error("Unknown environment '%s'", environment); 126 return false; 127 } 128 }