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