1 package com.adjust.sdk; 2 3 import android.content.Context; 4 5 import ch.boye.httpclientandroidlib.client.HttpClient; 6 import ch.boye.httpclientandroidlib.impl.client.DefaultHttpClient; 7 import ch.boye.httpclientandroidlib.params.HttpParams; 8 9 public class AdjustFactory { 10 private static IPackageHandler packageHandler = null; 11 private static IRequestHandler requestHandler = null; 12 private static IAttributionHandler attributionHandler = null; 13 private static IActivityHandler activityHandler = null; 14 private static ILogger logger = null; 15 private static HttpClient httpClient = null; 16 17 private static long timerInterval = -1; 18 private static long timerStart = -1; 19 private static long sessionInterval = -1; 20 private static long subsessionInterval = -1; 21 getPackageHandler(ActivityHandler activityHandler, Context context, boolean startPaused)22 public static IPackageHandler getPackageHandler(ActivityHandler activityHandler, 23 Context context, 24 boolean startPaused) { 25 if (packageHandler == null) { 26 return new PackageHandler(activityHandler, context, startPaused); 27 } 28 packageHandler.init(activityHandler, context, startPaused); 29 return packageHandler; 30 } 31 getRequestHandler(IPackageHandler packageHandler)32 public static IRequestHandler getRequestHandler(IPackageHandler packageHandler) { 33 if (requestHandler == null) { 34 return new RequestHandler(packageHandler); 35 } 36 requestHandler.init(packageHandler); 37 return requestHandler; 38 } 39 getLogger()40 public static ILogger getLogger() { 41 if (logger == null) { 42 // Logger needs to be "static" to retain the configuration throughout the app 43 logger = new Logger(); 44 } 45 return logger; 46 } 47 getHttpClient(HttpParams params)48 public static HttpClient getHttpClient(HttpParams params) { 49 if (httpClient == null) { 50 return new DefaultHttpClient(params); 51 } 52 return httpClient; 53 } 54 getTimerInterval()55 public static long getTimerInterval() { 56 if (timerInterval == -1) { 57 return Constants.ONE_MINUTE; 58 } 59 return timerInterval; 60 } 61 getTimerStart()62 public static long getTimerStart() { 63 if (timerStart == -1) { 64 return 0; 65 } 66 return timerStart; 67 } 68 getSessionInterval()69 public static long getSessionInterval() { 70 if (sessionInterval == -1) { 71 return Constants.THIRTY_MINUTES; 72 } 73 return sessionInterval; 74 } 75 getSubsessionInterval()76 public static long getSubsessionInterval() { 77 if (subsessionInterval == -1) { 78 return Constants.ONE_SECOND; 79 } 80 return subsessionInterval; 81 } 82 getActivityHandler(AdjustConfig config)83 public static IActivityHandler getActivityHandler(AdjustConfig config) { 84 if (activityHandler == null) { 85 return ActivityHandler.getInstance(config); 86 } 87 activityHandler.init(config); 88 return activityHandler; 89 } 90 getAttributionHandler(IActivityHandler activityHandler, ActivityPackage attributionPackage, boolean startPaused)91 public static IAttributionHandler getAttributionHandler(IActivityHandler activityHandler, 92 ActivityPackage attributionPackage, 93 boolean startPaused) { 94 if (attributionHandler == null) { 95 return new AttributionHandler(activityHandler, attributionPackage, startPaused); 96 } 97 attributionHandler.init(activityHandler, attributionPackage, startPaused); 98 return attributionHandler; 99 } 100 setPackageHandler(IPackageHandler packageHandler)101 public static void setPackageHandler(IPackageHandler packageHandler) { 102 AdjustFactory.packageHandler = packageHandler; 103 } 104 setRequestHandler(IRequestHandler requestHandler)105 public static void setRequestHandler(IRequestHandler requestHandler) { 106 AdjustFactory.requestHandler = requestHandler; 107 } 108 setLogger(ILogger logger)109 public static void setLogger(ILogger logger) { 110 AdjustFactory.logger = logger; 111 } 112 setHttpClient(HttpClient httpClient)113 public static void setHttpClient(HttpClient httpClient) { 114 AdjustFactory.httpClient = httpClient; 115 } 116 setTimerInterval(long timerInterval)117 public static void setTimerInterval(long timerInterval) { 118 AdjustFactory.timerInterval = timerInterval; 119 } 120 setTimerStart(long timerStart)121 public static void setTimerStart(long timerStart) { 122 AdjustFactory.timerStart = timerStart; 123 } 124 setSessionInterval(long sessionInterval)125 public static void setSessionInterval(long sessionInterval) { 126 AdjustFactory.sessionInterval = sessionInterval; 127 } 128 setSubsessionInterval(long subsessionInterval)129 public static void setSubsessionInterval(long subsessionInterval) { 130 AdjustFactory.subsessionInterval = subsessionInterval; 131 } 132 setActivityHandler(IActivityHandler activityHandler)133 public static void setActivityHandler(IActivityHandler activityHandler) { 134 AdjustFactory.activityHandler = activityHandler; 135 } 136 setAttributionHandler(IAttributionHandler attributionHandler)137 public static void setAttributionHandler(IAttributionHandler attributionHandler) { 138 AdjustFactory.attributionHandler = attributionHandler; 139 } 140 141 } 142