1 package com.adjust.sdk;
2 
3 import android.net.Uri;
4 
5 /**
6  * Created by pfms on 04/12/14.
7  */
8 public class AdjustInstance {
9 
10     private String referrer;
11     private long referrerClickTime;
12     private ActivityHandler activityHandler;
13 
getLogger()14     private static ILogger getLogger() {
15         return AdjustFactory.getLogger();
16     }
17 
onCreate(AdjustConfig adjustConfig)18     public void onCreate(AdjustConfig adjustConfig) {
19         if (activityHandler != null) {
20             getLogger().error("Adjust already initialized");
21             return;
22         }
23 
24         adjustConfig.referrer = this.referrer;
25         adjustConfig.referrerClickTime = this.referrerClickTime;
26 
27         activityHandler = ActivityHandler.getInstance(adjustConfig);
28     }
29 
trackEvent(AdjustEvent event)30     public void trackEvent(AdjustEvent event) {
31         if (!checkActivityHandler()) return;
32         activityHandler.trackEvent(event);
33     }
34 
onResume()35     public void onResume() {
36         if (!checkActivityHandler()) return;
37         activityHandler.trackSubsessionStart();
38     }
39 
onPause()40     public void onPause() {
41         if (!checkActivityHandler()) return;
42         activityHandler.trackSubsessionEnd();
43     }
44 
setEnabled(boolean enabled)45     public void setEnabled(boolean enabled) {
46         if (!checkActivityHandler()) return;
47         activityHandler.setEnabled(enabled);
48     }
49 
isEnabled()50     public boolean isEnabled() {
51         if (!checkActivityHandler()) return false;
52         return activityHandler.isEnabled();
53     }
54 
appWillOpenUrl(Uri url)55     public void appWillOpenUrl(Uri url) {
56         if (!checkActivityHandler()) return;
57         long clickTime = System.currentTimeMillis();
58         activityHandler.readOpenUrl(url, clickTime);
59     }
60 
sendReferrer(String referrer)61     public void sendReferrer(String referrer) {
62         long clickTime = System.currentTimeMillis();
63         // sendReferrer might be triggered before Adjust
64         if (activityHandler == null) {
65             // save it to inject in the config before launch
66             this.referrer = referrer;
67             this.referrerClickTime = clickTime;
68         } else {
69             activityHandler.sendReferrer(referrer, clickTime);
70         }
71     }
72 
setOfflineMode(boolean enabled)73     public void setOfflineMode(boolean enabled) {
74         if (!checkActivityHandler()) return;
75         activityHandler.setOfflineMode(enabled);
76     }
77 
checkActivityHandler()78     private boolean checkActivityHandler() {
79         if (activityHandler == null) {
80             getLogger().error("Please initialize Adjust by calling 'onCreate' before");
81             return false;
82         } else {
83             return true;
84         }
85     }
86 }
87