Add Discord APKTool decompilation (Smali source for modding)

- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
This commit is contained in:
2026-02-18 16:13:44 -08:00
parent c080f0d97f
commit f3960ee359
44288 changed files with 10998761 additions and 0 deletions

View File

@@ -0,0 +1,860 @@
.class public abstract Lcom/singular/sdk/Singular;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static isInstanceAlreadyInitialized:Z
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
.field public static saved_application_context:Landroid/content/Context;
.field public static singular:Lcom/singular/sdk/internal/SingularInstance;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/Singular;
.line 39
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const/4 v0, 0x0
sput-boolean v0, Lcom/singular/sdk/Singular;->isInstanceAlreadyInitialized:Z
const/4 v0, 0x0
sput-object v0, Lcom/singular/sdk/Singular;->saved_application_context:Landroid/content/Context;
return-void
.end method
.method public static customRevenue(Ljava/lang/String;Ljava/lang/String;D)Z
.locals 6
const-string v0, "pcc"
const-string v2, "r"
.line 270
invoke-static {p2, p3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
const-string v4, "is_revenue_event"
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
move-object v1, p1
filled-new-array/range {v0 .. v5}, [Ljava/lang/Object;
move-result-object p1
.line 268
invoke-static {p0, p1}, Lcom/singular/sdk/Singular;->event(Ljava/lang/String;[Ljava/lang/Object;)Z
move-result p0
return p0
.end method
.method public static customRevenue(Ljava/lang/String;Ljava/lang/String;DLjava/lang/Object;)Z
.locals 6
if-eqz p4, :cond_0
.line 204
invoke-virtual {p4}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "com.android.billingclient.api.Purchase"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
.line 206
:try_start_0
invoke-virtual {p4}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "getSku"
const/4 v2, 0x0
new-array v3, v2, [Ljava/lang/Class;
.line 207
invoke-virtual {v0, v1, v3}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
new-array v3, v2, [Ljava/lang/Object;
invoke-virtual {v1, p4, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
const-string v3, "getOriginalJson"
new-array v4, v2, [Ljava/lang/Class;
.line 208
invoke-virtual {v0, v3, v4}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v3
new-array v4, v2, [Ljava/lang/Object;
invoke-virtual {v3, p4, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/String;
const-string v4, "getSignature"
new-array v5, v2, [Ljava/lang/Class;
.line 209
invoke-virtual {v0, v4, v5}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
new-array v4, v2, [Ljava/lang/Object;
invoke-virtual {v0, p4, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p4
check-cast p4, Ljava/lang/String;
const/16 v0, 0xc
new-array v0, v0, [Ljava/lang/Object;
const-string v4, "pcc"
aput-object v4, v0, v2
const/4 v2, 0x1
aput-object p1, v0, v2
const-string v2, "r"
const/4 v4, 0x2
aput-object v2, v0, v4
.line 213
invoke-static {p2, p3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v2
const/4 v4, 0x3
aput-object v2, v0, v4
const-string v2, "pk"
const/4 v4, 0x4
aput-object v2, v0, v4
const/4 v2, 0x5
aput-object v1, v0, v2
const-string v1, "receipt"
const/4 v2, 0x6
aput-object v1, v0, v2
const/4 v1, 0x7
aput-object v3, v0, v1
const-string v1, "receipt_signature"
const/16 v2, 0x8
aput-object v1, v0, v2
const/16 v1, 0x9
aput-object p4, v0, v1
const-string p4, "is_revenue_event"
const/16 v1, 0xa
aput-object p4, v0, v1
sget-object p4, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
const/16 v1, 0xb
aput-object p4, v0, v1
.line 211
invoke-static {p0, v0}, Lcom/singular/sdk/Singular;->event(Ljava/lang/String;[Ljava/lang/Object;)Z
move-result p0
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return p0
:catch_0
move-exception p4
sget-object v0, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "customRevenue has encountered an unexpected exception. Please verify that the \'purchase\' object is of type \'com.android.billingclient.api.Purchase\'"
.line 220
invoke-virtual {v0, v1, p4}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
.line 224
:cond_0
invoke-static {p0, p1, p2, p3}, Lcom/singular/sdk/Singular;->customRevenue(Ljava/lang/String;Ljava/lang/String;D)Z
move-result p0
return p0
.end method
.method public static customRevenue(Ljava/lang/String;Ljava/lang/String;DLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ID)Z
.locals 16
const-string v0, "pcc"
const-string v2, "r"
.line 302
invoke-static/range {p2 .. p3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
const-string v4, "pk"
const-string v6, "pn"
const-string v8, "pc"
const-string v10, "pq"
.line 306
invoke-static/range {p7 .. p7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v11
const-string v12, "pp"
.line 307
invoke-static/range {p8 .. p9}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v13
const-string v14, "is_revenue_event"
sget-object v15, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
move-object/from16 v1, p1
move-object/from16 v5, p4
move-object/from16 v7, p5
move-object/from16 v9, p6
filled-new-array/range {v0 .. v15}, [Ljava/lang/Object;
move-result-object v0
move-object/from16 v1, p0
.line 300
invoke-static {v1, v0}, Lcom/singular/sdk/Singular;->event(Ljava/lang/String;[Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public static event(Ljava/lang/String;)Z
.locals 3
const/4 v0, 0x0
.line 108
:try_start_0
invoke-static {}, Lcom/singular/sdk/Singular;->isInitialized()Z
move-result v1
if-nez v1, :cond_0
return v0
.line 110
:cond_0
invoke-static {p0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_1
sget-object p0, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "Event name can not be null or empty"
.line 111
invoke-virtual {p0, v1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
return v0
:catch_0
move-exception p0
goto :goto_0
:cond_1
sget-object v1, Lcom/singular/sdk/Singular;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 115
invoke-virtual {v1, p0}, Lcom/singular/sdk/internal/SingularInstance;->logEvent(Ljava/lang/String;)Z
move-result p0
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
return p0
.line 117
:goto_0
invoke-static {p0}, Lcom/singular/sdk/Singular;->reportException(Ljava/lang/Throwable;)V
sget-object v1, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v2, "Exception"
.line 118
invoke-virtual {v1, v2, p0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
return v0
.end method
.method public static varargs event(Ljava/lang/String;[Ljava/lang/Object;)Z
.locals 5
const/4 v0, 0x0
.line 144
:try_start_0
invoke-static {}, Lcom/singular/sdk/Singular;->isInitialized()Z
move-result v1
if-nez v1, :cond_0
return v0
.line 146
:cond_0
invoke-static {p0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_1
sget-object p0, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string p1, "Event name can not be null or empty"
.line 147
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
return v0
:catch_0
move-exception p0
goto :goto_2
.line 151
:cond_1
array-length v1, p1
rem-int/lit8 v1, v1, 0x2
if-eqz v1, :cond_2
sget-object p0, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string p1, "Extra arguments must be in even numbers."
.line 153
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
return v0
.line 158
:cond_2
:try_start_1
new-instance v1, Lorg/json/JSONObject;
invoke-direct {v1}, Lorg/json/JSONObject;-><init>()V
move v2, v0
.line 159
:goto_0
array-length v3, p1
if-ge v2, v3, :cond_3
.line 160
aget-object v3, p1, v2
check-cast v3, Ljava/lang/String;
add-int/lit8 v4, v2, 0x1
aget-object v4, p1, v4
invoke-virtual {v1, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
add-int/lit8 v2, v2, 0x2
goto :goto_0
:catch_1
move-exception p0
goto :goto_1
.line 164
:cond_3
invoke-static {p0, v1}, Lcom/singular/sdk/Singular;->eventJSON(Ljava/lang/String;Lorg/json/JSONObject;)Z
move-result p0
:try_end_1
.catch Lorg/json/JSONException; {:try_start_1 .. :try_end_1} :catch_1
.catch Ljava/lang/RuntimeException; {:try_start_1 .. :try_end_1} :catch_0
return p0
:goto_1
:try_start_2
sget-object p1, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "error in serializing extra args"
.line 167
invoke-virtual {p1, v1, p0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:try_end_2
.catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_2} :catch_0
goto :goto_3
.line 171
:goto_2
invoke-static {p0}, Lcom/singular/sdk/Singular;->reportException(Ljava/lang/Throwable;)V
sget-object p1, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "Exception"
.line 172
invoke-virtual {p1, v1, p0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_3
return v0
.end method
.method public static eventJSON(Ljava/lang/String;Lorg/json/JSONObject;)Z
.locals 2
const/4 v0, 0x0
.line 314
:try_start_0
invoke-static {}, Lcom/singular/sdk/Singular;->isInitialized()Z
move-result v1
if-nez v1, :cond_0
return v0
.line 316
:cond_0
invoke-static {p0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_1
sget-object p0, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string p1, "Event name can not be null or empty"
.line 317
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
return v0
:catch_0
move-exception p0
goto :goto_1
:cond_1
if-eqz p1, :cond_2
.line 321
invoke-virtual {p1}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object p1
goto :goto_0
:cond_2
const/4 p1, 0x0
:goto_0
sget-object v1, Lcom/singular/sdk/Singular;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 322
invoke-virtual {v1, p0, p1}, Lcom/singular/sdk/internal/SingularInstance;->logEvent(Ljava/lang/String;Ljava/lang/String;)Z
move-result p0
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
return p0
.line 324
:goto_1
invoke-static {p0}, Lcom/singular/sdk/Singular;->reportException(Ljava/lang/Throwable;)V
sget-object p1, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "Exception"
.line 325
invoke-virtual {p1, v1, p0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
return v0
.end method
.method public static init(Landroid/content/Context;Lcom/singular/sdk/SingularConfig;)Z
.locals 2
const/4 v0, 0x0
if-eqz p0, :cond_3
if-nez p1, :cond_0
goto :goto_4
:cond_0
:try_start_0
sget-object v1, Lcom/singular/sdk/Singular;->singular:Lcom/singular/sdk/internal/SingularInstance;
if-eqz v1, :cond_1
const/4 v0, 0x1
:cond_1
sput-boolean v0, Lcom/singular/sdk/Singular;->isInstanceAlreadyInitialized:Z
.line 69
invoke-static {p0, p1}, Lcom/singular/sdk/internal/SingularInstance;->getInstance(Landroid/content/Context;Lcom/singular/sdk/SingularConfig;)Lcom/singular/sdk/internal/SingularInstance;
move-result-object p1
sput-object p1, Lcom/singular/sdk/Singular;->singular:Lcom/singular/sdk/internal/SingularInstance;
sget-boolean v0, Lcom/singular/sdk/Singular;->isInstanceAlreadyInitialized:Z
if-eqz v0, :cond_2
.line 72
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->startSessionIfOpenedWithDeeplink()V
goto :goto_0
:catch_0
move-exception p0
goto :goto_1
:catch_1
move-exception p0
goto :goto_2
.line 76
:cond_2
:goto_0
invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object p0
sput-object p0, Lcom/singular/sdk/Singular;->saved_application_context:Landroid/content/Context;
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_3
.line 82
:goto_1
invoke-static {p0}, Lcom/singular/sdk/Singular;->reportException(Ljava/lang/Throwable;)V
sget-object p1, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "Exception"
.line 83
invoke-virtual {p1, v0, p0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_3
:goto_2
sget-object p1, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "Failed to init() Singular SDK"
.line 78
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
const-string v0, "init() IOException"
.line 79
invoke-virtual {p1, v0, p0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
const/4 p0, 0x0
sput-object p0, Lcom/singular/sdk/Singular;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 86
:goto_3
invoke-static {}, Lcom/singular/sdk/Singular;->isInitialized()Z
move-result p0
return p0
:cond_3
:goto_4
return v0
.end method
.method public static isInitialized()Z
.locals 2
sget-object v0, Lcom/singular/sdk/Singular;->singular:Lcom/singular/sdk/internal/SingularInstance;
if-nez v0, :cond_0
sget-object v0, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "Singular not initialized. You must call Singular.init() "
.line 99
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
const/4 v0, 0x0
return v0
:cond_0
const/4 v0, 0x1
return v0
.end method
.method public static reportException(Ljava/lang/Throwable;)V
.locals 1
:try_start_0
sget-object v0, Lcom/singular/sdk/Singular;->saved_application_context:Landroid/content/Context;
.line 91
invoke-static {v0}, Lcom/singular/sdk/internal/SingularExceptionReporter;->getReporter(Landroid/content/Context;)Lcom/singular/sdk/internal/SingularExceptionReporter;
move-result-object v0
invoke-virtual {v0, p0}, Lcom/singular/sdk/internal/SingularExceptionReporter;->reportException(Ljava/lang/Throwable;)V
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
return-void
.end method
.method public static revenue(Ljava/lang/String;D)Z
.locals 1
const-string v0, "__iap__"
.line 187
invoke-static {v0, p0, p1, p2}, Lcom/singular/sdk/Singular;->customRevenue(Ljava/lang/String;Ljava/lang/String;D)Z
move-result p0
return p0
.end method
.method public static revenue(Ljava/lang/String;DLjava/lang/Object;)Z
.locals 1
const-string v0, "__iap__"
.line 179
invoke-static {v0, p0, p1, p2, p3}, Lcom/singular/sdk/Singular;->customRevenue(Ljava/lang/String;Ljava/lang/String;DLjava/lang/Object;)Z
move-result p0
return p0
.end method
.method public static revenue(Ljava/lang/String;DLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ID)Z
.locals 10
const-string v0, "__iap__"
move-object v1, p0
move-wide v2, p1
move-object v4, p3
move-object v5, p4
move-object v6, p5
move/from16 v7, p6
move-wide/from16 v8, p7
.line 199
invoke-static/range {v0 .. v9}, Lcom/singular/sdk/Singular;->customRevenue(Ljava/lang/String;Ljava/lang/String;DLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ID)Z
move-result v0
return v0
.end method
.method public static setCustomUserId(Ljava/lang/String;)V
.locals 2
.line 409
:try_start_0
invoke-static {}, Lcom/singular/sdk/Singular;->isInitialized()Z
move-result v0
if-nez v0, :cond_0
return-void
:cond_0
sget-object v0, Lcom/singular/sdk/Singular;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 410
invoke-virtual {v0, p0}, Lcom/singular/sdk/internal/SingularInstance;->saveCustomUserId(Ljava/lang/String;)V
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p0
.line 412
invoke-static {p0}, Lcom/singular/sdk/Singular;->reportException(Ljava/lang/Throwable;)V
sget-object v0, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "Exception"
.line 413
invoke-virtual {v0, v1, p0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_0
return-void
.end method
.method public static unsetCustomUserId()V
.locals 3
.line 419
:try_start_0
invoke-static {}, Lcom/singular/sdk/Singular;->isInitialized()Z
move-result v0
if-nez v0, :cond_0
return-void
:cond_0
sget-object v0, Lcom/singular/sdk/Singular;->singular:Lcom/singular/sdk/internal/SingularInstance;
const-string v1, ""
.line 420
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularInstance;->saveCustomUserId(Ljava/lang/String;)V
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception v0
.line 422
invoke-static {v0}, Lcom/singular/sdk/Singular;->reportException(Ljava/lang/Throwable;)V
sget-object v1, Lcom/singular/sdk/Singular;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v2, "Exception"
.line 423
invoke-virtual {v1, v2, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_0
return-void
.end method

View File

@@ -0,0 +1,192 @@
.class public Lcom/singular/sdk/SingularConfig;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public final apiKey:Ljava/lang/String;
.field public approvedDomains:Ljava/util/List;
.field public customUserId:Ljava/lang/String;
.field public enableLogging:Z
.field public facebookAppId:Ljava/lang/String;
.field public globalProperties:Ljava/util/Map;
.field public imei:Ljava/lang/String;
.field public isOpenedWithDeepLink:Z
.field public logLevel:I
.field public openUri:Landroid/net/Uri;
.field public final secret:Ljava/lang/String;
.field public sessionTimeoutSec:J
.field public shortlinkTimeoutSec:J
.field public singularLink:Landroid/net/Uri;
.field public wasCustomUserIdSetBeforeInit:Z
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/String;)V
.locals 3
.line 67
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/singular/sdk/SingularConfig;->wasCustomUserIdSetBeforeInit:Z
.line 46
new-instance v1, Ljava/util/HashMap;
invoke-direct {v1}, Ljava/util/HashMap;-><init>()V
iput-object v1, p0, Lcom/singular/sdk/SingularConfig;->globalProperties:Ljava/util/Map;
const-wide/16 v1, 0x3c
iput-wide v1, p0, Lcom/singular/sdk/SingularConfig;->sessionTimeoutSec:J
iput-boolean v0, p0, Lcom/singular/sdk/SingularConfig;->enableLogging:Z
const/4 v1, 0x6
iput v1, p0, Lcom/singular/sdk/SingularConfig;->logLevel:I
iput-boolean v0, p0, Lcom/singular/sdk/SingularConfig;->isOpenedWithDeepLink:Z
.line 60
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/singular/sdk/SingularConfig;->approvedDomains:Ljava/util/List;
.line 68
invoke-static {p1}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_1
.line 70
invoke-static {p2}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_0
iput-object p1, p0, Lcom/singular/sdk/SingularConfig;->apiKey:Ljava/lang/String;
iput-object p2, p0, Lcom/singular/sdk/SingularConfig;->secret:Ljava/lang/String;
return-void
.line 71
:cond_0
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "secret can not be null or empty"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 69
:cond_1
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "apiKey can not be null or empty"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 3
.line 178
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "apiKey=\'"
.line 179
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/singular/sdk/SingularConfig;->apiKey:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x27
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v2, ", secret=\'"
.line 180
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcom/singular/sdk/SingularConfig;->secret:Ljava/lang/String;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcom/singular/sdk/SingularConfig;->openUri:Landroid/net/Uri;
if-eqz v2, :cond_0
const-string v2, ", openUri="
.line 183
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcom/singular/sdk/SingularConfig;->openUri:Landroid/net/Uri;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
:cond_0
const-string v2, ", logging=\'"
.line 191
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v2, p0, Lcom/singular/sdk/SingularConfig;->enableLogging:Z
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v2, ", logLevel=\'"
.line 192
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcom/singular/sdk/SingularConfig;->logLevel:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 193
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,142 @@
.class public Lcom/singular/sdk/SingularInstallReceiver;
.super Landroid/content/BroadcastReceiver;
.source "SourceFile"
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/Singular;
.line 30
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/SingularInstallReceiver;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 28
invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
return-void
.end method
# virtual methods
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.locals 8
.line 34
invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object v0
.line 36
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_0
sget-object p1, Lcom/singular/sdk/SingularInstallReceiver;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string p2, "Install.onReceive() action is empty"
.line 37
invoke-virtual {p1, p2}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
return-void
:cond_0
const-string v1, "com.android.vending.INSTALL_REFERRER"
.line 41
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_1
sget-object p1, Lcom/singular/sdk/SingularInstallReceiver;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string p2, "Install.onReceive() unknown action = %s"
filled-new-array {v0}, [Ljava/lang/Object;
move-result-object v0
.line 42
invoke-virtual {p1, p2, v0}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
return-void
:cond_1
const-string v0, "referrer"
.line 46
invoke-virtual {p2, v0}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 49
invoke-static {v2}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result p2
if-nez p2, :cond_2
.line 50
invoke-static {p1, v2}, Lcom/singular/sdk/internal/Utils;->saveCSIReferrer(Landroid/content/Context;Ljava/lang/String;)V
sget-object p2, Lcom/singular/sdk/SingularInstallReceiver;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "saved referrer = %s"
filled-new-array {v2}, [Ljava/lang/Object;
move-result-object v1
.line 51
invoke-virtual {p2, v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 54
invoke-static {p1}, Lcom/singular/sdk/internal/Utils;->isAsyncReferrerAllowed(Landroid/content/Context;)Z
move-result p1
if-eqz p1, :cond_2
.line 55
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->getInstance()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v1
if-eqz v1, :cond_2
const-string v3, "intent_async"
const-wide/16 v4, -0x1
const-wide/16 v6, -0x1
.line 58
invoke-virtual/range {v1 .. v7}, Lcom/singular/sdk/internal/SingularInstance;->sendInstallReferrerEvent(Ljava/lang/String;Ljava/lang/String;JJ)V
:cond_2
return-void
.end method

View File

@@ -0,0 +1,38 @@
.class public Lcom/singular/sdk/SingularLinkParams;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public deeplink:Ljava/lang/String;
.field public isDeferred:Z
.field public passthrough:Ljava/lang/String;
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/String;Z)V
.locals 0
.line 8
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/singular/sdk/SingularLinkParams;->deeplink:Ljava/lang/String;
iput-object p2, p0, Lcom/singular/sdk/SingularLinkParams;->passthrough:Ljava/lang/String;
iput-boolean p3, p0, Lcom/singular/sdk/SingularLinkParams;->isDeferred:Z
return-void
.end method
# virtual methods
.method public getDeeplink()Ljava/lang/String;
.locals 1
iget-object v0, p0, Lcom/singular/sdk/SingularLinkParams;->deeplink:Ljava/lang/String;
return-object v0
.end method

View File

@@ -0,0 +1,19 @@
.class public interface abstract Lcom/singular/sdk/internal/Api$OnApiCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/Api;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "OnApiCallback"
.end annotation
# virtual methods
.method public abstract handle(Lcom/singular/sdk/internal/SingularInstance;ILjava/lang/String;)Z
.end method

View File

@@ -0,0 +1,22 @@
.class public interface abstract Lcom/singular/sdk/internal/Api;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/Api$OnApiCallback;
}
.end annotation
# virtual methods
.method public abstract getOnApiCallback()Lcom/singular/sdk/internal/Api$OnApiCallback;
.end method
.method public abstract getPath()Ljava/lang/String;
.end method
.method public abstract makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
.end method

View File

@@ -0,0 +1,96 @@
.class public Lcom/singular/sdk/internal/ApiCustomUserId$OnSetCustomUserIdCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/Api$OnApiCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiCustomUserId;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "OnSetCustomUserIdCallback"
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/ApiCustomUserId;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiCustomUserId;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiCustomUserId$OnSetCustomUserIdCallback;->this$0:Lcom/singular/sdk/internal/ApiCustomUserId;
.line 34
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public handle(Lcom/singular/sdk/internal/SingularInstance;ILjava/lang/String;)Z
.locals 1
const/16 p1, 0xc8
const/4 v0, 0x0
if-eq p2, p1, :cond_0
return v0
.line 44
:cond_0
:try_start_0
new-instance p1, Lorg/json/JSONObject;
invoke-direct {p1, p3}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string p2, "status"
const-string p3, ""
.line 46
invoke-virtual {p1, p2, p3}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const-string p2, "ok"
.line 47
invoke-virtual {p1, p2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result p1
:try_end_0
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
if-nez p1, :cond_1
return v0
:cond_1
const/4 p1, 0x1
return p1
:catch_0
move-exception p1
.line 53
invoke-static {}, Lcom/singular/sdk/internal/ApiCustomUserId;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p2
const-string p3, "error in handle()"
invoke-virtual {p2, p3, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
return v0
.end method

View File

@@ -0,0 +1,120 @@
.class public Lcom/singular/sdk/internal/ApiCustomUserId;
.super Lcom/singular/sdk/internal/BaseApi;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/ApiCustomUserId$OnSetCustomUserIdCallback;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/ApiStartSession;
.line 16
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/ApiCustomUserId;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(J)V
.locals 1
const-string v0, "CUSTOM_USER_ID"
.line 19
invoke-direct {p0, v0, p1, p2}, Lcom/singular/sdk/internal/BaseApi;-><init>(Ljava/lang/String;J)V
return-void
.end method
.method public static synthetic access$000()Lcom/singular/sdk/internal/SingularLog;
.locals 1
sget-object v0, Lcom/singular/sdk/internal/ApiCustomUserId;->logger:Lcom/singular/sdk/internal/SingularLog;
return-object v0
.end method
# virtual methods
.method public getOnApiCallback()Lcom/singular/sdk/internal/Api$OnApiCallback;
.locals 1
.line 31
new-instance v0, Lcom/singular/sdk/internal/ApiCustomUserId$OnSetCustomUserIdCallback;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/ApiCustomUserId$OnSetCustomUserIdCallback;-><init>(Lcom/singular/sdk/internal/ApiCustomUserId;)V
return-object v0
.end method
.method public getPath()Ljava/lang/String;
.locals 1
const-string v0, "/set_device_for_custom_id"
return-object v0
.end method
.method public bridge synthetic getTimestamp()J
.locals 2
.line 14
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getTimestamp()J
move-result-wide v0
return-wide v0
.end method
.method public bridge synthetic getUrl()Ljava/lang/String;
.locals 1
.line 14
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getUrl()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
.locals 0
.line 14
invoke-super {p0, p1}, Lcom/singular/sdk/internal/BaseApi;->makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
move-result p1
return p1
.end method
.method public bridge synthetic toJsonAsString()Ljava/lang/String;
.locals 1
.line 14
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->toJsonAsString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,53 @@
.class public Lcom/singular/sdk/internal/ApiGDPRConsent$OnResolveCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/Api$OnApiCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiGDPRConsent;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "OnResolveCallback"
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/ApiGDPRConsent;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiGDPRConsent;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiGDPRConsent$OnResolveCallback;->this$0:Lcom/singular/sdk/internal/ApiGDPRConsent;
.line 33
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public handle(Lcom/singular/sdk/internal/SingularInstance;ILjava/lang/String;)Z
.locals 0
const/16 p1, 0xc8
if-eq p2, p1, :cond_0
const/4 p1, 0x0
return p1
:cond_0
const/4 p1, 0x1
return p1
.end method

View File

@@ -0,0 +1,112 @@
.class public Lcom/singular/sdk/internal/ApiGDPRConsent;
.super Lcom/singular/sdk/internal/BaseApi;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/ApiGDPRConsent$OnResolveCallback;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/ApiGDPRConsent;
.line 15
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/ApiGDPRConsent;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(J)V
.locals 1
const-string v0, "GDPR_CONSENT"
.line 20
invoke-direct {p0, v0, p1, p2}, Lcom/singular/sdk/internal/BaseApi;-><init>(Ljava/lang/String;J)V
return-void
.end method
# virtual methods
.method public getOnApiCallback()Lcom/singular/sdk/internal/Api$OnApiCallback;
.locals 1
.line 30
new-instance v0, Lcom/singular/sdk/internal/ApiGDPRConsent$OnResolveCallback;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/ApiGDPRConsent$OnResolveCallback;-><init>(Lcom/singular/sdk/internal/ApiGDPRConsent;)V
return-object v0
.end method
.method public getPath()Ljava/lang/String;
.locals 1
const-string v0, "/opengdpr"
return-object v0
.end method
.method public bridge synthetic getTimestamp()J
.locals 2
.line 13
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getTimestamp()J
move-result-wide v0
return-wide v0
.end method
.method public bridge synthetic getUrl()Ljava/lang/String;
.locals 1
.line 13
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getUrl()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
.locals 0
.line 13
invoke-super {p0, p1}, Lcom/singular/sdk/internal/BaseApi;->makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
move-result p1
return p1
.end method
.method public bridge synthetic toJsonAsString()Ljava/lang/String;
.locals 1
.line 13
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->toJsonAsString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,53 @@
.class public Lcom/singular/sdk/internal/ApiGDPRUnder13$OnResolveCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/Api$OnApiCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiGDPRUnder13;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "OnResolveCallback"
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/ApiGDPRUnder13;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiGDPRUnder13;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiGDPRUnder13$OnResolveCallback;->this$0:Lcom/singular/sdk/internal/ApiGDPRUnder13;
.line 31
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public handle(Lcom/singular/sdk/internal/SingularInstance;ILjava/lang/String;)Z
.locals 0
const/16 p1, 0xc8
if-eq p2, p1, :cond_0
const/4 p1, 0x0
return p1
:cond_0
const/4 p1, 0x1
return p1
.end method

View File

@@ -0,0 +1,112 @@
.class public Lcom/singular/sdk/internal/ApiGDPRUnder13;
.super Lcom/singular/sdk/internal/BaseApi;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/ApiGDPRUnder13$OnResolveCallback;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/ApiGDPRUnder13;
.line 15
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/ApiGDPRUnder13;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(J)V
.locals 1
const-string v0, "GDPR_UNDER_13"
.line 19
invoke-direct {p0, v0, p1, p2}, Lcom/singular/sdk/internal/BaseApi;-><init>(Ljava/lang/String;J)V
return-void
.end method
# virtual methods
.method public getOnApiCallback()Lcom/singular/sdk/internal/Api$OnApiCallback;
.locals 1
.line 28
new-instance v0, Lcom/singular/sdk/internal/ApiGDPRUnder13$OnResolveCallback;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/ApiGDPRUnder13$OnResolveCallback;-><init>(Lcom/singular/sdk/internal/ApiGDPRUnder13;)V
return-object v0
.end method
.method public getPath()Ljava/lang/String;
.locals 1
const-string v0, "/opengdpr"
return-object v0
.end method
.method public bridge synthetic getTimestamp()J
.locals 2
.line 13
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getTimestamp()J
move-result-wide v0
return-wide v0
.end method
.method public bridge synthetic getUrl()Ljava/lang/String;
.locals 1
.line 13
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getUrl()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
.locals 0
.line 13
invoke-super {p0, p1}, Lcom/singular/sdk/internal/BaseApi;->makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
move-result p1
return p1
.end method
.method public bridge synthetic toJsonAsString()Ljava/lang/String;
.locals 1
.line 13
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->toJsonAsString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,93 @@
.class public Lcom/singular/sdk/internal/ApiManager$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/ApiManager;->tryMigrateEventsFromOldSQLiteQueue()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/ApiManager;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiManager;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiManager$1;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 72
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
.line 76
:try_start_0
new-instance v0, Lcom/singular/sdk/internal/OfflineEventsMigrator;
iget-object v1, p0, Lcom/singular/sdk/internal/ApiManager$1;->this$0:Lcom/singular/sdk/internal/ApiManager;
iget-object v1, v1, Lcom/singular/sdk/internal/ApiManager;->context:Landroid/content/Context;
invoke-direct {v0, v1}, Lcom/singular/sdk/internal/OfflineEventsMigrator;-><init>(Landroid/content/Context;)V
.line 77
invoke-virtual {v0}, Lcom/singular/sdk/internal/OfflineEventsMigrator;->migrate()V
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_2
:catch_0
move-exception v0
goto :goto_0
:catch_1
move-exception v0
goto :goto_1
.line 81
:goto_0
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
const-string v2, "migrateEventsFromOldSQLiteQueue: Exception"
invoke-virtual {v1, v2, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_2
.line 79
:goto_1
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
const-string v2, "migrateEventsFromOldSQLiteQueue: RuntimeException"
invoke-virtual {v1, v2, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_2
return-void
.end method

View File

@@ -0,0 +1,201 @@
.class public Lcom/singular/sdk/internal/ApiManager$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/ApiManager;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiManager;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiManager$2;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 116
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 6
.line 120
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->getInstance()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v0
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->isInitialized()Z
move-result v0
if-nez v0, :cond_0
.line 121
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "Singular is not initialized!"
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
return-void
:cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager$2;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 126
iget-object v0, v0, Lcom/singular/sdk/internal/ApiManager;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isConnected(Landroid/content/Context;)Z
move-result v0
if-nez v0, :cond_1
.line 127
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "Oops, not connected to internet!"
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
return-void
:cond_1
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager$2;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 133
invoke-static {v0}, Lcom/singular/sdk/internal/ApiManager;->access$100(Lcom/singular/sdk/internal/ApiManager;)Lcom/singular/sdk/internal/Queue;
move-result-object v0
invoke-interface {v0}, Lcom/singular/sdk/internal/Queue;->peek()Ljava/lang/String;
move-result-object v0
if-nez v0, :cond_2
.line 135
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "Queue is empty"
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
return-void
:catch_0
move-exception v0
goto :goto_0
.line 139
:cond_2
invoke-static {v0}, Lcom/singular/sdk/internal/BaseApi;->from(Ljava/lang/String;)Lcom/singular/sdk/internal/BaseApi;
move-result-object v0
.line 140
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
const-string v2, "api = %s"
const/4 v3, 0x1
new-array v3, v3, [Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v4
const/4 v5, 0x0
aput-object v4, v3, v5
invoke-virtual {v1, v2, v3}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 141
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->getInstance()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v1
invoke-interface {v0, v1}, Lcom/singular/sdk/internal/Api;->makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
move-result v0
if-eqz v0, :cond_3
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager$2;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 145
invoke-static {v0}, Lcom/singular/sdk/internal/ApiManager;->access$100(Lcom/singular/sdk/internal/ApiManager;)Lcom/singular/sdk/internal/Queue;
move-result-object v0
invoke-interface {v0}, Lcom/singular/sdk/internal/Queue;->remove()V
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager$2;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 147
invoke-virtual {v0}, Lcom/singular/sdk/internal/ApiManager;->wakeUp()V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_1
.line 150
:goto_0
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v2
filled-new-array {v2}, [Ljava/lang/Object;
move-result-object v2
const-string v3, "IOException in processing an event: %s"
invoke-virtual {v1, v3, v2}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;[Ljava/lang/Object;)I
.line 151
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:cond_3
:goto_1
return-void
.end method

View File

@@ -0,0 +1,218 @@
.class public Lcom/singular/sdk/internal/ApiManager$3;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/ApiManager;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiManager;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiManager$3;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 156
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 6
.line 159
new-instance v0, Ljava/io/File;
iget-object v1, p0, Lcom/singular/sdk/internal/ApiManager$3;->this$0:Lcom/singular/sdk/internal/ApiManager;
iget-object v1, v1, Lcom/singular/sdk/internal/ApiManager;->context:Landroid/content/Context;
invoke-virtual {v1}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v1
const-string v2, "api-r.dat"
invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 160
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
const-string v3, "Migrate events from QueueFile = %s"
filled-new-array {v2}, [Ljava/lang/Object;
move-result-object v4
invoke-virtual {v1, v3, v4}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 163
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_0
.line 164
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "QueueFile does not exist"
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
return-void
:cond_0
:try_start_0
iget-object v1, p0, Lcom/singular/sdk/internal/ApiManager$3;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 170
iget-object v1, v1, Lcom/singular/sdk/internal/ApiManager;->context:Landroid/content/Context;
const/16 v3, 0x2710
invoke-static {v1, v2, v3}, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->create(Landroid/content/Context;Ljava/lang/String;I)Lcom/singular/sdk/internal/FixedSizePersistentQueue;
move-result-object v1
if-nez v1, :cond_1
.line 173
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "QueueFile failed to initialize"
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
return-void
:catch_0
move-exception v0
goto :goto_1
:catch_1
move-exception v0
goto :goto_2
:cond_1
const/4 v2, 0x0
move v3, v2
.line 178
:goto_0
invoke-virtual {v1}, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->isEmpty()Z
move-result v4
if-nez v4, :cond_2
.line 179
invoke-virtual {v1}, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->peek()Ljava/lang/String;
move-result-object v4
iget-object v5, p0, Lcom/singular/sdk/internal/ApiManager$3;->this$0:Lcom/singular/sdk/internal/ApiManager;
.line 180
invoke-static {v5}, Lcom/singular/sdk/internal/ApiManager;->access$100(Lcom/singular/sdk/internal/ApiManager;)Lcom/singular/sdk/internal/Queue;
move-result-object v5
invoke-interface {v5, v4}, Lcom/singular/sdk/internal/Queue;->add(Ljava/lang/String;)V
.line 181
invoke-virtual {v1}, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->remove()V
add-int/lit8 v3, v3, 0x1
goto :goto_0
.line 184
:cond_2
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
const-string v4, "Migrated \'%d\' events"
const/4 v5, 0x1
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v5, v2
invoke-virtual {v1, v4, v5}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 187
invoke-virtual {v0}, Ljava/io/File;->delete()Z
.line 188
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "QueueFile deleted"
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
:try_end_0
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_3
.line 192
:goto_1
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
const-string v2, "loadFromFileQueue: Exception"
invoke-virtual {v1, v2, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_3
.line 190
:goto_2
invoke-static {}, Lcom/singular/sdk/internal/ApiManager;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
const-string v2, "loadFromFileQueue: RuntimeException"
invoke-virtual {v1, v2, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_3
return-void
.end method

View File

@@ -0,0 +1,303 @@
.class public Lcom/singular/sdk/internal/ApiManager;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# instance fields
.field public final context:Landroid/content/Context;
.field public final migrateEventsFromFileQueue:Ljava/lang/Runnable;
.field public queue:Lcom/singular/sdk/internal/Queue;
.field public final runnable:Ljava/lang/Runnable;
.field public worker:Lcom/singular/sdk/internal/SingularWorkerThread;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/ApiManager;
.line 27
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/ApiManager;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(Lcom/singular/sdk/internal/SingularWorkerThread;Landroid/content/Context;Lcom/singular/sdk/internal/Queue;)V
.locals 1
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 116
new-instance v0, Lcom/singular/sdk/internal/ApiManager$2;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/ApiManager$2;-><init>(Lcom/singular/sdk/internal/ApiManager;)V
iput-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->runnable:Ljava/lang/Runnable;
.line 156
new-instance v0, Lcom/singular/sdk/internal/ApiManager$3;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/ApiManager$3;-><init>(Lcom/singular/sdk/internal/ApiManager;)V
iput-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->migrateEventsFromFileQueue:Ljava/lang/Runnable;
iput-object p2, p0, Lcom/singular/sdk/internal/ApiManager;->context:Landroid/content/Context;
iput-object p3, p0, Lcom/singular/sdk/internal/ApiManager;->queue:Lcom/singular/sdk/internal/Queue;
if-nez p3, :cond_0
return-void
:cond_0
sget-object p2, Lcom/singular/sdk/internal/ApiManager;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 45
invoke-virtual {p3}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p3
invoke-virtual {p3}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object p3
filled-new-array {p3}, [Ljava/lang/Object;
move-result-object p3
const-string v0, "Queue: %s"
invoke-virtual {p2, v0, p3}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
if-nez p1, :cond_1
return-void
:cond_1
iput-object p1, p0, Lcom/singular/sdk/internal/ApiManager;->worker:Lcom/singular/sdk/internal/SingularWorkerThread;
.line 52
invoke-virtual {p1}, Ljava/lang/Thread;->start()V
return-void
.end method
.method public static synthetic access$000()Lcom/singular/sdk/internal/SingularLog;
.locals 1
sget-object v0, Lcom/singular/sdk/internal/ApiManager;->logger:Lcom/singular/sdk/internal/SingularLog;
return-object v0
.end method
.method public static synthetic access$100(Lcom/singular/sdk/internal/ApiManager;)Lcom/singular/sdk/internal/Queue;
.locals 0
.line 25
iget-object p0, p0, Lcom/singular/sdk/internal/ApiManager;->queue:Lcom/singular/sdk/internal/Queue;
return-object p0
.end method
# virtual methods
.method public enqueue(Lcom/singular/sdk/internal/BaseApi;)V
.locals 3
if-eqz p1, :cond_3
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->queue:Lcom/singular/sdk/internal/Queue;
if-nez v0, :cond_0
goto :goto_2
.line 94
:cond_0
instance-of v0, p1, Lcom/singular/sdk/internal/ApiGDPRConsent;
if-nez v0, :cond_1
instance-of v0, p1, Lcom/singular/sdk/internal/ApiGDPRUnder13;
if-nez v0, :cond_1
const-string v0, "event_index"
iget-object v1, p0, Lcom/singular/sdk/internal/ApiManager;->context:Landroid/content/Context;
.line 95
invoke-static {v1}, Lcom/singular/sdk/internal/Utils;->getEventIndex(Landroid/content/Context;)J
move-result-wide v1
invoke-static {v1, v2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto :goto_0
:catch_0
move-exception p1
goto :goto_1
:cond_1
:goto_0
const-string v0, "singular_install_id"
iget-object v1, p0, Lcom/singular/sdk/internal/ApiManager;->context:Landroid/content/Context;
.line 98
invoke-static {v1}, Lcom/singular/sdk/internal/Utils;->getSingularId(Landroid/content/Context;)Ljava/util/UUID;
move-result-object v1
invoke-virtual {v1}, Ljava/util/UUID;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 100
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->getInstance()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v0
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getGlobalPropertiesJSON()Lorg/json/JSONObject;
move-result-object v0
.line 101
invoke-virtual {v0}, Lorg/json/JSONObject;->length()I
move-result v1
if-eqz v1, :cond_2
const-string v1, "global_properties"
.line 102
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
:cond_2
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->queue:Lcom/singular/sdk/internal/Queue;
.line 106
invoke-virtual {p1}, Lcom/singular/sdk/internal/BaseApi;->toJsonAsString()Ljava/lang/String;
move-result-object p1
invoke-interface {v0, p1}, Lcom/singular/sdk/internal/Queue;->add(Ljava/lang/String;)V
.line 108
invoke-virtual {p0}, Lcom/singular/sdk/internal/ApiManager;->wakeUp()V
:try_end_0
.catch Ljava/lang/IndexOutOfBoundsException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_2
:goto_1
sget-object v0, Lcom/singular/sdk/internal/ApiManager;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "error in enqueue()"
.line 112
invoke-virtual {v0, v1, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:catch_1
:cond_3
:goto_2
return-void
.end method
.method public tryMigrateEventsFromFileQueue()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->queue:Lcom/singular/sdk/internal/Queue;
.line 66
instance-of v0, v0, Lcom/singular/sdk/internal/SQLitePersistentQueue;
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->worker:Lcom/singular/sdk/internal/SingularWorkerThread;
iget-object v1, p0, Lcom/singular/sdk/internal/ApiManager;->migrateEventsFromFileQueue:Ljava/lang/Runnable;
.line 67
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularWorkerThread;->post(Ljava/lang/Runnable;)V
:cond_0
return-void
.end method
.method public tryMigrateEventsFromOldSQLiteQueue()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->worker:Lcom/singular/sdk/internal/SingularWorkerThread;
.line 72
new-instance v1, Lcom/singular/sdk/internal/ApiManager$1;
invoke-direct {v1, p0}, Lcom/singular/sdk/internal/ApiManager$1;-><init>(Lcom/singular/sdk/internal/ApiManager;)V
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularWorkerThread;->post(Ljava/lang/Runnable;)V
return-void
.end method
.method public wakeUp()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->worker:Lcom/singular/sdk/internal/SingularWorkerThread;
if-nez v0, :cond_0
return-void
.line 60
:cond_0
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularWorkerThread;->getHandler()Landroid/os/Handler;
move-result-object v0
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
iget-object v0, p0, Lcom/singular/sdk/internal/ApiManager;->worker:Lcom/singular/sdk/internal/SingularWorkerThread;
iget-object v1, p0, Lcom/singular/sdk/internal/ApiManager;->runnable:Ljava/lang/Runnable;
.line 61
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularWorkerThread;->post(Ljava/lang/Runnable;)V
return-void
.end method

View File

@@ -0,0 +1,187 @@
.class public Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;
.super Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->run()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;->this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
.line 147
invoke-direct {p0}, Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;-><init>()V
return-void
.end method
# virtual methods
.method public handle(ILjava/lang/String;Ljava/lang/String;)V
.locals 2
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;->this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
.line 153
iget-object v0, v0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
invoke-static {v0, p1}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->access$200(Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;I)Z
move-result v0
if-nez v0, :cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;->this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
iget-object v0, v0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
iget-object v0, v0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->this$0:Lcom/singular/sdk/internal/ApiStartSession;
.line 154
invoke-static {v0}, Lcom/singular/sdk/internal/ApiStartSession;->access$100(Lcom/singular/sdk/internal/ApiStartSession;)I
move-result v0
const/4 v1, 0x3
if-ge v0, v1, :cond_0
iget-object p1, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;->this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
.line 157
iget-object p1, p1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
iget-object p1, p1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->this$0:Lcom/singular/sdk/internal/ApiStartSession;
invoke-static {p1}, Lcom/singular/sdk/internal/ApiStartSession;->access$100(Lcom/singular/sdk/internal/ApiStartSession;)I
move-result p1
mul-int/lit16 p1, p1, 0xbb8
int-to-long p1, p1
invoke-static {p1, p2}, Ljava/lang/Thread;->sleep(J)V
iget-object p1, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;->this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
.line 158
iget-object p2, p1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
iget-object p3, p1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
iget-object p1, p1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->val$identifier:Ljava/lang/String;
invoke-virtual {p2, p3, p1}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->performLicenseCheck(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;)V
return-void
:catch_0
move-exception p1
goto :goto_0
:catch_1
move-exception p1
goto :goto_1
:cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;->this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
.line 163
iget-object v0, v0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object v0
iget-object v1, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;->this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
iget-object v1, v1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->val$identifier:Ljava/lang/String;
invoke-static {v0, v1}, Lcom/singular/sdk/internal/Utils;->saveLicenseInfo(Landroid/content/Context;Ljava/lang/String;)V
.line 165
new-instance v0, Lorg/json/JSONObject;
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
const-string v1, "responseCode"
.line 167
invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, v1, p1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string p1, "signedData"
.line 168
invoke-virtual {v0, p1, p2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string p1, "signature"
.line 169
invoke-virtual {v0, p1, p3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 172
new-instance p1, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
const-string p2, "__LicensingStatus"
.line 173
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object p3
invoke-direct {p1, p2, p3}, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;-><init>(Ljava/lang/String;Ljava/lang/String;)V
iget-object p2, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;->this$2:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
.line 175
iget-object p2, p2, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
invoke-virtual {p2, p1}, 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_1
.catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_2
.line 179
:goto_0
invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V
goto :goto_2
.line 177
:goto_1
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p2
const-string p3, "Error occurred while trying to send licensing status event"
invoke-virtual {p2, p3, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_2
return-void
.end method

View File

@@ -0,0 +1,70 @@
.class public Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->performLicenseCheck(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
.field public final synthetic val$identifier:Ljava/lang/String;
.field public final synthetic val$singular:Lcom/singular/sdk/internal/SingularInstance;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
iput-object p2, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
iput-object p3, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->val$identifier:Ljava/lang/String;
.line 143
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
.line 146
iget-object v0, v0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->this$0:Lcom/singular/sdk/internal/ApiStartSession;
invoke-static {v0}, Lcom/singular/sdk/internal/ApiStartSession;->access$108(Lcom/singular/sdk/internal/ApiStartSession;)I
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
.line 147
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object v0
new-instance v1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;
invoke-direct {v1, p0}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1$1;-><init>(Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;)V
invoke-static {v0, v1}, Lcom/singular/sdk/internal/LicenseApiHelper;->checkLicense(Landroid/content/Context;Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;)V
return-void
.end method

View File

@@ -0,0 +1,104 @@
.class public Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;
.super Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->handleInstallReferrer(Lcom/singular/sdk/internal/SingularInstance;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
.field public final synthetic val$singular:Lcom/singular/sdk/internal/SingularInstance;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;Lcom/singular/sdk/internal/SingularInstance;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;->this$1:Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
iput-object p2, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
.line 206
invoke-direct {p0}, Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;-><init>()V
return-void
.end method
# virtual methods
.method public handleNotSupported()V
.locals 8
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
.line 215
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->getCSIReferrer(Landroid/content/Context;)Ljava/lang/String;
move-result-object v2
.line 218
invoke-static {v2}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_0
iget-object v1, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
const-string v3, "intent"
const-wide/16 v4, -0x1
const-wide/16 v6, -0x1
.line 219
invoke-virtual/range {v1 .. v7}, Lcom/singular/sdk/internal/SingularInstance;->sendInstallReferrerEvent(Ljava/lang/String;Ljava/lang/String;JJ)V
goto :goto_0
:cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
.line 222
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->signalAsyncReferrerAllowed(Landroid/content/Context;)V
:goto_0
return-void
.end method
.method public handleReferrerValue(Ljava/lang/String;JJ)V
.locals 7
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;->val$singular:Lcom/singular/sdk/internal/SingularInstance;
const-string v2, "service"
move-object v1, p1
move-wide v3, p2
move-wide v5, p4
.line 209
invoke-virtual/range {v0 .. v6}, Lcom/singular/sdk/internal/SingularInstance;->sendInstallReferrerEvent(Ljava/lang/String;Ljava/lang/String;JJ)V
return-void
.end method

View File

@@ -0,0 +1,503 @@
.class public Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/Api$OnApiCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiStartSession;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "OnSessionStartCallback"
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/ApiStartSession;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiStartSession;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->this$0:Lcom/singular/sdk/internal/ApiStartSession;
.line 60
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static synthetic access$200(Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;I)Z
.locals 0
.line 60
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->isLicenseResponseValid(I)Z
move-result p0
return p0
.end method
# virtual methods
.method public handle(Lcom/singular/sdk/internal/SingularInstance;ILjava/lang/String;)Z
.locals 6
const/16 v0, 0xc8
const/4 v1, 0x0
if-eq p2, v0, :cond_0
return v1
.line 90
:cond_0
:try_start_0
new-instance p2, Lorg/json/JSONObject;
invoke-direct {p2, p3}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string p3, "status"
const-string v0, ""
.line 92
invoke-virtual {p2, p3, v0}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p3
const-string v0, "ok"
.line 93
invoke-virtual {p3, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result p3
if-nez p3, :cond_1
return v1
:cond_1
const-string p3, "ddl"
const/4 v0, 0x0
.line 98
invoke-virtual {p2, p3, v0}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p3
const-string v2, "deferred_passthrough"
.line 99
invoke-virtual {p2, v2, v0}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 100
invoke-static {}, Lcom/singular/sdk/internal/Utils;->isOpenedWithDeeplink()Z
move-result v3
if-nez v3, :cond_3
.line 101
invoke-static {p3}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_2
invoke-static {v2}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_3
goto :goto_0
:catch_0
move-exception p1
goto :goto_1
.line 102
:cond_2
:goto_0
invoke-virtual {p0, p1, p3, v2}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->handleDDL(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;Ljava/lang/String;)V
:cond_3
const-string p3, "resolved_singular_link"
.line 105
invoke-virtual {p2, p3, v0}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p3
.line 107
invoke-static {p3}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_4
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->this$0:Lcom/singular/sdk/internal/ApiStartSession;
const-string v2, "singular_link_resolve_required"
.line 108
invoke-virtual {v0, v2}, Ljava/util/AbstractMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
if-eqz v0, :cond_4
.line 110
invoke-static {v0}, Ljava/lang/Boolean;->parseBoolean(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_4
iget-object v0, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->this$0:Lcom/singular/sdk/internal/ApiStartSession;
.line 111
invoke-virtual {v0}, Lcom/singular/sdk/internal/ApiStartSession;->getTimestamp()J
move-result-wide v2
invoke-static {v2, v3}, Lcom/singular/sdk/internal/Utils;->lagSince(J)D
move-result-wide v2
.line 112
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->getInstance()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v0
.line 113
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object v0
iget-wide v4, v0, Lcom/singular/sdk/SingularConfig;->shortlinkTimeoutSec:J
long-to-double v4, v4
cmpg-double v0, v2, v4
if-gez v0, :cond_4
.line 116
invoke-static {p3}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object p3
invoke-static {p3}, Lcom/singular/sdk/internal/Utils;->handleSingularLink(Landroid/net/Uri;)V
:cond_4
const-string p3, "first_time"
.line 121
invoke-virtual {p2, p3, v1}, Lorg/json/JSONObject;->optBoolean(Ljava/lang/String;Z)Z
move-result p2
if-eqz p2, :cond_5
.line 123
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->handleInstallFacebook(Lcom/singular/sdk/internal/SingularInstance;)V
.line 124
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->handleInstallReferrer(Lcom/singular/sdk/internal/SingularInstance;)V
:cond_5
iget-object p2, p0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->this$0:Lcom/singular/sdk/internal/ApiStartSession;
const-string p3, "u"
.line 127
invoke-virtual {p2, p3}, Ljava/util/AbstractMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/lang/String;
.line 128
invoke-static {p2}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result p3
if-nez p3, :cond_6
.line 129
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object p3
invoke-static {p3, p2}, Lcom/singular/sdk/internal/Utils;->isLicenseRetrieved(Landroid/content/Context;Ljava/lang/String;)Z
move-result p3
if-nez p3, :cond_6
.line 130
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;->performLicenseCheck(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;)V
:try_end_0
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
:cond_6
const/4 p1, 0x1
return p1
.line 135
:goto_1
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p2
const-string p3, "error in handle()"
invoke-virtual {p2, p3, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
return v1
.end method
.method public handleDDL(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;Ljava/lang/String;)V
.locals 0
.line 259
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
.line 261
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
const-string p3, "DDLHandler is not configured, ignoring callback for url = %s"
filled-new-array {p2}, [Ljava/lang/Object;
move-result-object p2
invoke-virtual {p1, p3, p2}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;[Ljava/lang/Object;)I
return-void
.end method
.method public handleInstallFacebook(Lcom/singular/sdk/internal/SingularInstance;)V
.locals 4
.line 232
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object v0
iget-object v0, v0, Lcom/singular/sdk/SingularConfig;->facebookAppId:Ljava/lang/String;
.line 233
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_0
.line 234
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
const-string v0, "facebookAppId is not set"
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
return-void
.line 238
:cond_0
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getDeviceInfo()Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v1
iget-object v1, v1, Lcom/singular/sdk/internal/DeviceInfo;->fbAttributionId:Ljava/lang/String;
.line 239
invoke-static {v1}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_1
.line 240
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
const-string v0, "fbAttributionId is not available"
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
return-void
.line 245
:cond_1
:try_start_0
new-instance v2, Lorg/json/JSONObject;
invoke-direct {v2}, Lorg/json/JSONObject;-><init>()V
const-string v3, "fb_app_attribution"
.line 246
invoke-virtual {v2, v3, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v1, "fb_app_ids"
.line 247
invoke-virtual {v2, v1, v0}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 248
invoke-virtual {v2}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object v0
.line 250
new-instance v1, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
const-string v2, "__FBInstall"
invoke-direct {v1, v2, v0}, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 252
invoke-virtual {p1, v1}, 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
.line 254
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "error in handleInstallFacebook()"
invoke-virtual {v0, v1, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_0
return-void
.end method
.method public handleInstallReferrer(Lcom/singular/sdk/internal/SingularInstance;)V
.locals 2
.line 202
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "Trying to fetch referrer by NEW play referrer method"
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
.line 206
:try_start_0
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object v0
new-instance v1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;
invoke-direct {v1, p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$2;-><init>(Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;Lcom/singular/sdk/internal/SingularInstance;)V
invoke-static {v0, v1}, Lcom/singular/sdk/internal/NewPlayReferrerUtils;->queryNewPlayReferrerValue(Landroid/content/Context;Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
.line 227
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "Failed to fetch play referrer value"
invoke-virtual {v0, v1, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_0
return-void
.end method
.method public final isLicenseResponseValid(I)Z
.locals 1
const/4 v0, -0x1
if-eq p1, v0, :cond_0
const/16 v0, 0x101
if-eq p1, v0, :cond_0
const/4 v0, 0x4
if-eq p1, v0, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public performLicenseCheck(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;)V
.locals 2
.line 142
invoke-static {}, Lcom/singular/sdk/internal/ApiStartSession;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v1, "Trying to fetch license key from the Licensing Service"
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
.line 143
new-instance v0, Ljava/lang/Thread;
new-instance v1, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;
invoke-direct {v1, p0, p1, p2}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback$1;-><init>(Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;)V
invoke-direct {v0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
.line 184
invoke-virtual {v0}, Ljava/lang/Thread;->start()V
return-void
.end method

View File

@@ -0,0 +1,618 @@
.class public Lcom/singular/sdk/internal/ApiStartSession$Params;
.super Lcom/singular/sdk/internal/SingularMap;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiStartSession;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Params"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 325
invoke-direct {p0}, Lcom/singular/sdk/internal/SingularMap;-><init>()V
return-void
.end method
.method public static build(JLcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/ApiStartSession$Params;
.locals 1
.line 329
new-instance v0, Lcom/singular/sdk/internal/ApiStartSession$Params;
invoke-direct {v0}, Lcom/singular/sdk/internal/ApiStartSession$Params;-><init>()V
.line 330
invoke-virtual {v0, p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$Params;->withId(J)Lcom/singular/sdk/internal/ApiStartSession$Params;
move-result-object p0
.line 331
invoke-virtual {p2}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$Params;->withSingularConfig(Lcom/singular/sdk/SingularConfig;)Lcom/singular/sdk/internal/ApiStartSession$Params;
move-result-object p0
.line 332
invoke-virtual {p2}, Lcom/singular/sdk/internal/SingularInstance;->getDeviceInfo()Lcom/singular/sdk/internal/DeviceInfo;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$Params;->withDeviceInfo(Lcom/singular/sdk/internal/DeviceInfo;)Lcom/singular/sdk/internal/ApiStartSession$Params;
move-result-object p0
.line 333
invoke-virtual {p2}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object p1
invoke-static {p1}, Lcom/singular/sdk/internal/Utils;->getConnectionType(Landroid/content/Context;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$Params;->withConnectionType(Ljava/lang/String;)Lcom/singular/sdk/internal/ApiStartSession$Params;
move-result-object p0
.line 334
invoke-virtual {p2}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/ApiStartSession$Params;->withAppInstallInfo(Landroid/content/Context;)Lcom/singular/sdk/internal/ApiStartSession$Params;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public final withAppInstallInfo(Landroid/content/Context;)Lcom/singular/sdk/internal/ApiStartSession$Params;
.locals 1
.line 465
invoke-static {p1}, Lcom/singular/sdk/internal/Utils;->isFirstInstall(Landroid/content/Context;)Z
move-result p1
const-string v0, "is"
if-eqz p1, :cond_0
const-string p1, "true"
.line 466
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto :goto_0
:cond_0
const-string p1, "false"
.line 468
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
:goto_0
return-object p0
.end method
.method public final withConnectionType(Ljava/lang/String;)Lcom/singular/sdk/internal/ApiStartSession$Params;
.locals 1
const-string v0, "c"
.line 343
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-object p0
.end method
.method public final withDeviceInfo(Lcom/singular/sdk/internal/DeviceInfo;)Lcom/singular/sdk/internal/ApiStartSession$Params;
.locals 4
.line 387
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->abi:Ljava/lang/String;
const-string v1, "ab"
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "av"
.line 388
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->appVersion:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "br"
.line 389
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->deviceBrand:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "de"
.line 390
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->deviceBuild:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "i"
.line 391
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->packageName:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "ma"
.line 392
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->deviceManufacturer:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "mo"
.line 393
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->deviceModel:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "n"
.line 394
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->appName:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "p"
.line 395
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->platform:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "pr"
.line 396
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->buildProduct:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "sdk"
.line 397
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getSdkVersion()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 400
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->aifa:Ljava/lang/String;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
const-string v1, "u"
const-string v2, "k"
if-nez v0, :cond_0
const-string v0, "aifa"
.line 401
iget-object v3, p1, Lcom/singular/sdk/internal/DeviceInfo;->aifa:Ljava/lang/String;
invoke-virtual {p0, v0, v3}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "AIFA"
.line 402
invoke-virtual {p0, v2, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 403
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->aifa:Ljava/lang/String;
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto :goto_0
.line 404
:cond_0
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->imei:Ljava/lang/String;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "imei"
.line 405
iget-object v3, p1, Lcom/singular/sdk/internal/DeviceInfo;->imei:Ljava/lang/String;
invoke-virtual {p0, v0, v3}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "IMEI"
.line 406
invoke-virtual {p0, v2, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 407
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->imei:Ljava/lang/String;
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "andi"
.line 408
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->andi:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto :goto_0
:cond_1
const-string v0, "ANDI"
.line 412
invoke-virtual {p0, v2, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 413
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->andi:Ljava/lang/String;
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 416
:goto_0
iget-boolean v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->isGooglePlayServicesAvailable:Z
if-eqz v0, :cond_3
iget-boolean v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->isLimitedTrackingEnabled:Z
if-eqz v0, :cond_2
const-string v0, "1"
goto :goto_1
:cond_2
const-string v0, "0"
goto :goto_1
:cond_3
const-string v0, "-1"
:goto_1
const-string v1, "dnt"
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "v"
.line 417
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->osVersion:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 420
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->installSource:Ljava/lang/String;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_4
const-string v0, "src"
.line 421
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->installSource:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 425
:cond_4
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->gcmRegId:Ljava/lang/String;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_5
const-string v0, "ri"
.line 426
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->gcmRegId:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 430
:cond_5
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->fcmRegId:Ljava/lang/String;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_6
const-string v0, "fi"
.line 431
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->fcmRegId:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 435
:cond_6
invoke-virtual {p1}, Lcom/singular/sdk/internal/DeviceInfo;->hasPreloadCampaign()Z
move-result v0
if-eqz v0, :cond_7
const-string v0, "apc"
.line 436
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->preloadCampaign:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "apg"
.line 437
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->preloadGroup:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "aps"
.line 438
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->preloadSource:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 441
:cond_7
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Locale;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "lc"
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 444
iget-wide v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->firstInstallTime:J
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Long;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "install_time"
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 445
iget-wide v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->lastUpdateTime:J
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Long;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "update_time"
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 448
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Long;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "current_device_time"
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "device_type"
.line 451
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->deviceType:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "custom_user_id"
.line 454
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->customUserId:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 457
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->deviceUserAgent:Ljava/lang/String;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_8
const-string v0, "device_user_agent"
.line 458
iget-object p1, p1, Lcom/singular/sdk/internal/DeviceInfo;->deviceUserAgent:Ljava/lang/String;
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
:cond_8
return-object p0
.end method
.method public final withId(J)Lcom/singular/sdk/internal/ApiStartSession$Params;
.locals 1
const-string v0, "s"
.line 338
invoke-static {p1, p2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-object p0
.end method
.method public final withSingularConfig(Lcom/singular/sdk/SingularConfig;)Lcom/singular/sdk/internal/ApiStartSession$Params;
.locals 3
.line 348
iget-object v0, p1, Lcom/singular/sdk/SingularConfig;->apiKey:Ljava/lang/String;
const-string v1, "a"
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 350
iget-object v0, p1, Lcom/singular/sdk/SingularConfig;->openUri:Landroid/net/Uri;
if-eqz v0, :cond_0
const-string v1, "referrer"
.line 352
invoke-virtual {v0, v1}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const-string v2, "ref"
invoke-virtual {p0, v2, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v1, "extra"
.line 353
invoke-virtual {v0}, Landroid/net/Uri;->getQuery()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
:cond_0
const-string v0, "ddl_enabled"
const-string v1, "false"
.line 361
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 365
iget-object v0, p1, Lcom/singular/sdk/SingularConfig;->singularLink:Landroid/net/Uri;
if-eqz v0, :cond_3
.line 366
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->validateSingularLink(Landroid/net/Uri;)Z
move-result v0
if-eqz v0, :cond_2
.line 367
iget-object v0, p1, Lcom/singular/sdk/SingularConfig;->singularLink:Landroid/net/Uri;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isShortLink(Landroid/net/Uri;)Z
move-result v0
if-nez v0, :cond_1
.line 370
iget-object v1, p1, Lcom/singular/sdk/SingularConfig;->singularLink:Landroid/net/Uri;
invoke-static {v1}, Lcom/singular/sdk/internal/Utils;->handleSingularLink(Landroid/net/Uri;)V
.line 373
:cond_1
iget-object v1, p1, Lcom/singular/sdk/SingularConfig;->singularLink:Landroid/net/Uri;
invoke-virtual {v1}, Landroid/net/Uri;->toString()Ljava/lang/String;
move-result-object v1
const-string v2, "singular_link"
invoke-virtual {p0, v2, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 374
iget-wide v1, p1, Lcom/singular/sdk/SingularConfig;->shortlinkTimeoutSec:J
invoke-static {v1, v2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v1
const-string v2, "singular_link_resolve_timeout"
invoke-virtual {p0, v2, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v1, "singular_link_resolve_required"
.line 375
invoke-static {v0}, Ljava/lang/String;->valueOf(Z)Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
:cond_2
const/4 v0, 0x0
.line 379
iput-object v0, p1, Lcom/singular/sdk/SingularConfig;->singularLink:Landroid/net/Uri;
:cond_3
return-object p0
.end method

View File

@@ -0,0 +1,151 @@
.class public Lcom/singular/sdk/internal/ApiStartSession;
.super Lcom/singular/sdk/internal/BaseApi;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/ApiStartSession$Params;,
Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# instance fields
.field public licenseAttemptsCounter:I
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/ApiStartSession;
.line 39
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/ApiStartSession;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(J)V
.locals 1
const-string v0, "SESSION_START"
.line 47
invoke-direct {p0, v0, p1, p2}, Lcom/singular/sdk/internal/BaseApi;-><init>(Ljava/lang/String;J)V
const/4 p1, 0x0
iput p1, p0, Lcom/singular/sdk/internal/ApiStartSession;->licenseAttemptsCounter:I
return-void
.end method
.method public static synthetic access$000()Lcom/singular/sdk/internal/SingularLog;
.locals 1
sget-object v0, Lcom/singular/sdk/internal/ApiStartSession;->logger:Lcom/singular/sdk/internal/SingularLog;
return-object v0
.end method
.method public static synthetic access$100(Lcom/singular/sdk/internal/ApiStartSession;)I
.locals 0
.line 37
iget p0, p0, Lcom/singular/sdk/internal/ApiStartSession;->licenseAttemptsCounter:I
return p0
.end method
.method public static synthetic access$108(Lcom/singular/sdk/internal/ApiStartSession;)I
.locals 2
.line 37
iget v0, p0, Lcom/singular/sdk/internal/ApiStartSession;->licenseAttemptsCounter:I
add-int/lit8 v1, v0, 0x1
iput v1, p0, Lcom/singular/sdk/internal/ApiStartSession;->licenseAttemptsCounter:I
return v0
.end method
# virtual methods
.method public getOnApiCallback()Lcom/singular/sdk/internal/Api$OnApiCallback;
.locals 1
.line 57
new-instance v0, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/ApiStartSession$OnSessionStartCallback;-><init>(Lcom/singular/sdk/internal/ApiStartSession;)V
return-object v0
.end method
.method public getPath()Ljava/lang/String;
.locals 1
const-string v0, "/start"
return-object v0
.end method
.method public bridge synthetic getTimestamp()J
.locals 2
.line 37
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getTimestamp()J
move-result-wide v0
return-wide v0
.end method
.method public bridge synthetic getUrl()Ljava/lang/String;
.locals 1
.line 37
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getUrl()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
.locals 0
.line 37
invoke-super {p0, p1}, Lcom/singular/sdk/internal/BaseApi;->makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
move-result p1
return p1
.end method
.method public bridge synthetic toJsonAsString()Ljava/lang/String;
.locals 1
.line 37
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->toJsonAsString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,101 @@
.class public Lcom/singular/sdk/internal/ApiSubmitEvent$OnEventSubmitCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/Api$OnApiCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiSubmitEvent;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "OnEventSubmitCallback"
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/ApiSubmitEvent;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/ApiSubmitEvent;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$OnEventSubmitCallback;->this$0:Lcom/singular/sdk/internal/ApiSubmitEvent;
.line 50
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public handle(Lcom/singular/sdk/internal/SingularInstance;ILjava/lang/String;)Z
.locals 2
const/16 p1, 0x19d
const/4 v0, 0x1
if-ne p2, p1, :cond_0
return v0
:cond_0
const/16 p1, 0xc8
const/4 v1, 0x0
if-eq p2, p1, :cond_1
return v1
.line 71
:cond_1
:try_start_0
new-instance p1, Lorg/json/JSONObject;
invoke-direct {p1, p3}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string p2, "status"
const-string p3, ""
.line 73
invoke-virtual {p1, p2, p3}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const-string p2, "ok"
.line 74
invoke-virtual {p1, p2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result p1
:try_end_0
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
if-eqz p1, :cond_2
return v0
:catch_0
move-exception p1
.line 78
invoke-static {}, Lcom/singular/sdk/internal/ApiSubmitEvent;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p2
const-string p3, "error in handle()"
invoke-virtual {p2, p3, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_2
return v1
.end method

View File

@@ -0,0 +1,383 @@
.class public Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.super Lcom/singular/sdk/internal/SingularMap;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiSubmitEvent;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Params"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 135
invoke-direct {p0}, Lcom/singular/sdk/internal/SingularMap;-><init>()V
return-void
.end method
.method public static build(Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.locals 7
.line 139
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getSessionManager()Lcom/singular/sdk/internal/SessionManager;
move-result-object v0
invoke-virtual {v0}, Lcom/singular/sdk/internal/SessionManager;->getSessionId()J
move-result-wide v0
.line 140
new-instance v2, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
invoke-direct {v2}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;-><init>()V
iget-object v3, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->name:Ljava/lang/String;
.line 141
invoke-virtual {v2, v3}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;->withName(Ljava/lang/String;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
move-result-object v2
iget-object v3, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->extra:Ljava/lang/String;
.line 142
invoke-virtual {v2, v3}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;->withExtra(Ljava/lang/String;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
move-result-object v2
iget-wide v3, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->timestamp:J
sub-long/2addr v3, v0
long-to-double v3, v3
const-wide v5, 0x3f50624dd2f1a9fcL # 0.001
mul-double/2addr v3, v5
.line 143
invoke-virtual {v2, v3, v4}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;->withSecondsIntoSession(D)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
move-result-object p0
.line 144
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;->withSession(J)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
move-result-object p0
.line 145
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getSessionManager()Lcom/singular/sdk/internal/SessionManager;
move-result-object v0
invoke-virtual {v0}, Lcom/singular/sdk/internal/SessionManager;->getNextSequenceNumber()J
move-result-wide v0
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;->withSequence(J)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
move-result-object p0
.line 146
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;->withSingularConfig(Lcom/singular/sdk/SingularConfig;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
move-result-object p0
.line 147
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getDeviceInfo()Lcom/singular/sdk/internal/DeviceInfo;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;->withDeviceInfo(Lcom/singular/sdk/internal/DeviceInfo;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public final withDeviceInfo(Lcom/singular/sdk/internal/DeviceInfo;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.locals 4
.line 199
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->appVersion:Ljava/lang/String;
const-string v1, "av"
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "i"
.line 200
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->packageName:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "p"
.line 201
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->platform:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "sdk"
.line 202
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getSdkVersion()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 205
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->aifa:Ljava/lang/String;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
const-string v1, "u"
const-string v2, "k"
if-nez v0, :cond_0
const-string v0, "aifa"
.line 206
iget-object v3, p1, Lcom/singular/sdk/internal/DeviceInfo;->aifa:Ljava/lang/String;
invoke-virtual {p0, v0, v3}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "AIFA"
.line 207
invoke-virtual {p0, v2, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 208
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->aifa:Ljava/lang/String;
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto :goto_0
.line 209
:cond_0
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->imei:Ljava/lang/String;
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "imei"
.line 210
iget-object v3, p1, Lcom/singular/sdk/internal/DeviceInfo;->imei:Ljava/lang/String;
invoke-virtual {p0, v0, v3}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "IMEI"
.line 211
invoke-virtual {p0, v2, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 212
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->imei:Ljava/lang/String;
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string v0, "andi"
.line 213
iget-object v1, p1, Lcom/singular/sdk/internal/DeviceInfo;->andi:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto :goto_0
:cond_1
const-string v0, "ANDI"
.line 217
invoke-virtual {p0, v2, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.line 218
iget-object v0, p1, Lcom/singular/sdk/internal/DeviceInfo;->andi:Ljava/lang/String;
invoke-virtual {p0, v1, v0}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
:goto_0
const-string v0, "custom_user_id"
.line 223
iget-object p1, p1, Lcom/singular/sdk/internal/DeviceInfo;->customUserId:Ljava/lang/String;
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-object p0
.end method
.method public final withExtra(Ljava/lang/String;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.locals 4
.line 169
:try_start_0
invoke-static {p1}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
:try_end_0
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
const/4 v1, 0x0
const-string v2, "is_revenue_event"
if-eqz v0, :cond_0
.line 170
:try_start_1
new-instance p1, Lorg/json/JSONObject;
invoke-direct {p1}, Lorg/json/JSONObject;-><init>()V
invoke-virtual {p1, v2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
move-result-object p1
invoke-virtual {p1}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object p1
goto :goto_0
:catch_0
move-exception p1
goto :goto_1
.line 172
:cond_0
new-instance v0, Lorg/json/JSONObject;
invoke-direct {v0, p1}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
.line 174
invoke-virtual {v0, v2, v1}, Lorg/json/JSONObject;->optBoolean(Ljava/lang/String;Z)Z
move-result v3
if-nez v3, :cond_1
.line 175
invoke-virtual {v0, v2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
move-result-object p1
invoke-virtual {p1}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object p1
:cond_1
:goto_0
const-string v0, "e"
.line 179
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
:try_end_1
.catch Lorg/json/JSONException; {:try_start_1 .. :try_end_1} :catch_0
goto :goto_2
.line 181
:goto_1
invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V
:goto_2
return-object p0
.end method
.method public final withName(Ljava/lang/String;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.locals 1
const-string v0, "n"
.line 151
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-object p0
.end method
.method public final withSecondsIntoSession(D)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.locals 1
const-string v0, "t"
.line 161
invoke-static {p1, p2}, Ljava/lang/String;->valueOf(D)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-object p0
.end method
.method public final withSequence(J)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.locals 1
const-string v0, "seq"
.line 188
invoke-static {p1, p2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-object p0
.end method
.method public final withSession(J)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.locals 1
const-string v0, "s"
.line 156
invoke-static {p1, p2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-object p0
.end method
.method public final withSingularConfig(Lcom/singular/sdk/SingularConfig;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
.locals 1
const-string v0, "a"
.line 193
iget-object p1, p1, Lcom/singular/sdk/SingularConfig;->apiKey:Ljava/lang/String;
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-object p0
.end method

View File

@@ -0,0 +1,128 @@
.class public Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ApiSubmitEvent;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "RawEvent"
.end annotation
# instance fields
.field public final extra:Ljava/lang/String;
.field public final name:Ljava/lang/String;
.field public final timestamp:J
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/String;)V
.locals 2
.line 92
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "\\n"
const-string v1, ""
.line 93
invoke-virtual {p1, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->name:Ljava/lang/String;
.line 94
invoke-static {p2}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result p1
if-nez p1, :cond_0
invoke-virtual {p2, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object p1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
iput-object p1, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->extra:Ljava/lang/String;
.line 95
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J
move-result-wide p1
iput-wide p1, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->timestamp:J
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 3
.line 100
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "RawEvent{"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const-string v1, "name=\'"
.line 101
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->name:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x27
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v2, ", extra=\'"
.line 102
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->extra:Ljava/lang/String;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v1, ", timestamp="
.line 103
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->timestamp:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const/16 v1, 0x7d
.line 104
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 105
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,122 @@
.class public Lcom/singular/sdk/internal/ApiSubmitEvent;
.super Lcom/singular/sdk/internal/BaseApi;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/ApiSubmitEvent$Params;,
Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;,
Lcom/singular/sdk/internal/ApiSubmitEvent$OnEventSubmitCallback;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/ApiSubmitEvent;
.line 31
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/ApiSubmitEvent;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(J)V
.locals 1
const-string v0, "EVENT"
.line 36
invoke-direct {p0, v0, p1, p2}, Lcom/singular/sdk/internal/BaseApi;-><init>(Ljava/lang/String;J)V
return-void
.end method
.method public static synthetic access$000()Lcom/singular/sdk/internal/SingularLog;
.locals 1
sget-object v0, Lcom/singular/sdk/internal/ApiSubmitEvent;->logger:Lcom/singular/sdk/internal/SingularLog;
return-object v0
.end method
# virtual methods
.method public getOnApiCallback()Lcom/singular/sdk/internal/Api$OnApiCallback;
.locals 1
.line 46
new-instance v0, Lcom/singular/sdk/internal/ApiSubmitEvent$OnEventSubmitCallback;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/ApiSubmitEvent$OnEventSubmitCallback;-><init>(Lcom/singular/sdk/internal/ApiSubmitEvent;)V
return-object v0
.end method
.method public getPath()Ljava/lang/String;
.locals 1
const-string v0, "/event"
return-object v0
.end method
.method public bridge synthetic getTimestamp()J
.locals 2
.line 29
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getTimestamp()J
move-result-wide v0
return-wide v0
.end method
.method public bridge synthetic getUrl()Ljava/lang/String;
.locals 1
.line 29
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->getUrl()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
.locals 0
.line 29
invoke-super {p0, p1}, Lcom/singular/sdk/internal/BaseApi;->makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
move-result p1
return p1
.end method
.method public bridge synthetic toJsonAsString()Ljava/lang/String;
.locals 1
.line 29
invoke-super {p0}, Lcom/singular/sdk/internal/BaseApi;->toJsonAsString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,431 @@
.class public abstract Lcom/singular/sdk/internal/BaseApi;
.super Lcom/singular/sdk/internal/SingularMap;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/Api;
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/BaseApi;
.line 48
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/BaseApi;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;J)V
.locals 1
.line 54
invoke-direct {p0}, Lcom/singular/sdk/internal/SingularMap;-><init>()V
const-string v0, "__TYPE__"
.line 55
invoke-virtual {p0, v0, p1}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
const-string p1, "__TIMESTAMP__"
.line 56
invoke-static {p2, p3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p2
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
return-void
.end method
.method public static from(Ljava/lang/String;)Lcom/singular/sdk/internal/BaseApi;
.locals 4
if-eqz p0, :cond_6
.line 128
invoke-static {p0}, Lcom/singular/sdk/internal/BaseApi;->fromString(Ljava/lang/String;)Ljava/util/Map;
move-result-object p0
const-string v0, "__TYPE__"
.line 129
invoke-interface {p0, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
const-string v1, "__TIMESTAMP__"
.line 130
invoke-interface {p0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
.line 131
invoke-static {v1}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_0
invoke-static {v1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v1
goto :goto_0
:cond_0
const-wide/16 v1, -0x1
:goto_0
const-string v3, "EVENT"
.line 134
invoke-virtual {v3, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_1
.line 135
new-instance v0, Lcom/singular/sdk/internal/ApiSubmitEvent;
invoke-direct {v0, v1, v2}, Lcom/singular/sdk/internal/ApiSubmitEvent;-><init>(J)V
.line 136
invoke-virtual {v0, p0}, Lcom/singular/sdk/internal/BaseApi;->addParams(Ljava/util/Map;)V
return-object v0
:cond_1
const-string v3, "SESSION_START"
.line 140
invoke-virtual {v3, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_2
.line 141
new-instance v0, Lcom/singular/sdk/internal/ApiStartSession;
invoke-direct {v0, v1, v2}, Lcom/singular/sdk/internal/ApiStartSession;-><init>(J)V
.line 142
invoke-virtual {v0, p0}, Lcom/singular/sdk/internal/BaseApi;->addParams(Ljava/util/Map;)V
return-object v0
:cond_2
const-string v3, "GDPR_CONSENT"
.line 146
invoke-virtual {v3, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_3
.line 147
new-instance v0, Lcom/singular/sdk/internal/ApiGDPRConsent;
invoke-direct {v0, v1, v2}, Lcom/singular/sdk/internal/ApiGDPRConsent;-><init>(J)V
.line 148
invoke-virtual {v0, p0}, Lcom/singular/sdk/internal/BaseApi;->addParams(Ljava/util/Map;)V
return-object v0
:cond_3
const-string v3, "GDPR_UNDER_13"
.line 152
invoke-virtual {v3, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_4
.line 153
new-instance v0, Lcom/singular/sdk/internal/ApiGDPRUnder13;
invoke-direct {v0, v1, v2}, Lcom/singular/sdk/internal/ApiGDPRUnder13;-><init>(J)V
.line 154
invoke-virtual {v0, p0}, Lcom/singular/sdk/internal/BaseApi;->addParams(Ljava/util/Map;)V
return-object v0
:cond_4
const-string v3, "CUSTOM_USER_ID"
.line 158
invoke-virtual {v3, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_5
.line 159
new-instance v0, Lcom/singular/sdk/internal/ApiCustomUserId;
invoke-direct {v0, v1, v2}, Lcom/singular/sdk/internal/ApiCustomUserId;-><init>(J)V
.line 160
invoke-virtual {v0, p0}, Lcom/singular/sdk/internal/BaseApi;->addParams(Ljava/util/Map;)V
return-object v0
.line 164
:cond_5
new-instance p0, Ljava/util/InvalidPropertiesFormatException;
const-string v1, "Unknown type = %s"
filled-new-array {v0}, [Ljava/lang/Object;
move-result-object v0
invoke-static {v1, v0}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Ljava/util/InvalidPropertiesFormatException;-><init>(Ljava/lang/String;)V
throw p0
.line 125
:cond_6
new-instance p0, Ljava/lang/NullPointerException;
const-string v0, "api string cannot be null"
invoke-direct {p0, v0}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static fromString(Ljava/lang/String;)Ljava/util/Map;
.locals 4
.line 176
:try_start_0
new-instance v0, Lorg/json/JSONObject;
invoke-direct {v0, p0}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
.line 177
new-instance p0, Ljava/util/HashMap;
invoke-direct {p0}, Ljava/util/HashMap;-><init>()V
.line 180
invoke-virtual {v0}, Lorg/json/JSONObject;->keys()Ljava/util/Iterator;
move-result-object v1
.line 181
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_0
.line 182
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 183
invoke-virtual {v0, v2}, Lorg/json/JSONObject;->get(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/String;
.line 184
invoke-interface {p0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_0
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p0
goto :goto_1
:cond_0
return-object p0
.line 188
:goto_1
new-instance v0, Ljava/io/IOException;
invoke-direct {v0, p0}, Ljava/io/IOException;-><init>(Ljava/lang/Throwable;)V
throw v0
.end method
# virtual methods
.method public addParams(Ljava/util/Map;)V
.locals 0
if-nez p1, :cond_0
return-void
.line 84
:cond_0
invoke-virtual {p0, p1}, Ljava/util/AbstractMap;->putAll(Ljava/util/Map;)V
return-void
.end method
.method public getParams()Ljava/util/Map;
.locals 2
.line 66
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0, p0}, Ljava/util/HashMap;-><init>(Ljava/util/Map;)V
const-string v1, "__TYPE__"
.line 68
invoke-virtual {v0, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
const-string v1, "__TIMESTAMP__"
.line 69
invoke-virtual {v0, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
return-object v0
.end method
.method public getTimestamp()J
.locals 2
const-string v0, "__TIMESTAMP__"
.line 94
invoke-virtual {p0, v0}, Ljava/util/AbstractMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 95
invoke-static {v0}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_0
invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
goto :goto_0
:cond_0
const-wide/16 v0, -0x1
:goto_0
return-wide v0
.end method
.method public getUrl()Ljava/lang/String;
.locals 2
.line 99
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "https://sdk-api-v1.singular.net/api/v1"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {p0}, Lcom/singular/sdk/internal/Api;->getPath()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public makeRequest(Lcom/singular/sdk/internal/SingularInstance;)Z
.locals 6
.line 104
invoke-virtual {p0}, Lcom/singular/sdk/internal/BaseApi;->getUrl()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0}, Lcom/singular/sdk/internal/BaseApi;->getParams()Ljava/util/Map;
move-result-object v2
invoke-virtual {p0}, Lcom/singular/sdk/internal/BaseApi;->getTimestamp()J
move-result-wide v3
invoke-interface {p0}, Lcom/singular/sdk/internal/Api;->getOnApiCallback()Lcom/singular/sdk/internal/Api$OnApiCallback;
move-result-object v5
move-object v0, p1
invoke-static/range {v0 .. v5}, Lcom/singular/sdk/internal/SingularRequestHandler;->makeRequest(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;Ljava/util/Map;JLcom/singular/sdk/internal/Api$OnApiCallback;)Z
move-result p1
return p1
.end method
.method public toJsonAsString()Ljava/lang/String;
.locals 1
.line 110
new-instance v0, Lorg/json/JSONObject;
invoke-direct {v0, p0}, Lorg/json/JSONObject;-><init>(Ljava/util/Map;)V
.line 112
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,73 @@
.class public Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;
.super Landroid/content/BroadcastReceiver;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/BroadcastReceivers;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "NetworkChange"
.end annotation
# instance fields
.field public final singular:Lcom/singular/sdk/internal/SingularInstance;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SingularInstance;)V
.locals 0
.line 34
invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
iput-object p1, p0, Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;->singular:Lcom/singular/sdk/internal/SingularInstance;
return-void
.end method
# virtual methods
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.locals 2
.line 40
invoke-static {}, Lcom/singular/sdk/internal/BroadcastReceivers;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object p2
filled-new-array {p2}, [Ljava/lang/Object;
move-result-object p2
const-string v1, "onReceive() action=%s "
invoke-virtual {v0, v1, p2}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 41
invoke-static {p1}, Lcom/singular/sdk/internal/Utils;->isConnected(Landroid/content/Context;)Z
move-result p1
if-eqz p1, :cond_0
iget-object p1, p0, Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 44
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getApiManager()Lcom/singular/sdk/internal/ApiManager;
move-result-object p1
invoke-virtual {p1}, Lcom/singular/sdk/internal/ApiManager;->wakeUp()V
:cond_0
return-void
.end method

View File

@@ -0,0 +1,44 @@
.class public abstract Lcom/singular/sdk/internal/BroadcastReceivers;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/BroadcastReceivers;
.line 26
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/BroadcastReceivers;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public static synthetic access$000()Lcom/singular/sdk/internal/SingularLog;
.locals 1
sget-object v0, Lcom/singular/sdk/internal/BroadcastReceivers;->logger:Lcom/singular/sdk/internal/SingularLog;
return-object v0
.end method

View File

@@ -0,0 +1,72 @@
.class public interface abstract Lcom/singular/sdk/internal/Constants;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final HTTP_USER_AGENT:Ljava/lang/String;
.field public static final SDK_BUILD_INFO:Ljava/lang/String;
.field public static final SDK_VERSION:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.locals 4
.line 30
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
const-wide v1, 0x1730a08e360L # 7.873436167E-312
invoke-static {v1, v2}, Lcom/singular/sdk/internal/Utils;->formatTimestamp(J)Ljava/lang/String;
move-result-object v1
const-string v2, "540af8d9.master"
filled-new-array {v2, v1}, [Ljava/lang/Object;
move-result-object v1
const-string v2, "%s; %s"
invoke-static {v0, v2, v1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
sput-object v1, Lcom/singular/sdk/internal/Constants;->SDK_BUILD_INFO:Ljava/lang/String;
const-string v1, "9.4.1"
filled-new-array {v1}, [Ljava/lang/Object;
move-result-object v2
const-string v3, "Singular/v%s"
.line 31
invoke-static {v0, v3, v2}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
sput-object v2, Lcom/singular/sdk/internal/Constants;->SDK_VERSION:Ljava/lang/String;
const-string v2, "PROD"
filled-new-array {v1, v2}, [Ljava/lang/Object;
move-result-object v1
const-string v2, "Singular/SDK-v%s.%s"
.line 32
invoke-static {v0, v2, v1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/singular/sdk/internal/Constants;->HTTP_USER_AGENT:Ljava/lang/String;
return-void
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
.class public abstract synthetic Lcom/singular/sdk/internal/ExternalAIFAHelper$1;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ExternalAIFAHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation

View File

@@ -0,0 +1,103 @@
.class public Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder$GoogleAdvertisingInfoImplementation;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "GoogleAdvertisingInfoImplementation"
.end annotation
# instance fields
.field public _binder:Landroid/os/IBinder;
# direct methods
.method public constructor <init>(Landroid/os/IBinder;)V
.locals 0
.line 129
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder$GoogleAdvertisingInfoImplementation;->_binder:Landroid/os/IBinder;
return-void
.end method
# virtual methods
.method public asBinder()Landroid/os/IBinder;
.locals 1
iget-object v0, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder$GoogleAdvertisingInfoImplementation;->_binder:Landroid/os/IBinder;
return-object v0
.end method
.method public getId()Ljava/lang/String;
.locals 5
.line 138
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v0
.line 139
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v1
:try_start_0
const-string v2, "com.google.android.gms.ads.identifier.internal.IAdvertisingIdService"
.line 142
invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
iget-object v2, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder$GoogleAdvertisingInfoImplementation;->_binder:Landroid/os/IBinder;
const/4 v3, 0x1
const/4 v4, 0x0
.line 143
invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
.line 144
invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
.line 145
invoke-virtual {v1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v2
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 147
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
.line 148
invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
return-object v2
:catchall_0
move-exception v2
.line 147
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
.line 148
invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
.line 149
throw v2
.end method

View File

@@ -0,0 +1,63 @@
.class public abstract Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder;
.super Landroid/os/Binder;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "GoogleAdvertisingInfoBinder"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder$GoogleAdvertisingInfoImplementation;
}
.end annotation
# direct methods
.method public static Create(Landroid/os/IBinder;)Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;
.locals 2
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
const-string v0, "com.google.android.gms.ads.identifier.internal.IAdvertisingIdService"
.line 100
invoke-interface {p0, v0}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
move-result-object v0
if-eqz v0, :cond_1
.line 101
instance-of v1, v0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;
if-eqz v1, :cond_1
.line 102
check-cast v0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;
return-object v0
.line 104
:cond_1
new-instance v0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder$GoogleAdvertisingInfoImplementation;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder$GoogleAdvertisingInfoImplementation;-><init>(Landroid/os/IBinder;)V
return-object v0
.end method

View File

@@ -0,0 +1,28 @@
.class public interface abstract Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/os/IInterface;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ExternalAIFAHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "GoogleAdvertisingInfo"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder;
}
.end annotation
# virtual methods
.method public abstract getId()Ljava/lang/String;
.end method

View File

@@ -0,0 +1,108 @@
.class public Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/content/ServiceConnection;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/ExternalAIFAHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "GoogleAdvertisingServiceConnection"
.end annotation
# instance fields
.field public final _binderQueue:Ljava/util/concurrent/BlockingQueue;
.field public _consumed:Z
# direct methods
.method public constructor <init>()V
.locals 1
.line 71
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;->_consumed:Z
.line 73
new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue;
invoke-direct {v0}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V
iput-object v0, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;->_binderQueue:Ljava/util/concurrent/BlockingQueue;
return-void
.end method
.method public synthetic constructor <init>(Lcom/singular/sdk/internal/ExternalAIFAHelper$1;)V
.locals 0
.line 71
invoke-direct {p0}, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;-><init>()V
return-void
.end method
# virtual methods
.method public getBinder()Landroid/os/IBinder;
.locals 1
iget-boolean v0, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;->_consumed:Z
if-nez v0, :cond_0
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;->_consumed:Z
iget-object v0, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;->_binderQueue:Ljava/util/concurrent/BlockingQueue;
.line 88
invoke-interface {v0}, Ljava/util/concurrent/BlockingQueue;->take()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/os/IBinder;
return-object v0
.line 86
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0}, Ljava/lang/IllegalStateException;-><init>()V
throw v0
.end method
.method public onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
.locals 0
:try_start_0
iget-object p1, p0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;->_binderQueue:Ljava/util/concurrent/BlockingQueue;
.line 78
invoke-interface {p1, p2}, Ljava/util/concurrent/BlockingQueue;->put(Ljava/lang/Object;)V
:try_end_0
.catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
return-void
.end method
.method public onServiceDisconnected(Landroid/content/ComponentName;)V
.locals 0
return-void
.end method

View File

@@ -0,0 +1,112 @@
.class public abstract Lcom/singular/sdk/internal/ExternalAIFAHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;,
Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;
}
.end annotation
# direct methods
.method public static getAIFA(Landroid/content/Context;)Ljava/lang/String;
.locals 1
.line 35
:try_start_0
invoke-static {p0}, Lcom/singular/sdk/internal/ExternalAIFAHelper;->queryAdvertisingIdFromService(Landroid/content/Context;)Ljava/lang/String;
move-result-object p0
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
:catch_0
const-string p0, "Singular/ExtAIFAHelper"
const-string v0, "Could not determine AIFA"
.line 40
invoke-static {p0, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 p0, 0x0
return-object p0
.end method
.method public static queryAdvertisingIdFromService(Landroid/content/Context;)Ljava/lang/String;
.locals 3
.line 56
new-instance v0, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;-><init>(Lcom/singular/sdk/internal/ExternalAIFAHelper$1;)V
.line 57
new-instance v1, Landroid/content/Intent;
const-string v2, "com.google.android.gms.ads.identifier.service.START"
invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
const-string v2, "com.google.android.gms"
.line 58
invoke-virtual {v1, v2}, Landroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
const/4 v2, 0x1
.line 59
invoke-virtual {p0, v1, v0, v2}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
move-result v1
if-eqz v1, :cond_0
.line 61
:try_start_0
invoke-virtual {v0}, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingServiceConnection;->getBinder()Landroid/os/IBinder;
move-result-object v1
invoke-static {v1}, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo$GoogleAdvertisingInfoBinder;->Create(Landroid/os/IBinder;)Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;
move-result-object v1
.line 62
invoke-interface {v1}, Lcom/singular/sdk/internal/ExternalAIFAHelper$GoogleAdvertisingInfo;->getId()Ljava/lang/String;
move-result-object v1
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 65
invoke-virtual {p0, v0}, Landroid/content/Context;->unbindService(Landroid/content/ServiceConnection;)V
return-object v1
:catchall_0
move-exception v1
invoke-virtual {p0, v0}, Landroid/content/Context;->unbindService(Landroid/content/ServiceConnection;)V
.line 66
throw v1
.line 65
:catch_0
invoke-virtual {p0, v0}, Landroid/content/Context;->unbindService(Landroid/content/ServiceConnection;)V
:cond_0
const-string p0, ""
return-object p0
.end method

View File

@@ -0,0 +1,35 @@
.class public Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
.super Ljava/io/ByteArrayOutputStream;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/FixedSizePersistentQueue;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "DirectByteArrayOutputStream"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 177
invoke-direct {p0}, Ljava/io/ByteArrayOutputStream;-><init>()V
return-void
.end method
# virtual methods
.method public getArray()[B
.locals 1
iget-object v0, p0, Ljava/io/ByteArrayOutputStream;->buf:[B
return-object v0
.end method

View File

@@ -0,0 +1,393 @@
.class public final Lcom/singular/sdk/internal/FixedSizePersistentQueue;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/Queue;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# instance fields
.field public final MAX_SIZE:I
.field public final bytes:Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
.field public final queueFile:Lcom/singular/sdk/internal/QueueFile;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;
.line 34
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/FixedSizePersistentQueue;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(Lcom/singular/sdk/internal/QueueFile;I)V
.locals 1
.line 56
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 45
new-instance v0, Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
invoke-direct {v0}, Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;-><init>()V
iput-object v0, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->bytes:Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
iput-object p1, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->queueFile:Lcom/singular/sdk/internal/QueueFile;
iput p2, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->MAX_SIZE:I
return-void
.end method
.method public static create(Landroid/content/Context;Ljava/lang/String;I)Lcom/singular/sdk/internal/FixedSizePersistentQueue;
.locals 2
.line 48
new-instance v0, Ljava/io/File;
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object p0
invoke-direct {v0, p0, p1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 49
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result p0
if-eqz p0, :cond_0
sget-object p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 50
invoke-virtual {v0}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object p1
filled-new-array {p1}, [Ljava/lang/Object;
move-result-object p1
const-string v1, "FYI - file %s already exists, will reuse."
invoke-virtual {p0, v1, p1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 53
:cond_0
new-instance p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;
new-instance p1, Lcom/singular/sdk/internal/QueueFile$Builder;
invoke-direct {p1, v0}, Lcom/singular/sdk/internal/QueueFile$Builder;-><init>(Ljava/io/File;)V
invoke-virtual {p1}, Lcom/singular/sdk/internal/QueueFile$Builder;->build()Lcom/singular/sdk/internal/QueueFile;
move-result-object p1
invoke-direct {p0, p1, p2}, Lcom/singular/sdk/internal/FixedSizePersistentQueue;-><init>(Lcom/singular/sdk/internal/QueueFile;I)V
return-object p0
.end method
# virtual methods
.method public declared-synchronized add(Ljava/lang/String;)V
.locals 3
monitor-enter p0
.line 73
:try_start_0
invoke-static {p1}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz v0, :cond_0
monitor-exit p0
return-void
:cond_0
:try_start_1
iget-object v0, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->queueFile:Lcom/singular/sdk/internal/QueueFile;
.line 76
invoke-virtual {v0}, Lcom/singular/sdk/internal/QueueFile;->size()I
move-result v0
iget v1, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->MAX_SIZE:I
if-lt v0, v1, :cond_1
iget-object v0, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->queueFile:Lcom/singular/sdk/internal/QueueFile;
const/4 v1, 0x1
.line 77
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/QueueFile;->remove(I)V
goto :goto_0
:catchall_0
move-exception p1
goto :goto_1
:cond_1
:goto_0
iget-object v0, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->bytes:Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
.line 81
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
.line 83
new-instance v0, Ljava/io/OutputStreamWriter;
iget-object v1, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->bytes:Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
invoke-direct {v0, v1}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V
.line 85
invoke-virtual {v0, p1}, Ljava/io/Writer;->write(Ljava/lang/String;)V
.line 86
invoke-virtual {v0}, Ljava/io/Writer;->close()V
iget-object p1, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->queueFile:Lcom/singular/sdk/internal/QueueFile;
iget-object v0, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->bytes:Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
.line 88
invoke-virtual {v0}, Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;->getArray()[B
move-result-object v0
iget-object v1, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->bytes:Lcom/singular/sdk/internal/FixedSizePersistentQueue$DirectByteArrayOutputStream;
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->size()I
move-result v1
const/4 v2, 0x0
invoke-virtual {p1, v0, v2, v1}, Lcom/singular/sdk/internal/QueueFile;->add([BII)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 89
monitor-exit p0
return-void
:goto_1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized isEmpty()Z
.locals 1
monitor-enter p0
.line 69
:try_start_0
invoke-virtual {p0}, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->size()I
move-result v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
monitor-exit p0
return v0
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized peek()Ljava/lang/String;
.locals 3
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->queueFile:Lcom/singular/sdk/internal/QueueFile;
.line 92
invoke-virtual {v0}, Lcom/singular/sdk/internal/QueueFile;->peek()[B
move-result-object v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez v0, :cond_0
.line 93
monitor-exit p0
const/4 v0, 0x0
return-object v0
.line 94
:cond_0
:try_start_1
new-instance v1, Ljava/lang/String;
const-string v2, "UTF-8"
invoke-direct {v1, v0, v2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
monitor-exit p0
return-object v1
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized remove()V
.locals 1
monitor-enter p0
const/4 v0, 0x1
.line 116
:try_start_0
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->remove(I)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 117
monitor-exit p0
return-void
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized remove(I)V
.locals 1
monitor-enter p0
.line 120
:try_start_0
invoke-virtual {p0}, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->size()I
move-result v0
if-gt p1, v0, :cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->queueFile:Lcom/singular/sdk/internal/QueueFile;
.line 121
invoke-virtual {v0, p1}, Lcom/singular/sdk/internal/QueueFile;->remove(I)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception p1
goto :goto_1
.line 123
:cond_0
:goto_0
monitor-exit p0
return-void
:goto_1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized size()I
.locals 1
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/FixedSizePersistentQueue;->queueFile:Lcom/singular/sdk/internal/QueueFile;
.line 62
invoke-virtual {v0}, Lcom/singular/sdk/internal/QueueFile;->size()I
move-result v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return v0
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method

View File

@@ -0,0 +1,30 @@
.class public abstract Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/LicenseApiHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "LicenseResultHandler"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 11
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public abstract handle(ILjava/lang/String;Ljava/lang/String;)V
.end method

View File

@@ -0,0 +1,66 @@
.class public abstract Lcom/singular/sdk/internal/LicenseApiHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/LicenseApiHelper;
.line 9
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/LicenseApiHelper;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public static checkLicense(Landroid/content/Context;Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;)V
.locals 1
.line 19
:try_start_0
new-instance v0, Lcom/singular/sdk/internal/LicenseChecker;
invoke-direct {v0, p0, p1}, Lcom/singular/sdk/internal/LicenseChecker;-><init>(Landroid/content/Context;Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;)V
.line 20
invoke-virtual {v0}, Lcom/singular/sdk/internal/LicenseChecker;->checkAccess()V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p0
sget-object p1, Lcom/singular/sdk/internal/LicenseApiHelper;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "Error occurred while trying to run license check"
.line 23
invoke-virtual {p1, v0, p0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_0
return-void
.end method

View File

@@ -0,0 +1,14 @@
.class public abstract synthetic Lcom/singular/sdk/internal/LicenseChecker$1;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/LicenseChecker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation

View File

@@ -0,0 +1,57 @@
.class public Lcom/singular/sdk/internal/LicenseChecker$ResultListener;
.super Lcom/android/vending/licensing/ILicenseResultListener$Stub;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/LicenseChecker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "ResultListener"
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/LicenseChecker;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/LicenseChecker;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/LicenseChecker$ResultListener;->this$0:Lcom/singular/sdk/internal/LicenseChecker;
.line 171
invoke-direct {p0}, Lcom/android/vending/licensing/ILicenseResultListener$Stub;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lcom/singular/sdk/internal/LicenseChecker;Lcom/singular/sdk/internal/LicenseChecker$1;)V
.locals 0
.line 171
invoke-direct {p0, p1}, Lcom/singular/sdk/internal/LicenseChecker$ResultListener;-><init>(Lcom/singular/sdk/internal/LicenseChecker;)V
return-void
.end method
# virtual methods
.method public verifyLicense(ILjava/lang/String;Ljava/lang/String;)V
.locals 1
iget-object v0, p0, Lcom/singular/sdk/internal/LicenseChecker$ResultListener;->this$0:Lcom/singular/sdk/internal/LicenseChecker;
.line 177
invoke-static {v0}, Lcom/singular/sdk/internal/LicenseChecker;->access$100(Lcom/singular/sdk/internal/LicenseChecker;)Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
move-result-object v0
invoke-virtual {v0, p1, p2, p3}, Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;->handle(ILjava/lang/String;Ljava/lang/String;)V
return-void
.end method

View File

@@ -0,0 +1,452 @@
.class public Lcom/singular/sdk/internal/LicenseChecker;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/content/ServiceConnection;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/LicenseChecker$ResultListener;
}
.end annotation
# static fields
.field public static final RANDOM:Ljava/security/SecureRandom;
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# instance fields
.field public final handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
.field public final mContext:Landroid/content/Context;
.field public mHandler:Landroid/os/Handler;
.field public final mPackageName:Ljava/lang/String;
.field public mService:Lcom/android/vending/licensing/ILicensingService;
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 46
new-instance v0, Ljava/security/SecureRandom;
invoke-direct {v0}, Ljava/security/SecureRandom;-><init>()V
sput-object v0, Lcom/singular/sdk/internal/LicenseChecker;->RANDOM:Ljava/security/SecureRandom;
const-class v0, Lcom/singular/sdk/internal/LicenseApiHelper;
.line 47
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;)V
.locals 2
.line 69
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 70
new-instance v0, Landroid/os/HandlerThread;
const-string v1, "license_checker"
invoke-direct {v0, v1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
.line 71
invoke-virtual {v0}, Ljava/lang/Thread;->start()V
iput-object p1, p0, Lcom/singular/sdk/internal/LicenseChecker;->mContext:Landroid/content/Context;
.line 73
invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lcom/singular/sdk/internal/LicenseChecker;->mPackageName:Ljava/lang/String;
.line 74
new-instance p1, Landroid/os/Handler;
invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-direct {p1, v0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object p1, p0, Lcom/singular/sdk/internal/LicenseChecker;->mHandler:Landroid/os/Handler;
iput-object p2, p0, Lcom/singular/sdk/internal/LicenseChecker;->handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
return-void
.end method
.method public static synthetic access$100(Lcom/singular/sdk/internal/LicenseChecker;)Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
.locals 0
.line 44
iget-object p0, p0, Lcom/singular/sdk/internal/LicenseChecker;->handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
return-object p0
.end method
# virtual methods
.method public declared-synchronized checkAccess()V
.locals 10
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/LicenseChecker;->mService:Lcom/android/vending/licensing/ILicensingService;
const/4 v1, 0x0
const/4 v2, 0x2
const/4 v3, -0x1
const/4 v4, 0x1
if-nez v0, :cond_1
sget-object v0, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v5, "Binding to licensing service."
.line 82
invoke-virtual {v0, v5}, Lcom/singular/sdk/internal/SingularLog;->info(Ljava/lang/String;)I
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:try_start_1
iget-object v5, p0, Lcom/singular/sdk/internal/LicenseChecker;->mContext:Landroid/content/Context;
.line 84
new-instance v6, Landroid/content/Intent;
const-string v7, "com.android.vending.licensing.ILicensingService"
invoke-direct {v6, v7}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
const-string v7, "com.android.vending"
.line 97
invoke-virtual {v6, v7}, Landroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
move-result-object v6
.line 85
invoke-virtual {v5, v6, p0, v4}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
move-result v5
if-nez v5, :cond_0
const-string v5, "Could not bind to service."
.line 101
invoke-virtual {v0, v5}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
iget-object v0, p0, Lcom/singular/sdk/internal/LicenseChecker;->handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
const-string v5, "Binding failed"
const-string v6, ""
.line 102
invoke-virtual {v0, v3, v5, v6}, Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;->handle(ILjava/lang/String;Ljava/lang/String;)V
:try_end_1
.catch Ljava/lang/SecurityException; {:try_start_1 .. :try_end_1} :catch_0
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_0
:catchall_0
move-exception v0
goto :goto_2
:catch_0
move-exception v0
:try_start_2
sget-object v5, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v6, "SecurityException"
.line 105
invoke-virtual {v5, v6, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
iget-object v5, p0, Lcom/singular/sdk/internal/LicenseChecker;->handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
const-string v6, "Exception: %s, Message: %s"
new-array v2, v2, [Ljava/lang/Object;
.line 106
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v7
aput-object v7, v2, v1
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
aput-object v0, v2, v4
invoke-static {v6, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v1, ""
invoke-virtual {v5, v3, v0, v1}, Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;->handle(ILjava/lang/String;Ljava/lang/String;)V
:cond_0
:goto_0
sget-object v0, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "Binding done."
.line 108
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->info(Ljava/lang/String;)I
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
goto :goto_1
.line 112
:cond_1
:try_start_3
invoke-virtual {p0}, Lcom/singular/sdk/internal/LicenseChecker;->generateNonce()I
move-result v5
int-to-long v5, v5
iget-object v7, p0, Lcom/singular/sdk/internal/LicenseChecker;->mPackageName:Ljava/lang/String;
new-instance v8, Lcom/singular/sdk/internal/LicenseChecker$ResultListener;
const/4 v9, 0x0
invoke-direct {v8, p0, v9}, Lcom/singular/sdk/internal/LicenseChecker$ResultListener;-><init>(Lcom/singular/sdk/internal/LicenseChecker;Lcom/singular/sdk/internal/LicenseChecker$1;)V
invoke-interface {v0, v5, v6, v7, v8}, Lcom/android/vending/licensing/ILicensingService;->checkLicense(JLjava/lang/String;Lcom/android/vending/licensing/ILicenseResultListener;)V
:try_end_3
.catch Landroid/os/RemoteException; {:try_start_3 .. :try_end_3} :catch_1
.catchall {:try_start_3 .. :try_end_3} :catchall_0
goto :goto_1
:catch_1
move-exception v0
:try_start_4
sget-object v5, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v6, "RemoteException in checkLicense call."
.line 114
invoke-virtual {v5, v6, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
iget-object v5, p0, Lcom/singular/sdk/internal/LicenseChecker;->handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
const-string v6, "Exception: %s, Message: %s"
new-array v2, v2, [Ljava/lang/Object;
.line 115
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v7
aput-object v7, v2, v1
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
aput-object v0, v2, v4
invoke-static {v6, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v1, ""
invoke-virtual {v5, v3, v0, v1}, Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;->handle(ILjava/lang/String;Ljava/lang/String;)V
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_0
.line 119
:goto_1
monitor-exit p0
return-void
:goto_2
monitor-exit p0
throw v0
.end method
.method public final generateNonce()I
.locals 1
sget-object v0, Lcom/singular/sdk/internal/LicenseChecker;->RANDOM:Ljava/security/SecureRandom;
.line 183
invoke-virtual {v0}, Ljava/util/Random;->nextInt()I
move-result v0
return v0
.end method
.method public declared-synchronized onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
.locals 5
monitor-enter p0
:try_start_0
sget-object p1, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "onServiceConnected."
.line 136
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->info(Ljava/lang/String;)I
.line 137
invoke-static {p2}, Lcom/android/vending/licensing/ILicensingService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/vending/licensing/ILicensingService;
move-result-object p2
iput-object p2, p0, Lcom/singular/sdk/internal/LicenseChecker;->mService:Lcom/android/vending/licensing/ILicensingService;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 140
:try_start_1
invoke-virtual {p0}, Lcom/singular/sdk/internal/LicenseChecker;->generateNonce()I
move-result v0
int-to-long v0, v0
iget-object v2, p0, Lcom/singular/sdk/internal/LicenseChecker;->mPackageName:Ljava/lang/String;
new-instance v3, Lcom/singular/sdk/internal/LicenseChecker$ResultListener;
const/4 v4, 0x0
invoke-direct {v3, p0, v4}, Lcom/singular/sdk/internal/LicenseChecker$ResultListener;-><init>(Lcom/singular/sdk/internal/LicenseChecker;Lcom/singular/sdk/internal/LicenseChecker$1;)V
invoke-interface {p2, v0, v1, v2, v3}, Lcom/android/vending/licensing/ILicensingService;->checkLicense(JLjava/lang/String;Lcom/android/vending/licensing/ILicenseResultListener;)V
const-string p2, "checkLicense call done."
.line 141
invoke-virtual {p1, p2}, Lcom/singular/sdk/internal/SingularLog;->info(Ljava/lang/String;)I
:try_end_1
.catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_1} :catch_0
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_0
:catchall_0
move-exception p1
goto :goto_1
:catch_0
move-exception p1
:try_start_2
sget-object p2, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "RemoteException in checkLicense call."
.line 143
invoke-virtual {p2, v0, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
iget-object p2, p0, Lcom/singular/sdk/internal/LicenseChecker;->handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
.line 144
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
const-string v0, ""
const/4 v1, -0x1
invoke-virtual {p2, v1, p1, v0}, Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;->handle(ILjava/lang/String;Ljava/lang/String;)V
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
.line 146
:goto_0
monitor-exit p0
return-void
:goto_1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized onServiceDisconnected(Landroid/content/ComponentName;)V
.locals 1
monitor-enter p0
:try_start_0
sget-object p1, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "Service unexpectedly disconnected."
.line 152
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->info(Ljava/lang/String;)I
const/4 p1, 0x0
iput-object p1, p0, Lcom/singular/sdk/internal/LicenseChecker;->mService:Lcom/android/vending/licensing/ILicensingService;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 154
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method

View File

@@ -0,0 +1,199 @@
.class public final Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/android/installreferrer/api/InstallReferrerStateListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/NewPlayReferrerUtils;->queryNewPlayReferrerValue(Landroid/content/Context;Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = null
.end annotation
# instance fields
.field public final synthetic val$callback:Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
.field public final synthetic val$referrerClient:Lcom/android/installreferrer/api/InstallReferrerClient;
# direct methods
.method public constructor <init>(Lcom/android/installreferrer/api/InstallReferrerClient;Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$referrerClient:Lcom/android/installreferrer/api/InstallReferrerClient;
iput-object p2, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$callback:Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onInstallReferrerServiceDisconnected()V
.locals 0
return-void
.end method
.method public onInstallReferrerSetupFinished(I)V
.locals 6
.line 33
invoke-static {}, Lcom/singular/sdk/internal/NewPlayReferrerUtils;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "onInstallReferrerSetupFinished: responseCode="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
if-nez p1, :cond_0
:try_start_0
iget-object p1, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$referrerClient:Lcom/android/installreferrer/api/InstallReferrerClient;
.line 37
invoke-virtual {p1}, Lcom/android/installreferrer/api/InstallReferrerClient;->getInstallReferrer()Lcom/android/installreferrer/api/ReferrerDetails;
move-result-object p1
iget-object v0, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$callback:Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
if-eqz v0, :cond_3
.line 41
invoke-virtual {p1}, Lcom/android/installreferrer/api/ReferrerDetails;->getInstallReferrer()Ljava/lang/String;
move-result-object v1
.line 42
invoke-virtual {p1}, Lcom/android/installreferrer/api/ReferrerDetails;->getReferrerClickTimestampSeconds()J
move-result-wide v2
.line 43
invoke-virtual {p1}, Lcom/android/installreferrer/api/ReferrerDetails;->getInstallBeginTimestampSeconds()J
move-result-wide v4
.line 41
invoke-virtual/range {v0 .. v5}, Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;->handleReferrerValue(Ljava/lang/String;JJ)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
.line 47
:catch_0
invoke-static {}, Lcom/singular/sdk/internal/NewPlayReferrerUtils;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
const-string v0, "onInstallReferrerSetupFinished: failed to get referrer value"
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
goto :goto_0
:cond_0
const/4 v0, 0x1
if-ne p1, v0, :cond_1
iget-object p1, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$callback:Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
.line 50
invoke-virtual {p1}, Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;->handleNotSupported()V
.line 51
invoke-static {}, Lcom/singular/sdk/internal/NewPlayReferrerUtils;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
const-string v0, "onInstallReferrerSetupFinished: SERVICE_UNAVAILABLE"
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
goto :goto_0
:cond_1
const/4 v0, 0x2
if-ne p1, v0, :cond_2
iget-object p1, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$callback:Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
.line 53
invoke-virtual {p1}, Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;->handleNotSupported()V
.line 54
invoke-static {}, Lcom/singular/sdk/internal/NewPlayReferrerUtils;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
const-string v0, "onInstallReferrerSetupFinished: FEATURE_NOT_SUPPORTED"
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
goto :goto_0
:cond_2
const/4 v0, 0x3
if-ne p1, v0, :cond_3
iget-object p1, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$callback:Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
.line 56
invoke-virtual {p1}, Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;->handleNotSupported()V
.line 57
invoke-static {}, Lcom/singular/sdk/internal/NewPlayReferrerUtils;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
const-string v0, "onInstallReferrerSetupFinished: DEVELOPER_ERROR"
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
:cond_3
:goto_0
iget-object p1, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$referrerClient:Lcom/android/installreferrer/api/InstallReferrerClient;
.line 59
invoke-virtual {p1}, Lcom/android/installreferrer/api/InstallReferrerClient;->isReady()Z
move-result p1
if-eqz p1, :cond_4
iget-object p1, p0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;->val$referrerClient:Lcom/android/installreferrer/api/InstallReferrerClient;
.line 60
invoke-virtual {p1}, Lcom/android/installreferrer/api/InstallReferrerClient;->endConnection()V
:cond_4
return-void
.end method

View File

@@ -0,0 +1,33 @@
.class public abstract Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/NewPlayReferrerUtils;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "NewPlayReferrerCallback"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 14
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public abstract handleNotSupported()V
.end method
.method public abstract handleReferrerValue(Ljava/lang/String;JJ)V
.end method

View File

@@ -0,0 +1,66 @@
.class public abstract Lcom/singular/sdk/internal/NewPlayReferrerUtils;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/NewPlayReferrerUtils;
.line 12
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/NewPlayReferrerUtils;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public static synthetic access$000()Lcom/singular/sdk/internal/SingularLog;
.locals 1
sget-object v0, Lcom/singular/sdk/internal/NewPlayReferrerUtils;->logger:Lcom/singular/sdk/internal/SingularLog;
return-object v0
.end method
.method public static queryNewPlayReferrerValue(Landroid/content/Context;Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;)V
.locals 1
.line 28
invoke-static {p0}, Lcom/android/installreferrer/api/InstallReferrerClient;->newBuilder(Landroid/content/Context;)Lcom/android/installreferrer/api/InstallReferrerClient$Builder;
move-result-object p0
invoke-virtual {p0}, Lcom/android/installreferrer/api/InstallReferrerClient$Builder;->build()Lcom/android/installreferrer/api/InstallReferrerClient;
move-result-object p0
.line 30
new-instance v0, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;
invoke-direct {v0, p0, p1}, Lcom/singular/sdk/internal/NewPlayReferrerUtils$1;-><init>(Lcom/android/installreferrer/api/InstallReferrerClient;Lcom/singular/sdk/internal/NewPlayReferrerUtils$NewPlayReferrerCallback;)V
invoke-virtual {p0, v0}, Lcom/android/installreferrer/api/InstallReferrerClient;->startConnection(Lcom/android/installreferrer/api/InstallReferrerStateListener;)V
return-void
.end method

View File

@@ -0,0 +1,774 @@
.class public Lcom/singular/sdk/internal/OfflineEventsMigrator;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# instance fields
.field public aifa:Ljava/lang/String;
.field public andi:Ljava/lang/String;
.field public apiKey:Ljava/lang/String;
.field public apid:Ljava/lang/String;
.field public bmac:Ljava/lang/String;
.field public canonicalDeviceId:Ljava/lang/String;
.field public canonicalKeyspace:Ljava/lang/String;
.field public ctx:Landroid/content/Context;
.field public database:Landroid/database/sqlite/SQLiteDatabase;
.field public databaseName:Ljava/lang/String;
.field public imei:Ljava/lang/String;
.field public mac1:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-string v0, "OfflineEventsMigrator"
.line 18
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/OfflineEventsMigrator;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.locals 4
.line 32
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, ""
iput-object v0, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->databaseName:Ljava/lang/String;
iput-object p1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->ctx:Landroid/content/Context;
const-string v1, "ApsalarAppPrefs"
const/4 v2, 0x0
.line 35
invoke-virtual {p1, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v1
:try_start_0
const-string v3, "HASH"
.line 37
invoke-interface {v1, v3, v0}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 38
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Apsalar.sqlite_"
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1, v0}, Landroid/content/Context;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
move-result-object p1
.line 39
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_0
.line 40
invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->databaseName:Ljava/lang/String;
const/4 v0, 0x0
.line 41
invoke-static {p1, v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
move-result-object p1
iput-object p1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->database:Landroid/database/sqlite/SQLiteDatabase;
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
sget-object v0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "Error in OfflineEventsMigrator"
.line 44
invoke-virtual {v0, v1, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_0
:goto_0
return-void
.end method
# virtual methods
.method public deleteDatabase()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->database:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->ctx:Landroid/content/Context;
iget-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->databaseName:Ljava/lang/String;
.line 50
invoke-virtual {v0, v1}, Landroid/content/Context;->deleteDatabase(Ljava/lang/String;)Z
:cond_0
return-void
.end method
.method public migrate()V
.locals 12
iget-object v0, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->database:Landroid/database/sqlite/SQLiteDatabase;
if-nez v0, :cond_0
sget-object v0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "No database found; skipping."
.line 56
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
return-void
:cond_0
const-string v1, "SELECT * FROM config"
const/4 v2, 0x0
.line 62
invoke-virtual {v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v0
if-eqz v0, :cond_b
.line 63
invoke-interface {v0}, Landroid/database/Cursor;->getCount()I
move-result v1
if-nez v1, :cond_1
goto/16 :goto_6
.line 67
:cond_1
:goto_0
invoke-interface {v0}, Landroid/database/Cursor;->moveToNext()Z
move-result v1
const/4 v3, 0x5
const/4 v4, 0x0
if-eqz v1, :cond_2
.line 68
invoke-interface {v0, v4}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->apiKey:Ljava/lang/String;
.line 69
invoke-interface {v0, v3}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->andi:Ljava/lang/String;
const/4 v1, 0x6
.line 70
invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->aifa:Ljava/lang/String;
const/4 v1, 0x7
.line 71
invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->imei:Ljava/lang/String;
const/16 v1, 0xa
.line 72
invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->apid:Ljava/lang/String;
const/16 v1, 0xc
.line 73
invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->canonicalDeviceId:Ljava/lang/String;
const/16 v1, 0xb
.line 74
invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->canonicalKeyspace:Ljava/lang/String;
const/16 v1, 0x8
.line 75
invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->mac1:Ljava/lang/String;
const/16 v1, 0x9
.line 76
invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->bmac:Ljava/lang/String;
goto :goto_0
.line 78
:cond_2
invoke-interface {v0}, Landroid/database/Cursor;->close()V
const-string v0, "SELECT * FROM events"
iget-object v1, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->database:Landroid/database/sqlite/SQLiteDatabase;
.line 83
invoke-virtual {v1, v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v0
if-eqz v0, :cond_b
.line 84
invoke-interface {v0}, Landroid/database/Cursor;->getCount()I
move-result v1
if-nez v1, :cond_3
goto/16 :goto_6
:cond_3
move v1, v4
.line 89
:goto_1
invoke-interface {v0}, Landroid/database/Cursor;->moveToNext()Z
move-result v5
if-eqz v5, :cond_a
.line 92
:try_start_0
new-instance v5, Ljava/util/HashMap;
invoke-direct {v5}, Ljava/util/HashMap;-><init>()V
const-string v6, "__TIMESTAMP__"
const/4 v7, 0x1
.line 93
invoke-interface {v0, v7}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v6, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const/4 v6, 0x4
.line 94
invoke-interface {v0, v6}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v6
.line 95
invoke-static {v6}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v8
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
const-string v9, "n"
if-nez v8, :cond_4
.line 96
:try_start_1
invoke-interface {v5, v9, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_2
:catch_0
move-exception v5
goto/16 :goto_5
.line 98
:cond_4
:goto_2
invoke-interface {v0, v3}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v6
.line 99
invoke-static {v6}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v8
if-nez v8, :cond_5
const-string v8, "e"
.line 100
invoke-interface {v5, v8, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 102
:cond_5
new-instance v6, Lorg/json/JSONObject;
const/4 v8, 0x2
invoke-interface {v0, v8}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v8
invoke-direct {v6, v8}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const/4 v8, 0x3
.line 103
invoke-interface {v0, v8}, Landroid/database/Cursor;->getInt(I)I
move-result v10
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0
const-string v11, "__TYPE__"
if-ne v10, v7, :cond_6
:try_start_2
const-string v7, "SESSION_START"
.line 105
invoke-interface {v5, v11, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "appName"
.line 106
invoke-virtual {v6, v7}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
invoke-interface {v5, v9, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_3
:cond_6
if-ne v10, v8, :cond_7
const-string v7, "EVENT"
.line 108
invoke-interface {v5, v11, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_3
:cond_7
if-ne v10, v3, :cond_8
const-string v7, "RESOLVE"
.line 110
invoke-interface {v5, v11, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_8
:goto_3
const-string v7, "s"
const-string v8, "sessionId"
.line 112
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "a"
const-string v8, "apiKey"
.line 113
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "ab"
const-string v8, "abi"
.line 114
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "p"
const-string v8, "platform"
.line 115
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "i"
const-string v8, "clsPackage"
.line 116
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "av"
const-string v8, "appVersion"
.line 117
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "sdk"
const-string v8, "sdkVersion"
.line 118
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "ma"
const-string v8, "manufacturer"
.line 119
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "br"
const-string v8, "brand"
.line 120
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "mo"
const-string v8, "model"
.line 121
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "v"
const-string v8, "osVersion"
.line 122
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "c"
const-string v8, "connType"
.line 123
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "pr"
const-string v8, "product"
.line 124
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-interface {v5, v7, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v7, "de"
const-string v8, "device"
.line 125
invoke-virtual {v6, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
invoke-interface {v5, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v6, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->aifa:Ljava/lang/String;
.line 127
invoke-static {v6}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v6
:try_end_2
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0
const-string v7, "u"
const-string v8, "k"
if-nez v6, :cond_9
:try_start_3
const-string v6, "aifa"
iget-object v9, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->aifa:Ljava/lang/String;
.line 128
invoke-interface {v5, v6, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v6, "AIFA"
.line 129
invoke-interface {v5, v8, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v6, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->canonicalDeviceId:Ljava/lang/String;
.line 130
invoke-interface {v5, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_4
:cond_9
const-string v6, "ANDI"
.line 132
invoke-interface {v5, v8, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v6, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->andi:Ljava/lang/String;
.line 133
invoke-interface {v5, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_3
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0
.line 138
:goto_4
:try_start_4
new-instance v6, Lorg/json/JSONObject;
invoke-direct {v6, v5}, Lorg/json/JSONObject;-><init>(Ljava/util/Map;)V
.line 139
invoke-virtual {v6}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Lcom/singular/sdk/internal/BaseApi;->from(Ljava/lang/String;)Lcom/singular/sdk/internal/BaseApi;
move-result-object v5
.line 142
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->getInstance()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v6
invoke-virtual {v6}, Lcom/singular/sdk/internal/SingularInstance;->getApiManager()Lcom/singular/sdk/internal/ApiManager;
move-result-object v6
invoke-virtual {v6, v5}, Lcom/singular/sdk/internal/ApiManager;->enqueue(Lcom/singular/sdk/internal/BaseApi;)V
iget-object v5, p0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->database:Landroid/database/sqlite/SQLiteDatabase;
const-string v6, "events"
.line 144
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "id="
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0, v4}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-virtual {v5, v6, v7, v2}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
:try_end_4
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_4} :catch_1
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_0
add-int/lit8 v1, v1, 0x1
goto/16 :goto_1
:catch_1
move-exception v5
:try_start_5
sget-object v6, Lcom/singular/sdk/internal/OfflineEventsMigrator;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v7, "Error in JSON serialization"
.line 148
invoke-virtual {v6, v7, v5}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:try_end_5
.catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_0
goto/16 :goto_1
:goto_5
sget-object v6, Lcom/singular/sdk/internal/OfflineEventsMigrator;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 151
invoke-virtual {v5}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v5
invoke-virtual {v6, v5}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
goto/16 :goto_1
.line 156
:cond_a
invoke-interface {v0}, Landroid/database/Cursor;->close()V
.line 159
invoke-virtual {p0}, Lcom/singular/sdk/internal/OfflineEventsMigrator;->deleteDatabase()V
sget-object v0, Lcom/singular/sdk/internal/OfflineEventsMigrator;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 161
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Migrated "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " events!"
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
:cond_b
:goto_6
return-void
.end method

View File

@@ -0,0 +1,14 @@
.class public interface abstract Lcom/singular/sdk/internal/Queue;
.super Ljava/lang/Object;
.source "SourceFile"
# virtual methods
.method public abstract add(Ljava/lang/String;)V
.end method
.method public abstract peek()Ljava/lang/String;
.end method
.method public abstract remove()V
.end method

View File

@@ -0,0 +1,83 @@
.class public final Lcom/singular/sdk/internal/QueueFile$Builder;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/QueueFile;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Builder"
.end annotation
# instance fields
.field public final file:Ljava/io/File;
.field public forceLegacy:Z
.field public zero:Z
# direct methods
.method public constructor <init>(Ljava/io/File;)V
.locals 1
.line 795
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/singular/sdk/internal/QueueFile$Builder;->zero:Z
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/singular/sdk/internal/QueueFile$Builder;->forceLegacy:Z
if-eqz p1, :cond_0
iput-object p1, p0, Lcom/singular/sdk/internal/QueueFile$Builder;->file:Ljava/io/File;
return-void
.line 797
:cond_0
new-instance p1, Ljava/lang/NullPointerException;
const-string v0, "file == null"
invoke-direct {p1, v0}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw p1
.end method
# virtual methods
.method public build()Lcom/singular/sdk/internal/QueueFile;
.locals 5
iget-object v0, p0, Lcom/singular/sdk/internal/QueueFile$Builder;->file:Ljava/io/File;
iget-boolean v1, p0, Lcom/singular/sdk/internal/QueueFile$Builder;->forceLegacy:Z
.line 823
invoke-static {v0, v1}, Lcom/singular/sdk/internal/QueueFile;->access$000(Ljava/io/File;Z)Ljava/io/RandomAccessFile;
move-result-object v0
.line 824
new-instance v1, Lcom/singular/sdk/internal/QueueFile;
iget-object v2, p0, Lcom/singular/sdk/internal/QueueFile$Builder;->file:Ljava/io/File;
iget-boolean v3, p0, Lcom/singular/sdk/internal/QueueFile$Builder;->zero:Z
iget-boolean v4, p0, Lcom/singular/sdk/internal/QueueFile$Builder;->forceLegacy:Z
invoke-direct {v1, v2, v0, v3, v4}, Lcom/singular/sdk/internal/QueueFile;-><init>(Ljava/io/File;Ljava/io/RandomAccessFile;ZZ)V
return-object v1
.end method

View File

@@ -0,0 +1,103 @@
.class public Lcom/singular/sdk/internal/QueueFile$Element;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/QueueFile;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Element"
.end annotation
# static fields
.field public static final NULL:Lcom/singular/sdk/internal/QueueFile$Element;
# instance fields
.field public final length:I
.field public final position:J
# direct methods
.method static constructor <clinit>()V
.locals 4
.line 747
new-instance v0, Lcom/singular/sdk/internal/QueueFile$Element;
const-wide/16 v1, 0x0
const/4 v3, 0x0
invoke-direct {v0, v1, v2, v3}, Lcom/singular/sdk/internal/QueueFile$Element;-><init>(JI)V
sput-object v0, Lcom/singular/sdk/internal/QueueFile$Element;->NULL:Lcom/singular/sdk/internal/QueueFile$Element;
return-void
.end method
.method public constructor <init>(JI)V
.locals 0
.line 770
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-wide p1, p0, Lcom/singular/sdk/internal/QueueFile$Element;->position:J
iput p3, p0, Lcom/singular/sdk/internal/QueueFile$Element;->length:I
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 3
.line 777
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "[position="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lcom/singular/sdk/internal/QueueFile$Element;->position:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v1, ", length="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/singular/sdk/internal/QueueFile$Element;->length:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "]"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,348 @@
.class public final Lcom/singular/sdk/internal/QueueFile$ElementIterator;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/util/Iterator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/QueueFile;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "ElementIterator"
.end annotation
# instance fields
.field public expectedModCount:I
.field public nextElementIndex:I
.field public nextElementPosition:J
.field public final synthetic this$0:Lcom/singular/sdk/internal/QueueFile;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/QueueFile;)V
.locals 2
iput-object p1, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 573
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementIndex:I
.line 565
iget-object v0, p1, Lcom/singular/sdk/internal/QueueFile;->first:Lcom/singular/sdk/internal/QueueFile$Element;
iget-wide v0, v0, Lcom/singular/sdk/internal/QueueFile$Element;->position:J
iput-wide v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementPosition:J
.line 571
iget p1, p1, Lcom/singular/sdk/internal/QueueFile;->modCount:I
iput p1, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->expectedModCount:I
return-void
.end method
# virtual methods
.method public final checkForComodification()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 577
iget v0, v0, Lcom/singular/sdk/internal/QueueFile;->modCount:I
iget v1, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->expectedModCount:I
if-ne v0, v1, :cond_0
return-void
:cond_0
new-instance v0, Ljava/util/ConcurrentModificationException;
invoke-direct {v0}, Ljava/util/ConcurrentModificationException;-><init>()V
throw v0
.end method
.method public hasNext()Z
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 582
iget-boolean v0, v0, Lcom/singular/sdk/internal/QueueFile;->closed:Z
if-nez v0, :cond_1
.line 583
invoke-virtual {p0}, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->checkForComodification()V
iget v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementIndex:I
iget-object v1, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 584
iget v1, v1, Lcom/singular/sdk/internal/QueueFile;->elementCount:I
if-eq v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.line 582
:cond_1
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "closed"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public bridge synthetic next()Ljava/lang/Object;
.locals 1
.line 556
invoke-virtual {p0}, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->next()[B
move-result-object v0
return-object v0
.end method
.method public next()[B
.locals 10
iget-object v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 589
iget-boolean v0, v0, Lcom/singular/sdk/internal/QueueFile;->closed:Z
if-nez v0, :cond_2
.line 590
invoke-virtual {p0}, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->checkForComodification()V
iget-object v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 591
invoke-virtual {v0}, Lcom/singular/sdk/internal/QueueFile;->isEmpty()Z
move-result v0
if-nez v0, :cond_1
iget v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementIndex:I
iget-object v1, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 592
iget v2, v1, Lcom/singular/sdk/internal/QueueFile;->elementCount:I
if-ge v0, v2, :cond_0
:try_start_0
iget-wide v2, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementPosition:J
.line 596
invoke-virtual {v1, v2, v3}, Lcom/singular/sdk/internal/QueueFile;->readElement(J)Lcom/singular/sdk/internal/QueueFile$Element;
move-result-object v0
.line 597
iget v1, v0, Lcom/singular/sdk/internal/QueueFile$Element;->length:I
new-array v1, v1, [B
iget-object v2, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 598
iget-wide v3, v0, Lcom/singular/sdk/internal/QueueFile$Element;->position:J
const-wide/16 v8, 0x4
add-long/2addr v3, v8
invoke-virtual {v2, v3, v4}, Lcom/singular/sdk/internal/QueueFile;->wrapPosition(J)J
move-result-wide v3
iput-wide v3, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementPosition:J
iget-object v2, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
const/4 v6, 0x0
.line 599
iget v7, v0, Lcom/singular/sdk/internal/QueueFile$Element;->length:I
move-object v5, v1
invoke-virtual/range {v2 .. v7}, Lcom/singular/sdk/internal/QueueFile;->ringRead(J[BII)V
iget-object v2, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 602
iget-wide v3, v0, Lcom/singular/sdk/internal/QueueFile$Element;->position:J
add-long/2addr v3, v8
iget v0, v0, Lcom/singular/sdk/internal/QueueFile$Element;->length:I
int-to-long v5, v0
add-long/2addr v3, v5
.line 603
invoke-virtual {v2, v3, v4}, Lcom/singular/sdk/internal/QueueFile;->wrapPosition(J)J
move-result-wide v2
iput-wide v2, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementPosition:J
iget v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementIndex:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementIndex:I
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
return-object v1
:catch_0
move-exception v0
.line 609
new-instance v1, Ljava/lang/RuntimeException;
const-string v2, "todo: throw a proper error"
invoke-direct {v1, v2, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 592
:cond_0
new-instance v0, Ljava/util/NoSuchElementException;
invoke-direct {v0}, Ljava/util/NoSuchElementException;-><init>()V
throw v0
.line 591
:cond_1
new-instance v0, Ljava/util/NoSuchElementException;
invoke-direct {v0}, Ljava/util/NoSuchElementException;-><init>()V
throw v0
.line 589
:cond_2
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "closed"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public remove()V
.locals 3
.line 615
invoke-virtual {p0}, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->checkForComodification()V
iget-object v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 617
invoke-virtual {v0}, Lcom/singular/sdk/internal/QueueFile;->isEmpty()Z
move-result v0
if-nez v0, :cond_1
iget v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementIndex:I
const/4 v1, 0x1
if-ne v0, v1, :cond_0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 623
invoke-virtual {v0}, Lcom/singular/sdk/internal/QueueFile;->remove()V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
iget-object v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->this$0:Lcom/singular/sdk/internal/QueueFile;
.line 628
iget v0, v0, Lcom/singular/sdk/internal/QueueFile;->modCount:I
iput v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->expectedModCount:I
iget v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementIndex:I
sub-int/2addr v0, v1
iput v0, p0, Lcom/singular/sdk/internal/QueueFile$ElementIterator;->nextElementIndex:I
return-void
:catch_0
move-exception v0
.line 625
new-instance v1, Ljava/lang/RuntimeException;
const-string v2, "todo: throw a proper error"
invoke-direct {v1, v2, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 619
:cond_0
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "Removal is only permitted from the head."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.line 617
:cond_1
new-instance v0, Ljava/util/NoSuchElementException;
invoke-direct {v0}, Ljava/util/NoSuchElementException;-><init>()V
throw v0
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,53 @@
.class public Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;
.super Landroid/database/sqlite/SQLiteOpenHelper;
.source "SourceFile"
# interfaces
.implements Landroid/provider/BaseColumns;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/SQLitePersistentQueue;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "SQLiteHelper"
.end annotation
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.locals 3
const/4 v0, 0x0
const/4 v1, 0x1
const-string v2, "singular-1.db"
.line 279
invoke-direct {p0, p1, v2, v0, v1}, Landroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
return-void
.end method
# virtual methods
.method public onCreate(Landroid/database/sqlite/SQLiteDatabase;)V
.locals 1
const-string v0, "CREATE TABLE events (_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,value TEXT )"
.line 287
invoke-virtual {p1, v0}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
return-void
.end method
.method public onUpgrade(Landroid/database/sqlite/SQLiteDatabase;II)V
.locals 0
return-void
.end method

View File

@@ -0,0 +1,743 @@
.class public Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/SQLitePersistentQueue;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "SQLiteManager"
.end annotation
# instance fields
.field public final helper:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;)V
.locals 0
.line 63
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->helper:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;
return-void
.end method
# virtual methods
.method public final getCount(Landroid/database/sqlite/SQLiteDatabase;)J
.locals 7
const-string v0, "SELECT COUNT(_id) FROM events"
const/4 v1, 0x0
.line 237
:try_start_0
invoke-virtual {p1, v0, v1}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v1
.line 239
invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
const/4 p1, 0x0
.line 241
invoke-interface {v1, p1}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v2
.line 242
invoke-static {}, Lcom/singular/sdk/internal/SQLitePersistentQueue;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v4, "getCount() = %d"
const/4 v5, 0x1
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v6
aput-object v6, v5, p1
invoke-virtual {v0, v4, v5}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
:try_end_0
.catch Landroid/database/SQLException; {:try_start_0 .. :try_end_0} :catch_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 252
invoke-interface {v1}, Landroid/database/Cursor;->close()V
return-wide v2
:catchall_0
move-exception p1
goto :goto_0
:catch_0
move-exception p1
.line 247
:try_start_1
new-instance v0, Ljava/io/IOException;
invoke-direct {v0, p1}, Ljava/io/IOException;-><init>(Ljava/lang/Throwable;)V
throw v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:goto_0
if-eqz v1, :cond_0
.line 252
invoke-interface {v1}, Landroid/database/Cursor;->close()V
.line 254
:cond_0
throw p1
.end method
.method public getHead()Ljava/lang/String;
.locals 15
const/4 v0, 0x0
:try_start_0
iget-object v1, p0, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->helper:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;
.line 105
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteOpenHelper;->getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object v1
:try_end_0
.catch Landroid/database/SQLException; {:try_start_0 .. :try_end_0} :catch_2
.catchall {:try_start_0 .. :try_end_0} :catchall_2
.line 107
:try_start_1
invoke-virtual {p0, v1}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->getMinId(Landroid/database/sqlite/SQLiteDatabase;)J
move-result-wide v10
const/4 v12, 0x1
new-array v4, v12, [Ljava/lang/String;
const-string v2, "value"
const/4 v13, 0x0
aput-object v2, v4, v13
const-string v5, "_id = ?"
new-array v6, v12, [Ljava/lang/String;
.line 116
invoke-static {v10, v11}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v2
aput-object v2, v6, v13
const-string v3, "events"
const/4 v7, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
move-object v2, v1
.line 120
invoke-virtual/range {v2 .. v9}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v2
:try_end_1
.catch Landroid/database/SQLException; {:try_start_1 .. :try_end_1} :catch_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
.line 122
:try_start_2
invoke-interface {v2}, Landroid/database/Cursor;->moveToFirst()Z
.line 124
invoke-interface {v2}, Landroid/database/Cursor;->getCount()I
move-result v3
if-nez v3, :cond_0
goto :goto_0
:cond_0
invoke-interface {v2, v13}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v0
.line 126
:goto_0
invoke-static {}, Lcom/singular/sdk/internal/SQLitePersistentQueue;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v3
const-string v4, "getHead() _id = %d, value = %s"
const/4 v5, 0x2
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v10, v11}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v6
aput-object v6, v5, v13
aput-object v0, v5, v12
invoke-virtual {v3, v4, v5}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
:try_end_2
.catch Landroid/database/SQLException; {:try_start_2 .. :try_end_2} :catch_0
.catchall {:try_start_2 .. :try_end_2} :catchall_0
.line 137
invoke-interface {v2}, Landroid/database/Cursor;->close()V
.line 140
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteClosable;->close()V
return-object v0
:catchall_0
move-exception v0
goto :goto_2
:catch_0
move-exception v0
goto :goto_1
:catchall_1
move-exception v2
move-object v14, v2
move-object v2, v0
move-object v0, v14
goto :goto_2
:catch_1
move-exception v2
move-object v14, v2
move-object v2, v0
move-object v0, v14
goto :goto_1
:catchall_2
move-exception v1
move-object v2, v0
move-object v0, v1
move-object v1, v2
goto :goto_2
:catch_2
move-exception v1
move-object v2, v0
move-object v0, v1
move-object v1, v2
.line 132
:goto_1
:try_start_3
new-instance v3, Ljava/io/IOException;
invoke-direct {v3, v0}, Ljava/io/IOException;-><init>(Ljava/lang/Throwable;)V
throw v3
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
:goto_2
if-eqz v2, :cond_1
.line 137
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_1
if-eqz v1, :cond_2
.line 140
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteClosable;->close()V
.line 142
:cond_2
throw v0
.end method
.method public final getMinId(Landroid/database/sqlite/SQLiteDatabase;)J
.locals 7
const-string v0, "SELECT MIN(_id) FROM events"
const/4 v1, 0x0
.line 211
:try_start_0
invoke-virtual {p1, v0, v1}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v1
.line 213
invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
const/4 p1, 0x0
.line 215
invoke-interface {v1, p1}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v2
.line 216
invoke-static {}, Lcom/singular/sdk/internal/SQLitePersistentQueue;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v0
const-string v4, "getMinId() id = %d"
const/4 v5, 0x1
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v6
aput-object v6, v5, p1
invoke-virtual {v0, v4, v5}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
:try_end_0
.catch Landroid/database/SQLException; {:try_start_0 .. :try_end_0} :catch_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 226
invoke-interface {v1}, Landroid/database/Cursor;->close()V
return-wide v2
:catchall_0
move-exception p1
goto :goto_0
:catch_0
move-exception p1
.line 221
:try_start_1
new-instance v0, Ljava/io/IOException;
invoke-direct {v0, p1}, Ljava/io/IOException;-><init>(Ljava/lang/Throwable;)V
throw v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:goto_0
if-eqz v1, :cond_0
.line 226
invoke-interface {v1}, Landroid/database/Cursor;->close()V
.line 228
:cond_0
throw p1
.end method
.method public insert(Ljava/lang/String;)J
.locals 8
.line 69
new-instance v0, Landroid/content/ContentValues;
invoke-direct {v0}, Landroid/content/ContentValues;-><init>()V
const-string v1, "value"
.line 70
invoke-virtual {v0, v1, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, 0x0
:try_start_0
iget-object v1, p0, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->helper:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;
.line 74
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object v1
:try_end_0
.catch Landroid/database/SQLException; {:try_start_0 .. :try_end_0} :catch_1
.catchall {:try_start_0 .. :try_end_0} :catchall_1
:try_start_1
const-string v2, "events"
.line 75
invoke-virtual {v1, v2, p1, v0}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
move-result-wide v2
.line 76
invoke-static {}, Lcom/singular/sdk/internal/SQLitePersistentQueue;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "insert() row = "
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
.line 78
invoke-virtual {p0, v1}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->getCount(Landroid/database/sqlite/SQLiteDatabase;)J
move-result-wide v4
const-wide/16 v6, 0x2710
cmp-long p1, v4, v6
if-lez p1, :cond_0
.line 80
invoke-static {}, Lcom/singular/sdk/internal/SQLitePersistentQueue;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object p1
const-string v0, "Pruning Queue; current size = %d; max size = %d"
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Object;
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
const/4 v5, 0x0
aput-object v4, v6, v5
const/16 v4, 0x2710
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
const/4 v5, 0x1
aput-object v4, v6, v5
invoke-virtual {p1, v0, v6}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 82
invoke-virtual {p0, v1}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->removeHead(Landroid/database/sqlite/SQLiteDatabase;)Ljava/lang/String;
:try_end_1
.catch Landroid/database/SQLException; {:try_start_1 .. :try_end_1} :catch_0
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_0
:catchall_0
move-exception p1
goto :goto_2
:catch_0
move-exception p1
goto :goto_1
.line 94
:cond_0
:goto_0
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteClosable;->close()V
return-wide v2
:catchall_1
move-exception v0
move-object v1, p1
move-object p1, v0
goto :goto_2
:catch_1
move-exception v0
move-object v1, p1
move-object p1, v0
.line 89
:goto_1
:try_start_2
new-instance v0, Ljava/io/IOException;
invoke-direct {v0, p1}, Ljava/io/IOException;-><init>(Ljava/lang/Throwable;)V
throw v0
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
:goto_2
if-eqz v1, :cond_1
.line 94
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteClosable;->close()V
.line 96
:cond_1
throw p1
.end method
.method public removeHead()Ljava/lang/String;
.locals 2
const/4 v0, 0x0
:try_start_0
iget-object v1, p0, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->helper:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;
.line 150
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object v0
.line 151
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->removeHead(Landroid/database/sqlite/SQLiteDatabase;)Ljava/lang/String;
move-result-object v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz v0, :cond_0
.line 156
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteClosable;->close()V
:cond_0
return-object v1
:catchall_0
move-exception v1
if-eqz v0, :cond_1
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteClosable;->close()V
.line 158
:cond_1
throw v1
.end method
.method public final removeHead(Landroid/database/sqlite/SQLiteDatabase;)Ljava/lang/String;
.locals 16
const-string v0, "value"
const/4 v1, 0x0
.line 165
:try_start_0
invoke-virtual/range {p0 .. p1}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->getMinId(Landroid/database/sqlite/SQLiteDatabase;)J
move-result-wide v2
const/4 v4, 0x1
new-array v7, v4, [Ljava/lang/String;
const/4 v13, 0x0
aput-object v0, v7, v13
const-string v14, "_id = ?"
new-array v15, v4, [Ljava/lang/String;
.line 176
invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v5
aput-object v5, v15, v13
const-string v6, "events"
const/4 v10, 0x0
const/4 v11, 0x0
const/4 v12, 0x0
move-object/from16 v5, p1
move-object v8, v14
move-object v9, v15
.line 180
invoke-virtual/range {v5 .. v12}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v5
:try_end_0
.catch Landroid/database/SQLException; {:try_start_0 .. :try_end_0} :catch_1
.catchall {:try_start_0 .. :try_end_0} :catchall_1
.line 182
:try_start_1
invoke-interface {v5}, Landroid/database/Cursor;->moveToFirst()Z
.line 184
invoke-interface {v5}, Landroid/database/Cursor;->getCount()I
move-result v6
:try_end_1
.catch Landroid/database/SQLException; {:try_start_1 .. :try_end_1} :catch_0
.catchall {:try_start_1 .. :try_end_1} :catchall_0
if-nez v6, :cond_0
.line 201
invoke-interface {v5}, Landroid/database/Cursor;->close()V
return-object v1
.line 188
:cond_0
:try_start_2
invoke-interface {v5, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v0
invoke-interface {v5, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v0
const-string v1, "events"
move-object/from16 v6, p1
.line 190
invoke-virtual {v6, v1, v14, v15}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
.line 191
invoke-static {}, Lcom/singular/sdk/internal/SQLitePersistentQueue;->access$000()Lcom/singular/sdk/internal/SingularLog;
move-result-object v1
const-string v6, "removeHead() _id = %d"
new-array v4, v4, [Ljava/lang/Object;
invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v2
aput-object v2, v4, v13
invoke-virtual {v1, v6, v4}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
:try_end_2
.catch Landroid/database/SQLException; {:try_start_2 .. :try_end_2} :catch_0
.catchall {:try_start_2 .. :try_end_2} :catchall_0
.line 201
invoke-interface {v5}, Landroid/database/Cursor;->close()V
return-object v0
:catchall_0
move-exception v0
move-object v1, v5
goto :goto_1
:catch_0
move-exception v0
move-object v1, v5
goto :goto_0
:catchall_1
move-exception v0
goto :goto_1
:catch_1
move-exception v0
.line 196
:goto_0
:try_start_3
new-instance v2, Ljava/io/IOException;
invoke-direct {v2, v0}, Ljava/io/IOException;-><init>(Ljava/lang/Throwable;)V
throw v2
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
:goto_1
if-eqz v1, :cond_1
.line 201
invoke-interface {v1}, Landroid/database/Cursor;->close()V
.line 203
:cond_1
throw v0
.end method

View File

@@ -0,0 +1,192 @@
.class public Lcom/singular/sdk/internal/SQLitePersistentQueue;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/singular/sdk/internal/Queue;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;,
Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;
}
.end annotation
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# instance fields
.field public sqlite:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/SQLitePersistentQueue;
.line 19
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/SQLitePersistentQueue;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.locals 2
.line 23
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 24
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object p1
.line 25
new-instance v0, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;
new-instance v1, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;
invoke-direct {v1, p1}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;-><init>(Landroid/content/Context;)V
invoke-direct {v0, v1}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;-><init>(Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteHelper;)V
iput-object v0, p0, Lcom/singular/sdk/internal/SQLitePersistentQueue;->sqlite:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;
return-void
.end method
.method public static synthetic access$000()Lcom/singular/sdk/internal/SingularLog;
.locals 1
sget-object v0, Lcom/singular/sdk/internal/SQLitePersistentQueue;->logger:Lcom/singular/sdk/internal/SingularLog;
return-object v0
.end method
# virtual methods
.method public declared-synchronized add(Ljava/lang/String;)V
.locals 4
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/SQLitePersistentQueue;->sqlite:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;
.line 40
invoke-virtual {v0, p1}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->insert(Ljava/lang/String;)J
move-result-wide v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
const-wide/16 v2, -0x1
cmp-long v0, v0, v2
if-eqz v0, :cond_0
.line 44
monitor-exit p0
return-void
.line 42
:cond_0
:try_start_1
new-instance v0, Ljava/io/IOException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Failed to add element = "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:catchall_0
move-exception p1
.line 44
monitor-exit p0
throw p1
.end method
.method public declared-synchronized peek()Ljava/lang/String;
.locals 1
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/SQLitePersistentQueue;->sqlite:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;
.line 48
invoke-virtual {v0}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->getHead()Ljava/lang/String;
move-result-object v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-object v0
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized remove()V
.locals 1
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/SQLitePersistentQueue;->sqlite:Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;
.line 53
invoke-virtual {v0}, Lcom/singular/sdk/internal/SQLitePersistentQueue$SQLiteManager;->removeHead()Ljava/lang/String;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 54
monitor-exit p0
return-void
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method

View File

@@ -0,0 +1,68 @@
.class public Lcom/singular/sdk/internal/SessionManager$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SessionManager;->onExitForeground(J)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SessionManager;
.field public final synthetic val$timestamp:J
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SessionManager;J)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SessionManager$1;->this$0:Lcom/singular/sdk/internal/SessionManager;
iput-wide p2, p0, Lcom/singular/sdk/internal/SessionManager$1;->val$timestamp:J
.line 263
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager$1;->this$0:Lcom/singular/sdk/internal/SessionManager;
iget-wide v1, p0, Lcom/singular/sdk/internal/SessionManager$1;->val$timestamp:J
.line 267
invoke-static {v0, v1, v2}, Lcom/singular/sdk/internal/SessionManager;->access$000(Lcom/singular/sdk/internal/SessionManager;J)V
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager$1;->this$0:Lcom/singular/sdk/internal/SessionManager;
const/4 v1, 0x0
.line 270
invoke-static {v0, v1}, Lcom/singular/sdk/internal/SessionManager;->access$102(Lcom/singular/sdk/internal/SessionManager;Z)Z
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager$1;->this$0:Lcom/singular/sdk/internal/SessionManager;
.line 272
invoke-virtual {v0}, Lcom/singular/sdk/internal/SessionManager;->unregisterNetworkChangeReceiver()V
.line 274
invoke-static {}, Lcom/singular/sdk/internal/Utils;->appMovedToBackground()Z
return-void
.end method

View File

@@ -0,0 +1,65 @@
.class public Lcom/singular/sdk/internal/SessionManager$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SessionManager;->onEnterForeground(J)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SessionManager;
.field public final synthetic val$timestamp:J
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SessionManager;J)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SessionManager$2;->this$0:Lcom/singular/sdk/internal/SessionManager;
iput-wide p2, p0, Lcom/singular/sdk/internal/SessionManager$2;->val$timestamp:J
.line 287
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager$2;->this$0:Lcom/singular/sdk/internal/SessionManager;
const/4 v1, 0x1
.line 290
invoke-static {v0, v1}, Lcom/singular/sdk/internal/SessionManager;->access$102(Lcom/singular/sdk/internal/SessionManager;Z)Z
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager$2;->this$0:Lcom/singular/sdk/internal/SessionManager;
iget-wide v1, p0, Lcom/singular/sdk/internal/SessionManager$2;->val$timestamp:J
.line 291
invoke-static {v0, v1, v2}, Lcom/singular/sdk/internal/SessionManager;->access$200(Lcom/singular/sdk/internal/SessionManager;J)Z
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager$2;->this$0:Lcom/singular/sdk/internal/SessionManager;
.line 292
invoke-virtual {v0}, Lcom/singular/sdk/internal/SessionManager;->registerNetworkChangeReceiver()V
return-void
.end method

View File

@@ -0,0 +1,696 @@
.class public Lcom/singular/sdk/internal/SessionManager;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# instance fields
.field public inForeground:Z
.field public lastSessionPauseTime:J
.field public final networkChangeReceiver:Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;
.field public sequence:J
.field public sessionId:J
.field public final singular:Lcom/singular/sdk/internal/SingularInstance;
.field public usingForegroundTracking:Z
# direct methods
.method static constructor <clinit>()V
.locals 1
const-string v0, "Session"
.line 28
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/SessionManager;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(Lcom/singular/sdk/internal/SingularInstance;)V
.locals 2
.line 41
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/singular/sdk/internal/SessionManager;->usingForegroundTracking:Z
const-wide/16 v0, -0x1
iput-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->sessionId:J
iput-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->lastSessionPauseTime:J
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->sequence:J
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/singular/sdk/internal/SessionManager;->inForeground:Z
iput-object p1, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 43
new-instance v0, Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;
invoke-direct {v0, p1}, Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;-><init>(Lcom/singular/sdk/internal/SingularInstance;)V
iput-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->networkChangeReceiver:Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;
.line 46
invoke-virtual {p0}, Lcom/singular/sdk/internal/SessionManager;->load()V
.line 49
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J
move-result-wide v0
invoke-virtual {p0, v0, v1}, Lcom/singular/sdk/internal/SessionManager;->startNewSessionIfNeeded(J)Z
.line 52
invoke-virtual {p1}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object p1
check-cast p1, Landroid/app/Application;
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SessionManager;->enableForegroundTracking(Landroid/app/Application;)V
.line 55
invoke-virtual {p0}, Lcom/singular/sdk/internal/SessionManager;->registerNetworkChangeReceiver()V
return-void
.end method
.method public static synthetic access$000(Lcom/singular/sdk/internal/SessionManager;J)V
.locals 0
.line 26
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/SessionManager;->setLastSessionPauseTime(J)V
return-void
.end method
.method public static synthetic access$102(Lcom/singular/sdk/internal/SessionManager;Z)Z
.locals 0
.line 26
iput-boolean p1, p0, Lcom/singular/sdk/internal/SessionManager;->inForeground:Z
return p1
.end method
.method public static synthetic access$200(Lcom/singular/sdk/internal/SessionManager;J)Z
.locals 0
.line 26
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/SessionManager;->startNewSessionIfNeeded(J)Z
move-result p0
return p0
.end method
# virtual methods
.method public final enableForegroundTracking(Landroid/app/Application;)V
.locals 1
iget-boolean v0, p0, Lcom/singular/sdk/internal/SessionManager;->usingForegroundTracking:Z
if-eqz v0, :cond_0
return-void
.line 70
:cond_0
new-instance v0, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;-><init>(Lcom/singular/sdk/internal/SessionManager;)V
invoke-virtual {v0, p1}, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;->registerSelf(Landroid/app/Application;)V
return-void
.end method
.method public getNextSequenceNumber()J
.locals 4
iget-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->sequence:J
const-wide/16 v2, 0x1
add-long/2addr v0, v2
iput-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->sequence:J
return-wide v0
.end method
.method public getSessionId()J
.locals 2
iget-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->sessionId:J
return-wide v0
.end method
.method public final inSession()Z
.locals 4
iget-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->sessionId:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-lez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public final isWithinMinTimeBetweenSessions(J)Z
.locals 4
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 224
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object v0
iget-wide v0, v0, Lcom/singular/sdk/SingularConfig;->sessionTimeoutSec:J
const-wide/16 v2, 0x3e8
mul-long/2addr v0, v2
iget-wide v2, p0, Lcom/singular/sdk/internal/SessionManager;->lastSessionPauseTime:J
sub-long/2addr p1, v2
cmp-long p1, p1, v0
if-gez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public final load()V
.locals 8
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 86
invoke-virtual {v0}, 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
const-string v1, "id"
const-wide/16 v2, -0x1
.line 88
invoke-interface {v0, v1, v2, v3}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J
move-result-wide v4
iput-wide v4, p0, Lcom/singular/sdk/internal/SessionManager;->sessionId:J
const-string v1, "lastSessionPauseTime"
.line 90
invoke-interface {v0, v1, v2, v3}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J
move-result-wide v4
iput-wide v4, p0, Lcom/singular/sdk/internal/SessionManager;->lastSessionPauseTime:J
const-wide/16 v6, 0x0
cmp-long v1, v4, v6
if-gez v1, :cond_0
const-string v1, "lastEvent"
.line 94
invoke-interface {v0, v1, v2, v3}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J
move-result-wide v1
iput-wide v1, p0, Lcom/singular/sdk/internal/SessionManager;->lastSessionPauseTime:J
:cond_0
const-string v1, "seq"
.line 97
invoke-interface {v0, v1, v6, v7}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J
move-result-wide v0
iput-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->sequence:J
sget-object v0, Lcom/singular/sdk/internal/SessionManager;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 100
invoke-virtual {p0}, Lcom/singular/sdk/internal/SessionManager;->toString()Ljava/lang/String;
move-result-object v1
filled-new-array {v1}, [Ljava/lang/Object;
move-result-object v1
const-string v2, "load() <= %s"
invoke-virtual {v0, v2, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
return-void
.end method
.method public onEnterForeground(J)V
.locals 3
.line 285
invoke-static {}, Lcom/singular/sdk/internal/Utils;->isOpenedWithDeeplink()Z
move-result v0
if-nez v0, :cond_0
sget-object v0, Lcom/singular/sdk/internal/SessionManager;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 286
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
filled-new-array {v1}, [Ljava/lang/Object;
move-result-object v1
const-string v2, "onEnterForeground() At %d"
invoke-virtual {v0, v2, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 287
new-instance v1, Lcom/singular/sdk/internal/SessionManager$2;
invoke-direct {v1, p0, p1, p2}, Lcom/singular/sdk/internal/SessionManager$2;-><init>(Lcom/singular/sdk/internal/SessionManager;J)V
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularInstance;->runOnWorker(Ljava/lang/Runnable;)V
:cond_0
return-void
.end method
.method public onExitForeground(J)V
.locals 3
sget-object v0, Lcom/singular/sdk/internal/SessionManager;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 262
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
filled-new-array {v1}, [Ljava/lang/Object;
move-result-object v1
const-string v2, "onExitForeground() At %d"
invoke-virtual {v0, v2, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 263
new-instance v1, Lcom/singular/sdk/internal/SessionManager$1;
invoke-direct {v1, p0, p1, p2}, Lcom/singular/sdk/internal/SessionManager$1;-><init>(Lcom/singular/sdk/internal/SessionManager;J)V
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularInstance;->runOnWorker(Ljava/lang/Runnable;)V
return-void
.end method
.method public final persist()V
.locals 4
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 110
invoke-virtual {v0}, 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 111
invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v0
const-string v1, "id"
iget-wide v2, p0, Lcom/singular/sdk/internal/SessionManager;->sessionId:J
.line 113
invoke-interface {v0, v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
const-string v1, "lastSessionPauseTime"
iget-wide v2, p0, Lcom/singular/sdk/internal/SessionManager;->lastSessionPauseTime:J
.line 114
invoke-interface {v0, v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
const-string v1, "seq"
iget-wide v2, p0, Lcom/singular/sdk/internal/SessionManager;->sequence:J
.line 115
invoke-interface {v0, v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
.line 117
invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z
return-void
.end method
.method public registerNetworkChangeReceiver()V
.locals 3
iget-boolean v0, p0, Lcom/singular/sdk/internal/SessionManager;->inForeground:Z
if-nez v0, :cond_0
iget-boolean v0, p0, Lcom/singular/sdk/internal/SessionManager;->usingForegroundTracking:Z
if-eqz v0, :cond_0
return-void
.line 305
:cond_0
new-instance v0, Landroid/content/IntentFilter;
invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()V
const-string v1, "android.net.conn.CONNECTIVITY_CHANGE"
.line 306
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
iget-object v1, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 307
invoke-virtual {v1}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object v1
iget-object v2, p0, Lcom/singular/sdk/internal/SessionManager;->networkChangeReceiver:Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;
invoke-virtual {v1, v2, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
sget-object v0, Lcom/singular/sdk/internal/SessionManager;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "registerNetworkChangeReceiver()"
.line 308
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
return-void
.end method
.method public final resetSequence()V
.locals 2
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/singular/sdk/internal/SessionManager;->sequence:J
return-void
.end method
.method public final sendSessionStartEvent()V
.locals 3
.line 249
invoke-virtual {p0}, Lcom/singular/sdk/internal/SessionManager;->inSession()Z
move-result v0
if-nez v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
iget-wide v1, p0, Lcom/singular/sdk/internal/SessionManager;->sessionId:J
.line 253
invoke-virtual {v0, v1, v2}, Lcom/singular/sdk/internal/SingularInstance;->logSessionStart(J)V
return-void
.end method
.method public final setLastSessionPauseTime(J)V
.locals 0
iput-wide p1, p0, Lcom/singular/sdk/internal/SessionManager;->lastSessionPauseTime:J
.line 165
invoke-virtual {p0}, Lcom/singular/sdk/internal/SessionManager;->persist()V
return-void
.end method
.method public final setSessionId(J)V
.locals 0
iput-wide p1, p0, Lcom/singular/sdk/internal/SessionManager;->sessionId:J
return-void
.end method
.method public startNewSession(J)V
.locals 3
sget-object v0, Lcom/singular/sdk/internal/SessionManager;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 210
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
filled-new-array {v1}, [Ljava/lang/Object;
move-result-object v1
const-string v2, "startNewSession() At %d"
invoke-virtual {v0, v2, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 212
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/SessionManager;->setSessionId(J)V
.line 213
invoke-virtual {p0}, Lcom/singular/sdk/internal/SessionManager;->resetSequence()V
.line 214
invoke-virtual {p0}, Lcom/singular/sdk/internal/SessionManager;->sendSessionStartEvent()V
return-void
.end method
.method public final startNewSessionIfNeeded(J)Z
.locals 2
.line 180
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->getInstance()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v0
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object v0
iget-object v0, v0, Lcom/singular/sdk/SingularConfig;->singularLink:Landroid/net/Uri;
const/4 v1, 0x1
if-eqz v0, :cond_0
.line 181
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/SessionManager;->startNewSession(J)V
return v1
.line 186
:cond_0
invoke-virtual {p0}, Lcom/singular/sdk/internal/SessionManager;->inSession()Z
move-result v0
if-eqz v0, :cond_1
.line 187
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/SessionManager;->isWithinMinTimeBetweenSessions(J)Z
move-result v0
if-eqz v0, :cond_1
const/4 p1, 0x0
return p1
.line 198
:cond_1
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/SessionManager;->startNewSession(J)V
return v1
.end method
.method public toString()Ljava/lang/String;
.locals 3
.line 326
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "{"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const-string v1, "id="
.line 327
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lcom/singular/sdk/internal/SessionManager;->sessionId:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v1, ", lastSessionPauseTime="
.line 328
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lcom/singular/sdk/internal/SessionManager;->lastSessionPauseTime:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v1, ", seq="
.line 329
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lcom/singular/sdk/internal/SessionManager;->sequence:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const/16 v1, 0x7d
.line 330
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 331
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public unregisterNetworkChangeReceiver()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->networkChangeReceiver:Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;
if-eqz v0, :cond_0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/SessionManager;->singular:Lcom/singular/sdk/internal/SingularInstance;
.line 317
invoke-virtual {v0}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object v0
iget-object v1, p0, Lcom/singular/sdk/internal/SessionManager;->networkChangeReceiver:Lcom/singular/sdk/internal/BroadcastReceivers$NetworkChange;
invoke-virtual {v0, v1}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
sget-object v0, Lcom/singular/sdk/internal/SessionManager;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "unregisterNetworkChangeReceiver()"
.line 318
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
:cond_0
return-void
.end method
.method public useForegroundTracking()V
.locals 1
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/singular/sdk/internal/SessionManager;->usingForegroundTracking:Z
return-void
.end method

View File

@@ -0,0 +1,61 @@
.class public Lcom/singular/sdk/internal/SingularExceptionReporter$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SingularExceptionReporter;->initDeviceInfo()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SingularExceptionReporter;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$1;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 51
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$1;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 55
new-instance v1, Lcom/singular/sdk/internal/DeviceInfo;
iget-object v2, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$1;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
invoke-static {v2}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$100(Lcom/singular/sdk/internal/SingularExceptionReporter;)Landroid/content/Context;
move-result-object v2
invoke-direct {v1, v2}, Lcom/singular/sdk/internal/DeviceInfo;-><init>(Landroid/content/Context;)V
invoke-static {v0, v1}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$002(Lcom/singular/sdk/internal/SingularExceptionReporter;Lcom/singular/sdk/internal/DeviceInfo;)Lcom/singular/sdk/internal/DeviceInfo;
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
return-void
.end method

View File

@@ -0,0 +1,249 @@
.class public Lcom/singular/sdk/internal/SingularExceptionReporter$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SingularExceptionReporter;->reportException(Ljava/lang/Throwable;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.field public final synthetic val$t:Ljava/lang/Throwable;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SingularExceptionReporter;Ljava/lang/Throwable;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
iput-object p2, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->val$t:Ljava/lang/Throwable;
.line 69
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 4
.line 73
:try_start_0
new-instance v0, Lorg/json/JSONObject;
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
iget-object v1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->val$t:Ljava/lang/Throwable;
if-eqz v1, :cond_0
const-string v2, "name"
.line 76
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v1, "message"
iget-object v2, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->val$t:Ljava/lang/Throwable;
.line 77
invoke-virtual {v2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v1, "stack_trace"
iget-object v2, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->val$t:Ljava/lang/Throwable;
.line 78
invoke-static {v2}, Landroid/util/Log;->getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
iget-object v1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 80
invoke-static {v1}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v1
if-eqz v1, :cond_1
.line 81
new-instance v1, Lorg/json/JSONObject;
invoke-direct {v1}, Lorg/json/JSONObject;-><init>()V
const-string v2, "aifa"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 83
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-object v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->aifa:Ljava/lang/String;
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v2, "appName"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 84
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-object v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->appName:Ljava/lang/String;
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v2, "appVersion"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 85
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-object v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->appVersion:Ljava/lang/String;
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v2, "deviceModel"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 86
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-object v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->deviceModel:Ljava/lang/String;
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v2, "deviceBrand"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 87
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-object v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->deviceBrand:Ljava/lang/String;
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v2, "deviceManufacturer"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 89
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-object v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->deviceManufacturer:Ljava/lang/String;
.line 88
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v2, "osVersion"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 90
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-object v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->osVersion:Ljava/lang/String;
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v2, "sdkVersion"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 91
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-object v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->sdkVersion:Ljava/lang/String;
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string v2, "isGooglePlayServicesAvailable"
iget-object v3, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 93
invoke-static {v3}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
move-result-object v3
iget-boolean v3, v3, Lcom/singular/sdk/internal/DeviceInfo;->isGooglePlayServicesAvailable:Z
.line 92
invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
const-string v2, "device_info"
.line 95
invoke-virtual {v0, v2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
goto :goto_0
:cond_0
const-string v1, "error"
const-string v2, "Throwable is null!"
.line 98
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
:cond_1
:goto_0
iget-object v1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;->this$0:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 101
invoke-static {v1, v0}, Lcom/singular/sdk/internal/SingularExceptionReporter;->access$200(Lcom/singular/sdk/internal/SingularExceptionReporter;Lorg/json/JSONObject;)I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
return-void
.end method

View File

@@ -0,0 +1,293 @@
.class public Lcom/singular/sdk/internal/SingularExceptionReporter;
.super Landroid/os/HandlerThread;
.source "SourceFile"
# static fields
.field public static instance:Lcom/singular/sdk/internal/SingularExceptionReporter;
# instance fields
.field public context:Landroid/content/Context;
.field public device_info:Lcom/singular/sdk/internal/DeviceInfo;
.field public handler:Landroid/os/Handler;
# direct methods
.method static constructor <clinit>()V
.locals 0
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Landroid/content/Context;)V
.locals 1
.line 41
invoke-direct {p0, p1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
const/4 p1, 0x0
iput-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->handler:Landroid/os/Handler;
iput-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->context:Landroid/content/Context;
iput-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->device_info:Lcom/singular/sdk/internal/DeviceInfo;
.line 43
invoke-virtual {p0}, Ljava/lang/Thread;->start()V
.line 44
new-instance p1, Landroid/os/Handler;
invoke-virtual {p0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-direct {p1, v0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->handler:Landroid/os/Handler;
iput-object p2, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->context:Landroid/content/Context;
return-void
.end method
.method public static synthetic access$000(Lcom/singular/sdk/internal/SingularExceptionReporter;)Lcom/singular/sdk/internal/DeviceInfo;
.locals 0
.line 20
iget-object p0, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->device_info:Lcom/singular/sdk/internal/DeviceInfo;
return-object p0
.end method
.method public static synthetic access$002(Lcom/singular/sdk/internal/SingularExceptionReporter;Lcom/singular/sdk/internal/DeviceInfo;)Lcom/singular/sdk/internal/DeviceInfo;
.locals 0
.line 20
iput-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->device_info:Lcom/singular/sdk/internal/DeviceInfo;
return-object p1
.end method
.method public static synthetic access$100(Lcom/singular/sdk/internal/SingularExceptionReporter;)Landroid/content/Context;
.locals 0
.line 20
iget-object p0, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->context:Landroid/content/Context;
return-object p0
.end method
.method public static synthetic access$200(Lcom/singular/sdk/internal/SingularExceptionReporter;Lorg/json/JSONObject;)I
.locals 0
.line 20
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularExceptionReporter;->postExceptionDataToServer(Lorg/json/JSONObject;)I
move-result p0
return p0
.end method
.method public static getReporter(Landroid/content/Context;)Lcom/singular/sdk/internal/SingularExceptionReporter;
.locals 3
sget-object v0, Lcom/singular/sdk/internal/SingularExceptionReporter;->instance:Lcom/singular/sdk/internal/SingularExceptionReporter;
if-nez v0, :cond_0
const-class v0, Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 31
monitor-enter v0
.line 32
:try_start_0
new-instance v1, Lcom/singular/sdk/internal/SingularExceptionReporter;
const-string v2, "singular_exception_reporter"
invoke-direct {v1, v2, p0}, Lcom/singular/sdk/internal/SingularExceptionReporter;-><init>(Ljava/lang/String;Landroid/content/Context;)V
sput-object v1, Lcom/singular/sdk/internal/SingularExceptionReporter;->instance:Lcom/singular/sdk/internal/SingularExceptionReporter;
.line 33
invoke-virtual {v1}, Lcom/singular/sdk/internal/SingularExceptionReporter;->initDeviceInfo()V
.line 34
monitor-exit v0
goto :goto_0
:catchall_0
move-exception p0
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p0
:cond_0
:goto_0
sget-object p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->instance:Lcom/singular/sdk/internal/SingularExceptionReporter;
return-object p0
.end method
# virtual methods
.method public final initDeviceInfo()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->device_info:Lcom/singular/sdk/internal/DeviceInfo;
if-nez v0, :cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->handler:Landroid/os/Handler;
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->context:Landroid/content/Context;
if-eqz v0, :cond_0
.line 51
new-instance v0, Lcom/singular/sdk/internal/SingularExceptionReporter$1;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/SingularExceptionReporter$1;-><init>(Lcom/singular/sdk/internal/SingularExceptionReporter;)V
iget-object v1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->handler:Landroid/os/Handler;
.line 63
invoke-virtual {v1, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method
.method public final postExceptionDataToServer(Lorg/json/JSONObject;)I
.locals 3
.line 115
:try_start_0
new-instance v0, Ljava/net/URL;
const-string v1, "https://exceptions.singular.net/v2/exceptions/android"
invoke-direct {v0, v1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
.line 117
invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
move-result-object v0
invoke-static {v0}, Lcom/google/firebase/perf/network/FirebasePerfUrlConnection;->instrument(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/net/URLConnection;
check-cast v0, Ljava/net/HttpURLConnection;
const-string v1, "POST"
.line 119
invoke-virtual {v0, v1}, Ljava/net/HttpURLConnection;->setRequestMethod(Ljava/lang/String;)V
const-string v1, "Content-Type"
const-string v2, "application/json"
.line 120
invoke-virtual {v0, v1, v2}, Ljava/net/URLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
const/16 v1, 0x2710
.line 121
invoke-virtual {v0, v1}, Ljava/net/URLConnection;->setConnectTimeout(I)V
.line 122
invoke-virtual {v0, v1}, Ljava/net/URLConnection;->setReadTimeout(I)V
const/4 v1, 0x1
.line 123
invoke-virtual {v0, v1}, Ljava/net/URLConnection;->setDoOutput(Z)V
.line 126
invoke-virtual {p1}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p1
const-string v1, "Content-Length"
.line 127
array-length v2, p1
invoke-static {v2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/net/URLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
.line 128
invoke-virtual {v0}, Ljava/net/URLConnection;->getOutputStream()Ljava/io/OutputStream;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/io/OutputStream;->write([B)V
.line 130
invoke-virtual {v0}, Ljava/net/URLConnection;->connect()V
.line 132
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->getResponseCode()I
move-result p1
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return p1
:catch_0
const/4 p1, -0x1
return p1
.end method
.method public reportException(Ljava/lang/Throwable;)V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->handler:Landroid/os/Handler;
if-eqz v0, :cond_0
.line 69
new-instance v0, Lcom/singular/sdk/internal/SingularExceptionReporter$2;
invoke-direct {v0, p0, p1}, Lcom/singular/sdk/internal/SingularExceptionReporter$2;-><init>(Lcom/singular/sdk/internal/SingularExceptionReporter;Ljava/lang/Throwable;)V
iget-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->handler:Landroid/os/Handler;
const/4 v1, 0x0
.line 108
invoke-virtual {p1, v1}, Landroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
iget-object p1, p0, Lcom/singular/sdk/internal/SingularExceptionReporter;->handler:Landroid/os/Handler;
.line 109
invoke-virtual {p1, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:cond_0
return-void
.end method

View File

@@ -0,0 +1,53 @@
.class public Lcom/singular/sdk/internal/SingularInstance$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SingularInstance;-><init>(Landroid/content/Context;Lcom/singular/sdk/SingularConfig;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SingularInstance;
.field public final synthetic val$self:Lcom/singular/sdk/internal/SingularInstance;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/SingularInstance;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SingularInstance$1;->this$0:Lcom/singular/sdk/internal/SingularInstance;
iput-object p2, p0, Lcom/singular/sdk/internal/SingularInstance$1;->val$self:Lcom/singular/sdk/internal/SingularInstance;
.line 141
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance$1;->this$0:Lcom/singular/sdk/internal/SingularInstance;
iget-object v1, p0, Lcom/singular/sdk/internal/SingularInstance$1;->val$self:Lcom/singular/sdk/internal/SingularInstance;
.line 144
invoke-static {v0, v1}, Lcom/singular/sdk/internal/SingularInstance;->access$000(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/SingularInstance;)V
return-void
.end method

View File

@@ -0,0 +1,53 @@
.class public Lcom/singular/sdk/internal/SingularInstance$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SingularInstance;->logEvent(Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SingularInstance;
.field public final synthetic val$rawEvent:Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SingularInstance$2;->this$0:Lcom/singular/sdk/internal/SingularInstance;
iput-object p2, p0, Lcom/singular/sdk/internal/SingularInstance$2;->val$rawEvent:Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
.line 270
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance$2;->this$0:Lcom/singular/sdk/internal/SingularInstance;
iget-object v1, p0, Lcom/singular/sdk/internal/SingularInstance$2;->val$rawEvent:Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
.line 273
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/SingularInstance;->logEvent(Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V
return-void
.end method

View File

@@ -0,0 +1,79 @@
.class public Lcom/singular/sdk/internal/SingularInstance$3;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SingularInstance;->logEvent(Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SingularInstance;
.field public final synthetic val$rawEvent:Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SingularInstance$3;->this$0:Lcom/singular/sdk/internal/SingularInstance;
iput-object p2, p0, Lcom/singular/sdk/internal/SingularInstance$3;->val$rawEvent:Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
.line 277
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
.line 281
new-instance v0, Lcom/singular/sdk/internal/ApiSubmitEvent;
iget-object v1, p0, Lcom/singular/sdk/internal/SingularInstance$3;->val$rawEvent:Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
iget-wide v1, v1, Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;->timestamp:J
invoke-direct {v0, v1, v2}, Lcom/singular/sdk/internal/ApiSubmitEvent;-><init>(J)V
iget-object v1, p0, Lcom/singular/sdk/internal/SingularInstance$3;->val$rawEvent:Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;
.line 282
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->access$100()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v2
invoke-static {v1, v2}, Lcom/singular/sdk/internal/ApiSubmitEvent$Params;->build(Lcom/singular/sdk/internal/ApiSubmitEvent$RawEvent;Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/ApiSubmitEvent$Params;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/BaseApi;->addParams(Ljava/util/Map;)V
.line 284
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->access$100()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v1
invoke-static {v1}, Lcom/singular/sdk/internal/SingularInstance;->access$200(Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/ApiManager;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/singular/sdk/internal/ApiManager;->enqueue(Lcom/singular/sdk/internal/BaseApi;)V
return-void
.end method

View File

@@ -0,0 +1,98 @@
.class public Lcom/singular/sdk/internal/SingularInstance$6;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SingularInstance;->logSessionStart(J)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SingularInstance;
.field public final synthetic val$sessionId:J
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SingularInstance;J)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SingularInstance$6;->this$0:Lcom/singular/sdk/internal/SingularInstance;
iput-wide p2, p0, Lcom/singular/sdk/internal/SingularInstance$6;->val$sessionId:J
.line 321
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 4
.line 324
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->access$100()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v0
if-eqz v0, :cond_0
.line 326
new-instance v0, Lcom/singular/sdk/internal/ApiStartSession;
iget-wide v1, p0, Lcom/singular/sdk/internal/SingularInstance$6;->val$sessionId:J
invoke-direct {v0, v1, v2}, Lcom/singular/sdk/internal/ApiStartSession;-><init>(J)V
iget-wide v1, p0, Lcom/singular/sdk/internal/SingularInstance$6;->val$sessionId:J
.line 327
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->access$100()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v3
invoke-static {v1, v2, v3}, Lcom/singular/sdk/internal/ApiStartSession$Params;->build(JLcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/ApiStartSession$Params;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/singular/sdk/internal/BaseApi;->addParams(Ljava/util/Map;)V
.line 328
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->access$100()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v1
invoke-static {v1}, Lcom/singular/sdk/internal/SingularInstance;->access$200(Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/ApiManager;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/singular/sdk/internal/ApiManager;->enqueue(Lcom/singular/sdk/internal/BaseApi;)V
.line 331
invoke-static {}, Lcom/singular/sdk/internal/SingularInstance;->access$100()Lcom/singular/sdk/internal/SingularInstance;
move-result-object v0
invoke-static {v0}, Lcom/singular/sdk/internal/SingularInstance;->access$300(Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/SingularConfig;
move-result-object v0
const/4 v1, 0x0
iput-object v1, v0, Lcom/singular/sdk/SingularConfig;->openUri:Landroid/net/Uri;
:cond_0
return-void
.end method

View File

@@ -0,0 +1,55 @@
.class public Lcom/singular/sdk/internal/SingularInstance$8;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/singular/sdk/internal/SingularInstance;->startSessionIfOpenedWithDeeplink()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Lcom/singular/sdk/internal/SingularInstance;
# direct methods
.method public constructor <init>(Lcom/singular/sdk/internal/SingularInstance;)V
.locals 0
iput-object p1, p0, Lcom/singular/sdk/internal/SingularInstance$8;->this$0:Lcom/singular/sdk/internal/SingularInstance;
.line 398
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Lcom/singular/sdk/internal/SingularInstance$8;->this$0:Lcom/singular/sdk/internal/SingularInstance;
.line 401
invoke-static {v0}, Lcom/singular/sdk/internal/SingularInstance;->access$400(Lcom/singular/sdk/internal/SingularInstance;)Lcom/singular/sdk/internal/SessionManager;
move-result-object v0
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/singular/sdk/internal/SessionManager;->startNewSession(J)V
return-void
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,217 @@
.class public Lcom/singular/sdk/internal/SingularLifecycleCallbacks;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/reflect/InvocationHandler;
# static fields
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# instance fields
.field public final sessionManager:Lcom/singular/sdk/internal/SessionManager;
# direct methods
.method static constructor <clinit>()V
.locals 1
const-class v0, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;
.line 29
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/SingularLifecycleCallbacks;->logger:Lcom/singular/sdk/internal/SingularLog;
return-void
.end method
.method public constructor <init>(Lcom/singular/sdk/internal/SessionManager;)V
.locals 0
.line 34
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;->sessionManager:Lcom/singular/sdk/internal/SessionManager;
.line 38
invoke-virtual {p1}, Lcom/singular/sdk/internal/SessionManager;->useForegroundTracking()V
return-void
.end method
# virtual methods
.method public invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 67
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object p1
const-string p3, "onActivityResumed"
invoke-virtual {p3, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
iget-object p1, p0, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;->sessionManager:Lcom/singular/sdk/internal/SessionManager;
.line 69
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J
move-result-wide p2
invoke-virtual {p1, p2, p3}, Lcom/singular/sdk/internal/SessionManager;->onEnterForeground(J)V
goto :goto_0
:cond_0
const-string p1, "onActivityPaused"
.line 70
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_1
iget-object p1, p0, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;->sessionManager:Lcom/singular/sdk/internal/SessionManager;
.line 72
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J
move-result-wide p2
invoke-virtual {p1, p2, p3}, Lcom/singular/sdk/internal/SessionManager;->onExitForeground(J)V
:cond_1
:goto_0
const/4 p1, 0x0
return-object p1
.end method
.method public registerSelf(Landroid/app/Application;)V
.locals 7
const-class v0, Landroid/app/Application;
const/4 v1, 0x1
:try_start_0
new-array v1, v1, [Ljava/lang/Class;
const-class v2, Landroid/app/Application$ActivityLifecycleCallbacks;
const/4 v3, 0x0
aput-object v2, v1, v3
.line 44
invoke-virtual {v0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v2
invoke-static {v2, v1, p0}, Ljava/lang/reflect/Proxy;->newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
move-result-object v1
.line 47
invoke-virtual {v0}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object v0
.line 48
array-length v2, v0
:goto_0
if-ge v3, v2, :cond_1
aget-object v4, v0, v3
.line 49
invoke-virtual {v4}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v5
const-string v6, "registerActivityLifecycleCallbacks"
invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_0
goto :goto_1
:cond_0
add-int/lit8 v3, v3, 0x1
goto :goto_0
:catchall_0
move-exception p1
goto :goto_2
:cond_1
const/4 v4, 0x0
:goto_1
if-eqz v4, :cond_2
filled-new-array {v1}, [Ljava/lang/Object;
move-result-object v0
.line 55
invoke-virtual {v4, p1, v0}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
sget-object p1, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "ActivityLifecycleCallbacks registration successful, Automatic session management will work."
.line 56
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;)I
goto :goto_3
:cond_2
sget-object p1, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v0, "ActivityLifecycleCallbacks registration not available, Automatic session management will not work"
.line 58
invoke-virtual {p1, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_3
:goto_2
sget-object v0, Lcom/singular/sdk/internal/SingularLifecycleCallbacks;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "ActivityLifecycleCallbacks registration failed, Automatic session management will not work"
.line 61
invoke-virtual {v0, v1, p1}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_3
return-void
.end method

View File

@@ -0,0 +1,329 @@
.class public Lcom/singular/sdk/internal/SingularLog;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static ENABLE_LOGGING:Z = false
.field public static LOG_LEVEL:I = 0x6
# instance fields
.field public final TAG:Ljava/lang/String;
.field public final tag:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.locals 0
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.locals 1
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "Singular"
iput-object v0, p0, Lcom/singular/sdk/internal/SingularLog;->TAG:Ljava/lang/String;
iput-object p1, p0, Lcom/singular/sdk/internal/SingularLog;->tag:Ljava/lang/String;
return-void
.end method
.method public static getLogger(Ljava/lang/String;)Lcom/singular/sdk/internal/SingularLog;
.locals 1
.line 41
new-instance v0, Lcom/singular/sdk/internal/SingularLog;
invoke-direct {v0, p0}, Lcom/singular/sdk/internal/SingularLog;-><init>(Ljava/lang/String;)V
return-object v0
.end method
.method public static getThreadInfo()Ljava/lang/String;
.locals 2
.line 97
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
.line 99
invoke-virtual {v0}, Ljava/lang/Thread;->getName()Ljava/lang/String;
move-result-object v0
filled-new-array {v0}, [Ljava/lang/Object;
move-result-object v0
const-string v1, "%s"
invoke-static {v1, v0}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
# virtual methods
.method public debug(Ljava/lang/String;)I
.locals 1
const/4 v0, 0x3
.line 69
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularLog;->shouldLog(I)Z
move-result v0
if-eqz v0, :cond_0
const-string v0, "Singular"
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->text(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
move-result p1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public varargs debug(Ljava/lang/String;[Ljava/lang/Object;)I
.locals 1
const/4 v0, 0x3
.line 73
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularLog;->shouldLog(I)Z
move-result v0
if-eqz v0, :cond_0
invoke-static {p1, p2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->text(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const-string p2, "Singular"
invoke-static {p2, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
move-result p1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public error(Ljava/lang/String;)I
.locals 1
const/4 v0, 0x6
.line 85
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularLog;->shouldLog(I)Z
move-result v0
if-eqz v0, :cond_0
const-string v0, "Singular"
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->text(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move-result p1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public error(Ljava/lang/String;Ljava/lang/Throwable;)I
.locals 1
const/4 v0, 0x6
.line 89
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularLog;->shouldLog(I)Z
move-result v0
if-eqz v0, :cond_0
const-string v0, "Singular"
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->text(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1, p2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
move-result p1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public varargs error(Ljava/lang/String;[Ljava/lang/Object;)I
.locals 1
const/4 v0, 0x6
.line 93
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularLog;->shouldLog(I)Z
move-result v0
if-eqz v0, :cond_0
invoke-static {p1, p2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->text(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const-string p2, "Singular"
invoke-static {p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move-result p1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public info(Ljava/lang/String;)I
.locals 1
const/4 v0, 0x4
.line 77
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularLog;->shouldLog(I)Z
move-result v0
if-eqz v0, :cond_0
const-string v0, "Singular"
invoke-virtual {p0, p1}, Lcom/singular/sdk/internal/SingularLog;->text(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
move-result p1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public isDebugEnabled()Z
.locals 1
const/4 v0, 0x3
.line 65
invoke-virtual {p0, v0}, Lcom/singular/sdk/internal/SingularLog;->shouldLog(I)Z
move-result v0
return v0
.end method
.method public shouldLog(I)Z
.locals 1
sget-boolean v0, Lcom/singular/sdk/internal/SingularLog;->ENABLE_LOGGING:Z
if-eqz v0, :cond_0
sget v0, Lcom/singular/sdk/internal/SingularLog;->LOG_LEVEL:I
if-gt v0, p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public text(Ljava/lang/String;)Ljava/lang/String;
.locals 2
iget-object v0, p0, Lcom/singular/sdk/internal/SingularLog;->tag:Ljava/lang/String;
.line 61
invoke-static {}, Lcom/singular/sdk/internal/SingularLog;->getThreadInfo()Ljava/lang/String;
move-result-object v1
filled-new-array {v0, v1, p1}, [Ljava/lang/Object;
move-result-object p1
const-string v0, "%s [%s] - %s"
invoke-static {v0, p1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,56 @@
.class public abstract Lcom/singular/sdk/internal/SingularMap;
.super Ljava/util/HashMap;
.source "SourceFile"
# direct methods
.method public constructor <init>()V
.locals 0
.line 22
invoke-direct {p0}, Ljava/util/HashMap;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 22
check-cast p1, Ljava/lang/String;
check-cast p2, Ljava/lang/String;
invoke-virtual {p0, p1, p2}, Lcom/singular/sdk/internal/SingularMap;->put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public put(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 1
.line 26
invoke-static {p2}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p1, 0x0
return-object p1
.line 29
:cond_0
invoke-super {p0, p1, p2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/String;
return-object p1
.end method

View File

@@ -0,0 +1,843 @@
.class public abstract Lcom/singular/sdk/internal/SingularRequestHandler;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final POST_PAYLOAD_PARAMS_KEYS:[Ljava/lang/String;
.field public static counter:I
.field public static final logger:Lcom/singular/sdk/internal/SingularLog;
# direct methods
.method static constructor <clinit>()V
.locals 2
const-class v0, Lcom/singular/sdk/internal/SingularRequestHandler;
.line 29
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
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/SingularRequestHandler;->logger:Lcom/singular/sdk/internal/SingularLog;
const/4 v0, 0x0
sput v0, Lcom/singular/sdk/internal/SingularRequestHandler;->counter:I
const-string v0, "e"
const-string v1, "global_properties"
filled-new-array {v0, v1}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/singular/sdk/internal/SingularRequestHandler;->POST_PAYLOAD_PARAMS_KEYS:[Ljava/lang/String;
return-void
.end method
.method public static appendHash(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 3
if-nez p0, :cond_0
const-string p0, ""
return-object p0
:cond_0
const-string v0, "?%s"
filled-new-array {p0}, [Ljava/lang/Object;
move-result-object v1
.line 259
invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-static {v0, p1}, Lcom/singular/sdk/internal/Utils;->sha1Hash(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
sget-object v0, Lcom/singular/sdk/internal/SingularRequestHandler;->logger:Lcom/singular/sdk/internal/SingularLog;
const-string v1, "hash = %s"
filled-new-array {p1}, [Ljava/lang/Object;
move-result-object v2
.line 260
invoke-virtual {v0, v1, v2}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 261
invoke-static {p1}, Lcom/singular/sdk/internal/Utils;->isEmptyOrNull(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_1
goto :goto_0
:cond_1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 263
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "&h="
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
:goto_0
return-object p0
.end method
.method public static buildRequest(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;Ljava/util/Map;J)Ljava/net/HttpURLConnection;
.locals 1
.line 76
invoke-static {p2}, Lcom/singular/sdk/internal/SingularRequestHandler;->getPostPayloadParams(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
.line 79
invoke-static {p0, p2, p3, p4}, Lcom/singular/sdk/internal/SingularRequestHandler;->getQueryString(Lcom/singular/sdk/internal/SingularInstance;Ljava/util/Map;J)Ljava/lang/String;
move-result-object p2
.line 82
invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object p3
iget-object p3, p3, Lcom/singular/sdk/SingularConfig;->secret:Ljava/lang/String;
invoke-static {p2, p3}, Lcom/singular/sdk/internal/SingularRequestHandler;->appendHash(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
.line 85
new-instance p3, Ljava/lang/StringBuilder;
invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, "?"
invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
.line 88
new-instance p2, Ljava/net/URL;
invoke-direct {p2, p1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
.line 89
invoke-virtual {p2}, Ljava/net/URL;->getProtocol()Ljava/lang/String;
move-result-object p3
const-string p4, "https"
invoke-virtual {p3, p4}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result p3
if-eqz p3, :cond_0
.line 90
invoke-static {p2}, Lcom/singular/sdk/internal/SingularRequestHandler;->getHttpsConnection(Ljava/net/URL;)Ljava/net/HttpURLConnection;
move-result-object p2
goto :goto_0
.line 91
:cond_0
invoke-static {p2}, Lcom/singular/sdk/internal/SingularRequestHandler;->getHttpConnection(Ljava/net/URL;)Ljava/net/HttpURLConnection;
move-result-object p2
.line 94
:goto_0
invoke-static {p2}, Lcom/singular/sdk/internal/SingularRequestHandler;->setDefaultConnectionProperties(Ljava/net/HttpURLConnection;)V
.line 96
invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->getSingularConfig()Lcom/singular/sdk/SingularConfig;
move-result-object p0
iget-object p0, p0, Lcom/singular/sdk/SingularConfig;->secret:Ljava/lang/String;
invoke-static {p2, v0, p0}, Lcom/singular/sdk/internal/SingularRequestHandler;->setPayloadForRequest(Ljava/net/HttpURLConnection;Ljava/util/Map;Ljava/lang/String;)V
sget-object p0, Lcom/singular/sdk/internal/SingularRequestHandler;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 98
invoke-virtual {p2}, Ljava/net/HttpURLConnection;->getRequestMethod()Ljava/lang/String;
move-result-object p3
filled-new-array {p3, p1}, [Ljava/lang/Object;
move-result-object p1
const-string p3, "__API__ %s %s"
invoke-virtual {p0, p3, p1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
return-object p2
.end method
.method public static getHttpConnection(Ljava/net/URL;)Ljava/net/HttpURLConnection;
.locals 0
if-eqz p0, :cond_0
.line 275
invoke-virtual {p0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
move-result-object p0
invoke-static {p0}, Lcom/google/firebase/perf/network/FirebasePerfUrlConnection;->instrument(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/net/URLConnection;
check-cast p0, Ljava/net/HttpURLConnection;
goto :goto_0
:cond_0
const/4 p0, 0x0
:goto_0
return-object p0
.end method
.method public static getHttpsConnection(Ljava/net/URL;)Ljava/net/HttpURLConnection;
.locals 0
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 284
:cond_0
invoke-virtual {p0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
move-result-object p0
invoke-static {p0}, Lcom/google/firebase/perf/network/FirebasePerfUrlConnection;->instrument(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/net/URLConnection;
check-cast p0, Ljavax/net/ssl/HttpsURLConnection;
return-object p0
.end method
.method public static getPostPayloadParams(Ljava/util/Map;)Ljava/util/Map;
.locals 6
.line 148
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sget-object v1, Lcom/singular/sdk/internal/SingularRequestHandler;->POST_PAYLOAD_PARAMS_KEYS:[Ljava/lang/String;
.line 150
array-length v2, v1
const/4 v3, 0x0
:goto_0
if-ge v3, v2, :cond_1
aget-object v4, v1, v3
.line 151
invoke-interface {p0, v4}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_0
.line 152
invoke-interface {p0, v4}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
invoke-interface {v0, v4, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 155
invoke-interface {p0, v4}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
:cond_0
add-int/lit8 v3, v3, 0x1
goto :goto_0
:cond_1
return-object v0
.end method
.method public static getQueryString(Lcom/singular/sdk/internal/SingularInstance;Ljava/util/Map;J)Ljava/lang/String;
.locals 3
.line 220
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 223
new-instance v1, Ljava/util/TreeMap;
if-eqz p1, :cond_0
goto :goto_0
:cond_0
new-instance p1, Ljava/util/HashMap;
invoke-direct {p1}, Ljava/util/HashMap;-><init>()V
:goto_0
invoke-direct {v1, p1}, Ljava/util/TreeMap;-><init>(Ljava/util/Map;)V
const-string p1, "rt"
const-string v2, "json"
.line 225
invoke-interface {v1, p1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 226
invoke-static {p2, p3}, Lcom/singular/sdk/internal/Utils;->lagSince(J)D
move-result-wide p1
invoke-static {p1, p2}, Ljava/lang/String;->valueOf(D)Ljava/lang/String;
move-result-object p1
const-string p2, "lag"
invoke-interface {v1, p2, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 227
invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularInstance;->getContext()Landroid/content/Context;
move-result-object p0
invoke-static {p0}, Lcom/singular/sdk/internal/Utils;->getConnectionType(Landroid/content/Context;)Ljava/lang/String;
move-result-object p0
const-string p1, "c"
invoke-interface {v1, p1, p0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 230
invoke-interface {v1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p0
invoke-interface {p0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_1
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result p1
if-eqz p1, :cond_3
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/util/Map$Entry;
.line 231
invoke-interface {p1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/lang/String;
const-string p3, "UTF-8"
invoke-static {p2, p3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
.line 232
invoke-interface {p1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/String;
if-eqz p1, :cond_1
.line 233
invoke-static {p1, p3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
goto :goto_2
:cond_1
const-string p1, ""
.line 234
:goto_2
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result p3
if-lez p3, :cond_2
const-string p3, "&"
.line 235
invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 238
:cond_2
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, "="
.line 239
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 240
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_1
.line 243
:cond_3
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static makeRequest(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;Ljava/util/Map;JLcom/singular/sdk/internal/Api$OnApiCallback;)Z
.locals 6
.line 52
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J
move-result-wide v2
sget v0, Lcom/singular/sdk/internal/SingularRequestHandler;->counter:I
add-int/lit8 v4, v0, 0x1
sput v4, Lcom/singular/sdk/internal/SingularRequestHandler;->counter:I
sget-object v0, Lcom/singular/sdk/internal/SingularRequestHandler;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 55
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
filled-new-array {v1}, [Ljava/lang/Object;
move-result-object v1
const-string v5, "---------------------------> /%d"
invoke-virtual {v0, v5, v1}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
const-string v1, "url = %s"
filled-new-array {p1}, [Ljava/lang/Object;
move-result-object v5
.line 56
invoke-virtual {v0, v1, v5}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
const-string v1, "params = %s"
filled-new-array {p2}, [Ljava/lang/Object;
move-result-object v5
.line 57
invoke-virtual {v0, v1, v5}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 59
invoke-static {p0, p1, p2, p3, p4}, Lcom/singular/sdk/internal/SingularRequestHandler;->buildRequest(Lcom/singular/sdk/internal/SingularInstance;Ljava/lang/String;Ljava/util/Map;J)Ljava/net/HttpURLConnection;
move-result-object p1
move-object v0, p0
move-object v1, p5
move-object v5, p1
.line 62
:try_start_0
invoke-static/range {v0 .. v5}, Lcom/singular/sdk/internal/SingularRequestHandler;->sendRequest(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/Api$OnApiCallback;JILjava/net/HttpURLConnection;)Z
move-result p0
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz p1, :cond_0
.line 68
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->disconnect()V
:cond_0
return p0
:catchall_0
move-exception p0
goto :goto_0
:catch_0
move-exception p0
.line 64
:try_start_1
throw p0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
:goto_0
if-eqz p1, :cond_1
.line 68
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->disconnect()V
.line 70
:cond_1
throw p0
.end method
.method public static readResponse(Ljava/net/HttpURLConnection;)Ljava/lang/String;
.locals 3
.line 125
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
.line 126
invoke-virtual {p0}, Ljava/net/URLConnection;->getInputStream()Ljava/io/InputStream;
move-result-object v1
.line 129
invoke-virtual {p0}, Ljava/net/URLConnection;->getContentEncoding()Ljava/lang/String;
move-result-object v2
if-eqz v2, :cond_0
invoke-virtual {p0}, Ljava/net/URLConnection;->getContentEncoding()Ljava/lang/String;
move-result-object p0
const-string v2, "gzip"
invoke-virtual {p0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_0
.line 130
new-instance p0, Ljava/io/InputStreamReader;
new-instance v2, Ljava/util/zip/GZIPInputStream;
invoke-direct {v2, v1}, Ljava/util/zip/GZIPInputStream;-><init>(Ljava/io/InputStream;)V
invoke-direct {p0, v2}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
goto :goto_0
.line 132
:cond_0
new-instance p0, Ljava/io/InputStreamReader;
invoke-direct {p0, v1}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
.line 135
:goto_0
new-instance v1, Ljava/io/BufferedReader;
invoke-direct {v1, p0}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
.line 139
:goto_1
invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object p0
if-eqz p0, :cond_1
.line 140
invoke-virtual {v0, p0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto :goto_1
.line 143
:cond_1
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static sendRequest(Lcom/singular/sdk/internal/SingularInstance;Lcom/singular/sdk/internal/Api$OnApiCallback;JILjava/net/HttpURLConnection;)Z
.locals 4
.line 105
invoke-virtual {p5}, Ljava/net/URLConnection;->connect()V
.line 108
invoke-virtual {p5}, Ljava/net/HttpURLConnection;->getResponseCode()I
move-result v0
.line 110
invoke-static {p5}, Lcom/singular/sdk/internal/SingularRequestHandler;->readResponse(Ljava/net/HttpURLConnection;)Ljava/lang/String;
move-result-object v1
.line 112
invoke-virtual {p5}, Ljava/net/HttpURLConnection;->disconnect()V
.line 115
invoke-static {}, Lcom/singular/sdk/internal/Utils;->getCurrentTimeMillis()J
move-result-wide v2
sub-long/2addr v2, p2
sget-object p2, Lcom/singular/sdk/internal/SingularRequestHandler;->logger:Lcom/singular/sdk/internal/SingularLog;
.line 117
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p3
filled-new-array {p3, v1}, [Ljava/lang/Object;
move-result-object p3
const-string p5, "%d %s"
invoke-virtual {p2, p5, p3}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 118
invoke-static {p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p3
invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p4
filled-new-array {p3, p4}, [Ljava/lang/Object;
move-result-object p3
const-string p4, "<--------------------------- /%d - took %dms"
invoke-virtual {p2, p4, p3}, Lcom/singular/sdk/internal/SingularLog;->debug(Ljava/lang/String;[Ljava/lang/Object;)I
.line 121
invoke-interface {p1, p0, v0, v1}, Lcom/singular/sdk/internal/Api$OnApiCallback;->handle(Lcom/singular/sdk/internal/SingularInstance;ILjava/lang/String;)Z
move-result p0
return p0
.end method
.method public static setDefaultConnectionProperties(Ljava/net/HttpURLConnection;)V
.locals 2
const/16 v0, 0x2710
.line 194
invoke-virtual {p0, v0}, Ljava/net/URLConnection;->setConnectTimeout(I)V
.line 195
invoke-virtual {p0, v0}, Ljava/net/URLConnection;->setReadTimeout(I)V
const-string v0, "POST"
.line 196
invoke-virtual {p0, v0}, Ljava/net/HttpURLConnection;->setRequestMethod(Ljava/lang/String;)V
const/4 v0, 0x1
.line 197
invoke-virtual {p0, v0}, Ljava/net/URLConnection;->setDoInput(Z)V
const/4 v0, 0x0
.line 201
invoke-virtual {p0, v0}, Ljava/net/URLConnection;->setUseCaches(Z)V
const-string v0, "User-Agent"
.line 202
sget-object v1, Lcom/singular/sdk/internal/Constants;->HTTP_USER_AGENT:Ljava/lang/String;
invoke-virtual {p0, v0, v1}, Ljava/net/URLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "Content-Type"
const-string v1, "application/json"
.line 203
invoke-virtual {p0, v0, v1}, Ljava/net/URLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public static setPayloadForRequest(Ljava/net/HttpURLConnection;Ljava/util/Map;Ljava/lang/String;)V
.locals 2
if-nez p0, :cond_0
return-void
.line 168
:cond_0
:try_start_0
new-instance v0, Lorg/json/JSONObject;
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
if-eqz p1, :cond_1
.line 170
invoke-interface {p1}, Ljava/util/Map;->size()I
move-result v1
if-lez v1, :cond_1
.line 171
new-instance v1, Lorg/json/JSONObject;
invoke-direct {v1, p1}, Lorg/json/JSONObject;-><init>(Ljava/util/Map;)V
.line 172
invoke-virtual {v1}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object p1
.line 173
invoke-static {p1, p2}, Lcom/singular/sdk/internal/Utils;->sha1Hash(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
const-string v1, "payload"
.line 175
invoke-virtual {v0, v1, p1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string p1, "signature"
.line 176
invoke-virtual {v0, p1, p2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
goto :goto_0
:catch_0
move-exception p0
goto :goto_1
:catch_1
move-exception p0
goto :goto_1
.line 179
:cond_1
:goto_0
new-instance p1, Ljava/io/OutputStreamWriter;
invoke-virtual {p0}, Ljava/net/URLConnection;->getOutputStream()Ljava/io/OutputStream;
move-result-object p0
const-string p2, "UTF-8"
invoke-direct {p1, p0, p2}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/lang/String;)V
.line 180
invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/io/Writer;->write(Ljava/lang/String;)V
.line 181
invoke-virtual {p1}, Ljava/io/OutputStreamWriter;->close()V
:try_end_0
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_2
.line 184
:goto_1
invoke-virtual {p0}, Ljava/lang/Throwable;->printStackTrace()V
:goto_2
return-void
.end method

View File

@@ -0,0 +1,115 @@
.class public Lcom/singular/sdk/internal/SingularWorkerThread;
.super Landroid/os/HandlerThread;
.source "SourceFile"
# instance fields
.field public handler:Landroid/os/Handler;
# direct methods
.method public constructor <init>(Ljava/lang/String;)V
.locals 0
.line 9
invoke-direct {p0, p1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public final declared-synchronized ensureInit()V
.locals 2
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/singular/sdk/internal/SingularWorkerThread;->handler:Landroid/os/Handler;
if-nez v0, :cond_0
.line 33
new-instance v0, Landroid/os/Handler;
invoke-virtual {p0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v0, p0, Lcom/singular/sdk/internal/SingularWorkerThread;->handler:Landroid/os/Handler;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v0
goto :goto_1
.line 35
:cond_0
:goto_0
monitor-exit p0
return-void
:goto_1
monitor-exit p0
throw v0
.end method
.method public getHandler()Landroid/os/Handler;
.locals 1
.line 15
invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularWorkerThread;->ensureInit()V
iget-object v0, p0, Lcom/singular/sdk/internal/SingularWorkerThread;->handler:Landroid/os/Handler;
return-object v0
.end method
.method public post(Ljava/lang/Runnable;)V
.locals 1
.line 20
invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularWorkerThread;->getHandler()Landroid/os/Handler;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public postAtFront(Ljava/lang/Runnable;)V
.locals 1
.line 28
invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularWorkerThread;->getHandler()Landroid/os/Handler;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/os/Handler;->postAtFrontOfQueue(Ljava/lang/Runnable;)Z
return-void
.end method
.method public postDelayed(Ljava/lang/Runnable;I)V
.locals 3
.line 24
invoke-virtual {p0}, Lcom/singular/sdk/internal/SingularWorkerThread;->getHandler()Landroid/os/Handler;
move-result-object v0
int-to-long v1, p2
invoke-virtual {v0, p1, v1, v2}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method

View File

@@ -0,0 +1,271 @@
.class public abstract Lcom/singular/sdk/internal/Utils$Reflection;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/singular/sdk/internal/Utils;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Reflection"
.end annotation
# direct methods
.method public static forName(Ljava/lang/String;)Ljava/lang/Class;
.locals 0
.line 483
:try_start_0
invoke-static {p0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object p0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
return-object p0
:catchall_0
const/4 p0, 0x0
return-object p0
.end method
.method public static getCpuAbi()Ljava/lang/String;
.locals 2
:try_start_0
const-string v0, "android.os.Build"
const-string v1, "CPU_ABI"
.line 411
invoke-static {v0, v1}, Lcom/singular/sdk/internal/Utils$Reflection;->readField(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
const/4 v0, 0x0
:goto_0
return-object v0
.end method
.method public static getLocaleFromField(Landroid/content/res/Configuration;)Ljava/util/Locale;
.locals 2
:try_start_0
const-string v0, "android.content.res.Configuration"
const-string v1, "locale"
.line 434
invoke-static {v0, v1, p0}, Lcom/singular/sdk/internal/Utils$Reflection;->readField(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/util/Locale;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
const/4 p0, 0x0
:goto_0
return-object p0
.end method
.method public static getLocaleFromLocaleList(Landroid/content/res/Configuration;)Ljava/util/Locale;
.locals 6
const/4 v0, 0x0
:try_start_0
const-string v1, "getLocales"
const/4 v2, 0x0
new-array v3, v2, [Ljava/lang/Object;
.line 420
invoke-static {p0, v1, v0, v3}, Lcom/singular/sdk/internal/Utils$Reflection;->invokeInstanceMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
if-nez p0, :cond_0
return-object v0
:cond_0
const-string v1, "get"
const/4 v3, 0x1
new-array v4, v3, [Ljava/lang/Class;
sget-object v5, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v5, v4, v2
new-array v3, v3, [Ljava/lang/Object;
.line 424
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v3, v2
invoke-static {p0, v1, v4, v3}, Lcom/singular/sdk/internal/Utils$Reflection;->invokeInstanceMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/util/Locale;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
move-object v0, p0
:catchall_0
return-object v0
.end method
.method public static getSupportedAbis()[Ljava/lang/String;
.locals 2
:try_start_0
const-string v0, "android.os.Build"
const-string v1, "SUPPORTED_ABIS"
.line 402
invoke-static {v0, v1}, Lcom/singular/sdk/internal/Utils$Reflection;->readField(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/String;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
const/4 v0, 0x0
:goto_0
return-object v0
.end method
.method public static varargs invokeInstanceMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 1
.line 442
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
.line 443
invoke-static {v0, p1, p0, p2, p3}, Lcom/singular/sdk/internal/Utils$Reflection;->invokeMethod(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static varargs invokeMethod(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 455
invoke-virtual {p0, p1, p3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object p0
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
.line 459
:cond_0
invoke-virtual {p0, p2, p4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static varargs invokeStaticMethod(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
.locals 1
.line 448
invoke-static {p0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object p0
const/4 v0, 0x0
.line 449
invoke-static {p0, p1, v0, p2, p3}, Lcom/singular/sdk/internal/Utils$Reflection;->invokeMethod(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static readField(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.locals 1
const/4 v0, 0x0
.line 465
invoke-static {p0, p1, v0}, Lcom/singular/sdk/internal/Utils$Reflection;->readField(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static readField(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
.locals 1
.line 470
invoke-static {p0}, Lcom/singular/sdk/internal/Utils$Reflection;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object p0
const/4 v0, 0x0
if-nez p0, :cond_0
return-object v0
.line 474
:cond_0
invoke-virtual {p0, p1}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object p0
if-nez p0, :cond_1
return-object v0
.line 478
:cond_1
invoke-virtual {p0, p2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method

File diff suppressed because it is too large Load Diff