.class public Lcom/singular/sdk/internal/SingularInstance; .super Ljava/lang/Object; .source "SourceFile" # static fields .field public static instance:Lcom/singular/sdk/internal/SingularInstance; .field public static final logger:Lcom/singular/sdk/internal/SingularLog; .field public static retryCounter:I # instance fields .field public final apiManager:Lcom/singular/sdk/internal/ApiManager; .field public config:Lcom/singular/sdk/SingularConfig; .field public final context:Landroid/content/Context; .field public deviceInfo:Lcom/singular/sdk/internal/DeviceInfo; .field public globalProperties:Ljava/util/HashMap; .field public initialized:Z .field public sessionManager:Lcom/singular/sdk/internal/SessionManager; .field public final worker:Lcom/singular/sdk/internal/SingularWorkerThread; # direct methods .method static constructor ()V .locals 1 const-string v0, "Instance" .line 38 invoke-static {v0}, Lcom/singular/sdk/internal/SingularLog;->getLogger(Ljava/lang/String;)Lcom/singular/sdk/internal/SingularLog; move-result-object v0 sput-object v0, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; const/4 v0, 0x0 sput v0, Lcom/singular/sdk/internal/SingularInstance;->retryCounter:I return-void .end method .method public constructor (Landroid/content/Context;Lcom/singular/sdk/SingularConfig;)V .locals 3 .line 114 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x0 iput-boolean v0, p0, Lcom/singular/sdk/internal/SingularInstance;->initialized:Z sget-object v0, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; .line 115 sget-object v1, Lcom/singular/sdk/internal/Constants;->SDK_VERSION:Ljava/lang/String; filled-new-array {v1}, [Ljava/lang/Object; move-result-object v1 const-string v2, "SDK version: %s" invoke-virtual {v0, v2, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I .line 116 sget-object v1, Lcom/singular/sdk/internal/Constants;->SDK_BUILD_INFO:Ljava/lang/String; filled-new-array {v1}, [Ljava/lang/Object; move-result-object v1 const-string v2, "SDK build info: %s" invoke-virtual {v0, v2, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I const-string v1, "new SingularInstance() with config: %s" filled-new-array {p2}, [Ljava/lang/Object; move-result-object v2 .line 117 invoke-virtual {v0, v1, v2}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I .line 119 invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; move-result-object v0 .line 121 instance-of v1, v0, Landroid/app/Application; if-eqz v1, :cond_0 iput-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->context:Landroid/content/Context; iput-object p2, p0, Lcom/singular/sdk/internal/SingularInstance;->config:Lcom/singular/sdk/SingularConfig; .line 127 new-instance p2, Lcom/singular/sdk/internal/SingularWorkerThread; const-string v0, "worker" invoke-direct {p2, v0}, Lcom/singular/sdk/internal/SingularWorkerThread;->(Ljava/lang/String;)V iput-object p2, p0, Lcom/singular/sdk/internal/SingularInstance;->worker:Lcom/singular/sdk/internal/SingularWorkerThread; .line 128 new-instance v0, Lcom/singular/sdk/internal/ApiManager; new-instance v1, Lcom/singular/sdk/internal/SingularWorkerThread; const-string v2, "api" invoke-direct {v1, v2}, Lcom/singular/sdk/internal/SingularWorkerThread;->(Ljava/lang/String;)V new-instance v2, Lcom/singular/sdk/internal/SQLitePersistentQueue; invoke-direct {v2, p1}, Lcom/singular/sdk/internal/SQLitePersistentQueue;->(Landroid/content/Context;)V invoke-direct {v0, v1, p1, v2}, Lcom/singular/sdk/internal/ApiManager;->(Lcom/singular/sdk/internal/SingularWorkerThread;Landroid/content/Context;Lcom/singular/sdk/internal/Queue;)V iput-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->apiManager:Lcom/singular/sdk/internal/ApiManager; .line 131 invoke-virtual {p2}, Ljava/lang/Thread;->start()V .line 134 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->initGlobalProperties()V .line 137 invoke-virtual {v0}, Lcom/singular/sdk/internal/ApiManager;->tryMigrateEventsFromFileQueue()V .line 138 invoke-virtual {v0}, Lcom/singular/sdk/internal/ApiManager;->tryMigrateEventsFromOldSQLiteQueue()V .line 141 new-instance p1, Lcom/singular/sdk/internal/SingularInstance$1; invoke-direct {p1, p0, p0}, Lcom/singular/sdk/internal/SingularInstance$1;->(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/SingularInstance;)V invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularInstance;->runOnWorker(Ljava/lang/Runnable;)V return-void .line 122 :cond_0 new-instance p1, Ljava/lang/IllegalStateException; const-string p2, "Context failed to cast to ApplicationContext" invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .end method .method public static synthetic access$000(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/SingularInstance;)V .locals 0 .line 36 invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularInstance;->init(Lcom/singular/sdk/internal/SingularInstance;)V return-void .end method .method public static synthetic access$100()Lcom/singular/sdk/internal/SingularInstance; .locals 1 sget-object v0, Lcom/singular/sdk/internal/SingularInstance;->instance:Lcom/singular/sdk/internal/SingularInstance; return-object v0 .end method .method public static synthetic access$200(Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/ApiManager; .locals 0 .line 36 iget-object p0, p0, Lcom/singular/sdk/internal/SingularInstance;->apiManager:Lcom/singular/sdk/internal/ApiManager; return-object p0 .end method .method public static synthetic access$300(Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/SingularConfig; .locals 0 .line 36 iget-object p0, p0, Lcom/singular/sdk/internal/SingularInstance;->config:Lcom/singular/sdk/SingularConfig; return-object p0 .end method .method public static synthetic access$400(Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/SessionManager; .locals 0 .line 36 iget-object p0, p0, Lcom/singular/sdk/internal/SingularInstance;->sessionManager:Lcom/singular/sdk/internal/SessionManager; return-object p0 .end method .method public static getInstance()Lcom/singular/sdk/internal/SingularInstance; .locals 1 .line 0 sget-object v0, Lcom/singular/sdk/internal/SingularInstance;->instance:Lcom/singular/sdk/internal/SingularInstance; return-object v0 .end method .method public static getInstance(Landroid/content/Context;Lcom/singular/sdk/SingularConfig;)Lcom/singular/sdk/internal/SingularInstance; .locals 2 sget-object v0, Lcom/singular/sdk/internal/SingularInstance;->instance:Lcom/singular/sdk/internal/SingularInstance; if-nez v0, :cond_1 const-class v0, Lcom/singular/sdk/internal/SingularInstance; .line 84 monitor-enter v0 :try_start_0 sget-object v1, Lcom/singular/sdk/internal/SingularInstance;->instance:Lcom/singular/sdk/internal/SingularInstance; if-nez v1, :cond_0 .line 87 iget-boolean v1, p1, Lcom/singular/sdk/SingularConfig;->enableLogging:Z sput-boolean v1, Lcom/singular/sdk/internal/SingularLog;->ENABLE_LOGGING:Z .line 88 iget v1, p1, Lcom/singular/sdk/SingularConfig;->logLevel:I sput v1, Lcom/singular/sdk/internal/SingularLog;->LOG_LEVEL:I .line 98 new-instance v1, Lcom/singular/sdk/internal/SingularInstance; invoke-direct {v1, p0, p1}, Lcom/singular/sdk/internal/SingularInstance;->(Landroid/content/Context;Lcom/singular/sdk/SingularConfig;)V sput-object v1, Lcom/singular/sdk/internal/SingularInstance;->instance:Lcom/singular/sdk/internal/SingularInstance; goto :goto_0 :catchall_0 move-exception p0 goto :goto_1 .line 100 :cond_0 :goto_0 monitor-exit v0 goto :goto_2 :goto_1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p0 :cond_1 :goto_2 sget-object p0, Lcom/singular/sdk/internal/SingularInstance;->instance:Lcom/singular/sdk/internal/SingularInstance; .line 104 iput-object p1, p0, Lcom/singular/sdk/internal/SingularInstance;->config:Lcom/singular/sdk/SingularConfig; return-object p0 .end method # virtual methods .method public clearGlobalProperties()V .locals 1 const/4 v0, 0x0 iput-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->globalProperties:Ljava/util/HashMap; .line 585 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->saveGlobalProperties()V return-void .end method .method public getApiManager()Lcom/singular/sdk/internal/ApiManager; .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->apiManager:Lcom/singular/sdk/internal/ApiManager; return-object v0 .end method .method public getContext()Landroid/content/Context; .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->context:Landroid/content/Context; return-object v0 .end method .method public getDeviceInfo()Lcom/singular/sdk/internal/DeviceInfo; .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->deviceInfo:Lcom/singular/sdk/internal/DeviceInfo; return-object v0 .end method .method public getGlobalPropertiesJSON()Lorg/json/JSONObject; .locals 2 .line 541 new-instance v0, Lorg/json/JSONObject; iget-object v1, p0, Lcom/singular/sdk/internal/SingularInstance;->globalProperties:Ljava/util/HashMap; invoke-direct {v0, v1}, Lorg/json/JSONObject;->(Ljava/util/Map;)V return-object v0 .end method .method public getSessionManager()Lcom/singular/sdk/internal/SessionManager; .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->sessionManager:Lcom/singular/sdk/internal/SessionManager; return-object v0 .end method .method public getSingularConfig()Lcom/singular/sdk/SingularConfig; .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->config:Lcom/singular/sdk/SingularConfig; return-object v0 .end method .method public final init(Lcom/singular/sdk/internal/SingularInstance;)V .locals 3 .line 151 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->isInitialized()Z move-result v0 if-eqz v0, :cond_0 sget-object p1, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; const-string v0, "Singular is already initialized, please don\'t call init() again." .line 152 invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I return-void .line 159 :cond_0 :try_start_0 new-instance v0, Lcom/singular/sdk/internal/DeviceInfo; iget-object v1, p1, Lcom/singular/sdk/internal/SingularInstance;->context:Landroid/content/Context; invoke-direct {v0, v1}, Lcom/singular/sdk/internal/DeviceInfo;->(Landroid/content/Context;)V iput-object v0, p1, Lcom/singular/sdk/internal/SingularInstance;->deviceInfo:Lcom/singular/sdk/internal/DeviceInfo; iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->deviceInfo:Lcom/singular/sdk/internal/DeviceInfo; iget-object v1, p0, Lcom/singular/sdk/internal/SingularInstance;->config:Lcom/singular/sdk/SingularConfig; .line 160 iget-object v2, v1, Lcom/singular/sdk/SingularConfig;->imei:Ljava/lang/String; iput-object v2, v0, Lcom/singular/sdk/internal/DeviceInfo;->imei:Ljava/lang/String; .line 162 iget-boolean v0, v1, Lcom/singular/sdk/SingularConfig;->wasCustomUserIdSetBeforeInit:Z if-eqz v0, :cond_1 .line 163 iget-object v0, v1, Lcom/singular/sdk/SingularConfig;->customUserId:Ljava/lang/String; invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularInstance;->saveCustomUserId(Ljava/lang/String;)V goto :goto_0 :catch_0 move-exception p1 goto :goto_1 .line 167 :cond_1 :goto_0 new-instance v0, Lcom/singular/sdk/internal/SessionManager; invoke-direct {v0, p1}, Lcom/singular/sdk/internal/SessionManager;->(Lcom/singular/sdk/internal/SingularInstance;)V iput-object v0, p1, Lcom/singular/sdk/internal/SingularInstance;->sessionManager:Lcom/singular/sdk/internal/SessionManager; const/4 p1, 0x1 iput-boolean p1, p0, Lcom/singular/sdk/internal/SingularInstance;->initialized:Z sget-object p1, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; const-string v0, "Singular is initialized now." .line 172 invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->info(Ljava/lang/String;)I :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_2 :goto_1 sget-object v0, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; const-string v1, "error in init()" .line 174 invoke-virtual {v0, v1, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I :goto_2 return-void .end method .method public final initGlobalProperties()V .locals 3 .line 179 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->loadGlobalProperties()Ljava/util/HashMap; move-result-object v0 iput-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->globalProperties:Ljava/util/HashMap; iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->config:Lcom/singular/sdk/SingularConfig; .line 181 iget-object v0, v0, Lcom/singular/sdk/SingularConfig;->globalProperties:Ljava/util/Map; invoke-interface {v0}, Ljava/util/Map;->size()I move-result v0 if-nez v0, :cond_0 return-void :cond_0 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->globalProperties:Ljava/util/HashMap; .line 185 invoke-virtual {v0}, Ljava/util/HashMap;->clone()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/HashMap; iget-object v1, p0, Lcom/singular/sdk/internal/SingularInstance;->config:Lcom/singular/sdk/SingularConfig; .line 187 iget-object v1, v1, Lcom/singular/sdk/SingularConfig;->globalProperties:Ljava/util/Map; invoke-interface {v1}, Ljava/util/Map;->values()Ljava/util/Collection; move-result-object v1 invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; move-result-object v1 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-nez v2, :cond_3 .line 194 invoke-virtual {v0}, Ljava/util/HashMap;->size()I move-result v1 const/4 v2, 0x5 if-le v1, v2, :cond_1 return-void :cond_1 iput-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->globalProperties:Ljava/util/HashMap; .line 199 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->saveGlobalProperties()V iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->globalProperties:Ljava/util/HashMap; if-nez v0, :cond_2 .line 203 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->clearGlobalProperties()V :cond_2 return-void .line 187 :cond_3 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 invoke-static {v0}, Lcom/amazonaws/handlers/HandlerChainFactory$$ExternalSyntheticThrowCCEIfNotNull0;->m(Ljava/lang/Object;)V const/4 v0, 0x0 .line 188 throw v0 .end method .method public isAllTrackingStopped()Z .locals 3 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->context:Landroid/content/Context; const-string v1, "singular-pref-session" const/4 v2, 0x0 .line 529 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 const-string v1, "stop_all_tracking" invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z move-result v0 return v0 .end method .method public isInitialized()Z .locals 1 iget-boolean v0, p0, Lcom/singular/sdk/internal/SingularInstance;->initialized:Z return v0 .end method .method public final isSessionManagerInitialized()Z .locals 1 .line 241 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->isInitialized()Z move-result v0 if-eqz v0, :cond_0 invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->getInstance()Lcom/singular/sdk/internal/SingularInstance; move-result-object v0 if-eqz v0, :cond_0 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->getSessionManager()Lcom/singular/sdk/internal/SessionManager; move-result-object v0 if-eqz v0, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method public loadGlobalProperties()Ljava/util/HashMap; .locals 5 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->context:Landroid/content/Context; const-string v1, "singular-pref-session" const/4 v2, 0x0 .line 600 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 const-string v1, "global_properties" const-string v2, "{}" .line 601 invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 606 :try_start_0 new-instance v1, Lorg/json/JSONObject; invoke-direct {v1, v0}, Lorg/json/JSONObject;->(Ljava/lang/String;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 .line 608 :catch_0 new-instance v1, Lorg/json/JSONObject; invoke-direct {v1}, Lorg/json/JSONObject;->()V .line 611 :goto_0 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V .line 612 invoke-virtual {v1}, Lorg/json/JSONObject;->keys()Ljava/util/Iterator; move-result-object v2 .line 614 :catch_1 :goto_1 invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z move-result v3 if-eqz v3, :cond_0 .line 616 :try_start_1 invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/lang/String; .line 617 invoke-virtual {v1, v3}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 .line 619 invoke-virtual {v0, v3, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 goto :goto_1 :cond_0 return-object v0 .end method .method public logEvent(Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V .locals 1 .line 262 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->isAllTrackingStopped()Z move-result v0 if-eqz v0, :cond_0 sget-object p1, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; const-string v0, "Tracking was stopped! not logging event!" .line 263 invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I return-void .line 269 :cond_0 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->isSessionManagerInitialized()Z move-result v0 if-nez v0, :cond_1 .line 270 new-instance v0, Lcom/singular/sdk/internal/SingularInstance$2; invoke-direct {v0, p0, p1}, Lcom/singular/sdk/internal/SingularInstance$2;->(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularInstance;->retryTask(Ljava/lang/Runnable;)V goto :goto_0 .line 277 :cond_1 new-instance v0, Lcom/singular/sdk/internal/SingularInstance$3; invoke-direct {v0, p0, p1}, Lcom/singular/sdk/internal/SingularInstance$3;->(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularInstance;->runOnWorker(Ljava/lang/Runnable;)V :goto_0 return-void .end method .method public logEvent(Ljava/lang/String;)Z .locals 1 const/4 v0, 0x0 .line 245 invoke-virtual {p0, p1, v0}, Lcom/singular/sdk/internal/SingularInstance;->logEvent(Ljava/lang/String;Ljava/lang/String;)Z move-result p1 return p1 .end method .method public logEvent(Ljava/lang/String;Ljava/lang/String;)Z .locals 3 const/4 v0, 0x0 if-eqz p1, :cond_0 .line 250 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 goto :goto_0 :cond_0 move v1, v0 :goto_0 if-eqz p2, :cond_1 invoke-virtual {p2}, Ljava/lang/String;->length()I move-result v2 goto :goto_1 :cond_1 move v2, v0 :goto_1 add-int/2addr v1, v2 const/16 v2, 0xea2 if-le v1, v2, :cond_2 sget-object p1, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; .line 252 invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p2 filled-new-array {p2}, [Ljava/lang/Object; move-result-object p2 const-string v1, "Event discarded! payload length = %d" invoke-virtual {p1, v1, p2}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I return v0 .line 256 :cond_2 new-instance v0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent; invoke-direct {v0, p1, p2}, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->(Ljava/lang/String;Ljava/lang/String;)V .line 257 invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularInstance;->logEvent(Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V const/4 p1, 0x1 return p1 .end method .method public logSessionStart(J)V .locals 1 .line 316 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->isAllTrackingStopped()Z move-result v0 if-eqz v0, :cond_0 sget-object p1, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; const-string p2, "Tracking was stopped! not logging event!" .line 317 invoke-virtual {p1, p2}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I return-void .line 321 :cond_0 new-instance v0, Lcom/singular/sdk/internal/SingularInstance$6; invoke-direct {v0, p0, p1, p2}, Lcom/singular/sdk/internal/SingularInstance$6;->(Lcom/singular/sdk/internal/SingularInstance;J)V invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularInstance;->runOnWorkerAtFront(Ljava/lang/Runnable;)V return-void .end method .method public retryTask(Ljava/lang/Runnable;)V .locals 2 sget v0, Lcom/singular/sdk/internal/SingularInstance;->retryCounter:I const/16 v1, 0xa if-ge v0, v1, :cond_0 const/16 v0, 0xc8 .line 356 invoke-virtual {p0, p1, v0}, Lcom/singular/sdk/internal/SingularInstance;->runOnWorkerDelayed(Ljava/lang/Runnable;I)V sget p1, Lcom/singular/sdk/internal/SingularInstance;->retryCounter:I add-int/lit8 p1, p1, 0x1 sput p1, Lcom/singular/sdk/internal/SingularInstance;->retryCounter:I :cond_0 return-void .end method .method public runOnWorker(Ljava/lang/Runnable;)V .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->worker:Lcom/singular/sdk/internal/SingularWorkerThread; .line 362 invoke-virtual {v0, p1}, Lcom/singular/sdk/internal/SingularWorkerThread;->post(Ljava/lang/Runnable;)V return-void .end method .method public runOnWorkerAtFront(Ljava/lang/Runnable;)V .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->worker:Lcom/singular/sdk/internal/SingularWorkerThread; .line 366 invoke-virtual {v0, p1}, Lcom/singular/sdk/internal/SingularWorkerThread;->postAtFront(Ljava/lang/Runnable;)V return-void .end method .method public runOnWorkerDelayed(Ljava/lang/Runnable;I)V .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->worker:Lcom/singular/sdk/internal/SingularWorkerThread; .line 370 invoke-virtual {v0, p1, p2}, Lcom/singular/sdk/internal/SingularWorkerThread;->postDelayed(Ljava/lang/Runnable;I)V return-void .end method .method public saveCustomUserId(Ljava/lang/String;)V .locals 3 .line 436 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context; move-result-object v0 const-string v1, "singular-pref-session" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 .line 437 invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v0 const-string v1, "custom_user_id" .line 438 invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; .line 439 invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->deviceInfo:Lcom/singular/sdk/internal/DeviceInfo; .line 441 invoke-virtual {v0, p1}, Lcom/singular/sdk/internal/DeviceInfo;->setCustomUserId(Ljava/lang/String;)V return-void .end method .method public final saveGlobalProperties()V .locals 3 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->globalProperties:Ljava/util/HashMap; if-nez v0, :cond_0 .line 590 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V iput-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->globalProperties:Ljava/util/HashMap; :cond_0 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->context:Landroid/content/Context; const-string v1, "singular-pref-session" const/4 v2, 0x0 .line 593 invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; move-result-object v0 .line 594 invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v0 .line 595 invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->getGlobalPropertiesJSON()Lorg/json/JSONObject; move-result-object v1 invoke-virtual {v1}, Lorg/json/JSONObject;->toString()Ljava/lang/String; move-result-object v1 const-string v2, "global_properties" invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; .line 596 invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z return-void .end method .method public sendInstallReferrerEvent(Ljava/lang/String;Ljava/lang/String;JJ)V .locals 2 .line 454 :try_start_0 new-instance v0, Lorg/json/JSONObject; invoke-direct {v0}, Lorg/json/JSONObject;->()V const-string v1, "referrer" .line 456 invoke-virtual {v0, v1, p1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; const-string p1, "referrer_source" .line 457 invoke-virtual {v0, p1, p2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; const-string p1, "clickTimestampSeconds" .line 458 invoke-virtual {v0, p1, p3, p4}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject; const-string p1, "installBeginTimestampSeconds" .line 459 invoke-virtual {v0, p1, p5, p6}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject; const-string p1, "current_device_time" .line 460 invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J move-result-wide p2 invoke-virtual {v0, p1, p2, p3}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject; .line 462 invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String; move-result-object p1 .line 465 new-instance p2, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent; const-string p3, "__InstallReferrer" invoke-direct {p2, p3, p1}, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->(Ljava/lang/String;Ljava/lang/String;)V .line 468 invoke-virtual {p0, p2}, Lcom/singular/sdk/internal/SingularInstance;->logEvent(Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V :try_end_0 .catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception p1 sget-object p2, Lcom/singular/sdk/internal/SingularInstance;->logger:Lcom/singular/sdk/internal/SingularLog; const-string p3, "error in sendInstallReferrerEvent()" .line 470 invoke-virtual {p2, p3, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I :goto_0 return-void .end method .method public startSessionIfOpenedWithDeeplink()V .locals 1 iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance;->config:Lcom/singular/sdk/SingularConfig; .line 394 iget-object v0, v0, Lcom/singular/sdk/SingularConfig;->singularLink:Landroid/net/Uri; if-nez v0, :cond_0 return-void .line 398 :cond_0 new-instance v0, Lcom/singular/sdk/internal/SingularInstance$8; invoke-direct {v0, p0}, Lcom/singular/sdk/internal/SingularInstance$8;->(Lcom/singular/sdk/internal/SingularInstance;)V invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularInstance;->runOnWorker(Ljava/lang/Runnable;)V return-void .end method