DeviceId.smali
.class public Lio/rong/imlib/statistics/DeviceId;
.super Ljava/lang/Object;
.source "DeviceId.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/rong/imlib/statistics/DeviceId$Type;
}
.end annotation
# static fields
.field private static final PREFERENCE_KEY_ID_TYPE:Ljava/lang/String; = "ly.count.android.api.DeviceId.type"
.field private static final TAG:Ljava/lang/String; = "DeviceId"
# instance fields
.field private id:Ljava/lang/String;
.field private type:Lio/rong/imlib/statistics/DeviceId$Type;
# direct methods
.method public constructor <init>(Lio/rong/imlib/statistics/DeviceId$Type;)V
.registers 3
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
if-eqz p1, :cond_14
.line 2
sget-object v0, Lio/rong/imlib/statistics/DeviceId$Type;->DEVELOPER_SUPPLIED:Lio/rong/imlib/statistics/DeviceId$Type;
if-eq p1, v0, :cond_c
.line 3
iput-object p1, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
return-void
.line 4
:cond_c
new-instance p1, Ljava/lang/IllegalStateException;
const-string v0, "Please use another DeviceId constructor for device IDs supplied by developer"
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.line 5
:cond_14
new-instance p1, Ljava/lang/IllegalStateException;
const-string v0, "Please specify DeviceId.Type, that is which type of device ID generation you want to use"
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.line 6
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
if-eqz p1, :cond_14
const-string v0, ""
.line 7
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_14
.line 8
sget-object v0, Lio/rong/imlib/statistics/DeviceId$Type;->DEVELOPER_SUPPLIED:Lio/rong/imlib/statistics/DeviceId$Type;
iput-object v0, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
.line 9
iput-object p1, p0, Lio/rong/imlib/statistics/DeviceId;->id:Ljava/lang/String;
return-void
.line 10
:cond_14
new-instance p1, Ljava/lang/IllegalStateException;
const-string v0, "Please make sure that device ID is not null or empty"
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method static deviceIDEqualsNullSafe(Ljava/lang/String;Lio/rong/imlib/statistics/DeviceId$Type;Lio/rong/imlib/statistics/DeviceId;)Z
.registers 5
const/4 v0, 0x1
if-eqz p1, :cond_9
.line 1
sget-object v1, Lio/rong/imlib/statistics/DeviceId$Type;->DEVELOPER_SUPPLIED:Lio/rong/imlib/statistics/DeviceId$Type;
if-ne p1, v1, :cond_8
goto :goto_9
:cond_8
return v0
:cond_9
:goto_9
if-nez p2, :cond_d
const/4 p1, 0x0
goto :goto_11
.line 2
:cond_d
invoke-virtual {p2}, Lio/rong/imlib/statistics/DeviceId;->getId()Ljava/lang/String;
move-result-object p1
:goto_11
if-nez p1, :cond_15
if-eqz p0, :cond_1f
:cond_15
if-eqz p1, :cond_1e
.line 3
invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_1e
goto :goto_1f
:cond_1e
const/4 v0, 0x0
:cond_1f
:goto_1f
return v0
.end method
.method private retrieveOverriddenType(Lio/rong/imlib/statistics/StatisticsStore;)Lio/rong/imlib/statistics/DeviceId$Type;
.registers 4
const-string v0, "ly.count.android.api.DeviceId.type"
.line 1
invoke-virtual {p1, v0}, Lio/rong/imlib/statistics/StatisticsStore;->getPreference(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const/4 v0, 0x0
if-nez p1, :cond_a
goto :goto_36
.line 2
:cond_a
sget-object v1, Lio/rong/imlib/statistics/DeviceId$Type;->DEVELOPER_SUPPLIED:Lio/rong/imlib/statistics/DeviceId$Type;
invoke-virtual {v1}, Ljava/lang/Enum;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_19
.line 3
sget-object v0, Lio/rong/imlib/statistics/DeviceId$Type;->DEVELOPER_SUPPLIED:Lio/rong/imlib/statistics/DeviceId$Type;
goto :goto_36
.line 4
:cond_19
sget-object v1, Lio/rong/imlib/statistics/DeviceId$Type;->OPEN_UDID:Lio/rong/imlib/statistics/DeviceId$Type;
invoke-virtual {v1}, Ljava/lang/Enum;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_28
.line 5
sget-object v0, Lio/rong/imlib/statistics/DeviceId$Type;->OPEN_UDID:Lio/rong/imlib/statistics/DeviceId$Type;
goto :goto_36
.line 6
:cond_28
sget-object v1, Lio/rong/imlib/statistics/DeviceId$Type;->ADVERTISING_ID:Lio/rong/imlib/statistics/DeviceId$Type;
invoke-virtual {v1}, Ljava/lang/Enum;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_36
.line 7
sget-object v0, Lio/rong/imlib/statistics/DeviceId$Type;->ADVERTISING_ID:Lio/rong/imlib/statistics/DeviceId$Type;
:cond_36
:goto_36
return-object v0
.end method
.method private storeOverriddenType(Lio/rong/imlib/statistics/StatisticsStore;Lio/rong/imlib/statistics/DeviceId$Type;)V
.registers 4
if-nez p2, :cond_4
const/4 p2, 0x0
goto :goto_8
.line 1
:cond_4
invoke-virtual {p2}, Ljava/lang/Enum;->toString()Ljava/lang/String;
move-result-object p2
:goto_8
const-string v0, "ly.count.android.api.DeviceId.type"
invoke-virtual {p1, v0, p2}, Lio/rong/imlib/statistics/StatisticsStore;->setPreference(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public getId()Ljava/lang/String;
.registers 3
.line 1
iget-object v0, p0, Lio/rong/imlib/statistics/DeviceId;->id:Ljava/lang/String;
if-nez v0, :cond_10
iget-object v0, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
sget-object v1, Lio/rong/imlib/statistics/DeviceId$Type;->OPEN_UDID:Lio/rong/imlib/statistics/DeviceId$Type;
if-ne v0, v1, :cond_10
.line 2
invoke-static {}, Lio/rong/imlib/statistics/OpenUDIDAdapter;->getOpenUDID()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lio/rong/imlib/statistics/DeviceId;->id:Ljava/lang/String;
.line 3
:cond_10
iget-object v0, p0, Lio/rong/imlib/statistics/DeviceId;->id:Ljava/lang/String;
return-object v0
.end method
.method public getType()Lio/rong/imlib/statistics/DeviceId$Type;
.registers 2
.line 1
iget-object v0, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
return-object v0
.end method
.method public init(Landroid/content/Context;Lio/rong/imlib/statistics/StatisticsStore;Z)V
.registers 8
.line 1
invoke-direct {p0, p2}, Lio/rong/imlib/statistics/DeviceId;->retrieveOverriddenType(Lio/rong/imlib/statistics/StatisticsStore;)Lio/rong/imlib/statistics/DeviceId$Type;
move-result-object v0
const-string v1, "DeviceId"
if-eqz v0, :cond_36
.line 2
iget-object v2, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
if-eq v0, v2, :cond_36
.line 3
invoke-static {}, Lio/rong/imlib/statistics/Statistics;->sharedInstance()Lio/rong/imlib/statistics/Statistics;
move-result-object v2
invoke-virtual {v2}, Lio/rong/imlib/statistics/Statistics;->isLoggingEnabled()Z
move-result v2
if-eqz v2, :cond_34
.line 4
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Overridden device ID generation strategy detected: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v3, ", using it instead of "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 5
:cond_34
iput-object v0, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
.line 6
:cond_36
sget-object v0, Lio/rong/imlib/statistics/DeviceId$1;->$SwitchMap$io$rong$imlib$statistics$DeviceId$Type:[I
iget-object v2, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
invoke-virtual {v2}, Ljava/lang/Enum;->ordinal()I
move-result v2
aget v0, v0, v2
const/4 v2, 0x1
if-eq v0, v2, :cond_c5
const/4 v2, 0x2
const-string v3, "OpenUDID is not available, please make sure that you have it in your classpath"
if-eq v0, v2, :cond_9d
const/4 v2, 0x3
if-eq v0, v2, :cond_4d
goto/16 :goto_c5
.line 7
:cond_4d
invoke-static {}, Lio/rong/imlib/statistics/AdvertisingIdAdapter;->isAdvertisingIdAvailable()Z
move-result v0
if-eqz v0, :cond_66
.line 8
invoke-static {}, Lio/rong/imlib/statistics/Statistics;->sharedInstance()Lio/rong/imlib/statistics/Statistics;
move-result-object p3
invoke-virtual {p3}, Lio/rong/imlib/statistics/Statistics;->isLoggingEnabled()Z
move-result p3
if-eqz p3, :cond_62
const-string p3, "Using Advertising ID"
.line 9
invoke-static {v1, p3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 10
:cond_62
invoke-static {p1, p2, p0}, Lio/rong/imlib/statistics/AdvertisingIdAdapter;->setAdvertisingId(Landroid/content/Context;Lio/rong/imlib/statistics/StatisticsStore;Lio/rong/imlib/statistics/DeviceId;)V
goto :goto_c5
.line 11
:cond_66
invoke-static {}, Lio/rong/imlib/statistics/OpenUDIDAdapter;->isOpenUDIDAvailable()Z
move-result p2
if-eqz p2, :cond_85
.line 12
invoke-static {}, Lio/rong/imlib/statistics/Statistics;->sharedInstance()Lio/rong/imlib/statistics/Statistics;
move-result-object p2
invoke-virtual {p2}, Lio/rong/imlib/statistics/Statistics;->isLoggingEnabled()Z
move-result p2
if-eqz p2, :cond_7b
const-string p2, "Advertising ID is not available, falling back to OpenUDID"
.line 13
invoke-static {v1, p2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 14
:cond_7b
invoke-static {}, Lio/rong/imlib/statistics/OpenUDIDAdapter;->isInitialized()Z
move-result p2
if-nez p2, :cond_c5
.line 15
invoke-static {p1}, Lio/rong/imlib/statistics/OpenUDIDAdapter;->sync(Landroid/content/Context;)V
goto :goto_c5
.line 16
:cond_85
invoke-static {}, Lio/rong/imlib/statistics/Statistics;->sharedInstance()Lio/rong/imlib/statistics/Statistics;
move-result-object p1
invoke-virtual {p1}, Lio/rong/imlib/statistics/Statistics;->isLoggingEnabled()Z
move-result p1
if-eqz p1, :cond_94
const-string p1, "Advertising ID is not available, neither OpenUDID is"
.line 17
invoke-static {v1, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:cond_94
if-nez p3, :cond_97
goto :goto_c5
.line 18
:cond_97
new-instance p1, Ljava/lang/IllegalStateException;
invoke-direct {p1, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.line 19
:cond_9d
invoke-static {}, Lio/rong/imlib/statistics/OpenUDIDAdapter;->isOpenUDIDAvailable()Z
move-result p2
if-eqz p2, :cond_bc
.line 20
invoke-static {}, Lio/rong/imlib/statistics/Statistics;->sharedInstance()Lio/rong/imlib/statistics/Statistics;
move-result-object p2
invoke-virtual {p2}, Lio/rong/imlib/statistics/Statistics;->isLoggingEnabled()Z
move-result p2
if-eqz p2, :cond_b2
const-string p2, "Using OpenUDID"
.line 21
invoke-static {v1, p2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 22
:cond_b2
invoke-static {}, Lio/rong/imlib/statistics/OpenUDIDAdapter;->isInitialized()Z
move-result p2
if-nez p2, :cond_c5
.line 23
invoke-static {p1}, Lio/rong/imlib/statistics/OpenUDIDAdapter;->sync(Landroid/content/Context;)V
goto :goto_c5
:cond_bc
if-nez p3, :cond_bf
goto :goto_c5
.line 24
:cond_bf
new-instance p1, Ljava/lang/IllegalStateException;
invoke-direct {p1, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
:cond_c5
:goto_c5
return-void
.end method
.method protected setId(Lio/rong/imlib/statistics/DeviceId$Type;Ljava/lang/String;)V
.registers 5
.line 1
invoke-static {}, Lio/rong/imlib/statistics/Statistics;->sharedInstance()Lio/rong/imlib/statistics/Statistics;
move-result-object v0
invoke-virtual {v0}, Lio/rong/imlib/statistics/Statistics;->isLoggingEnabled()Z
move-result v0
if-eqz v0, :cond_2d
.line 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Device ID is "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, " (type "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)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
const-string v1, "DeviceId"
invoke-static {v1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 3
:cond_2d
iput-object p1, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
.line 4
iput-object p2, p0, Lio/rong/imlib/statistics/DeviceId;->id:Ljava/lang/String;
return-void
.end method
.method protected switchToIdType(Lio/rong/imlib/statistics/DeviceId$Type;Landroid/content/Context;Lio/rong/imlib/statistics/StatisticsStore;)V
.registers 6
.line 1
invoke-static {}, Lio/rong/imlib/statistics/Statistics;->sharedInstance()Lio/rong/imlib/statistics/Statistics;
move-result-object v0
invoke-virtual {v0}, Lio/rong/imlib/statistics/Statistics;->isLoggingEnabled()Z
move-result v0
if-eqz v0, :cond_2a
.line 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Switching to device ID generation strategy "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, " from "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "DeviceId"
invoke-static {v1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 3
:cond_2a
iput-object p1, p0, Lio/rong/imlib/statistics/DeviceId;->type:Lio/rong/imlib/statistics/DeviceId$Type;
.line 4
invoke-direct {p0, p3, p1}, Lio/rong/imlib/statistics/DeviceId;->storeOverriddenType(Lio/rong/imlib/statistics/StatisticsStore;Lio/rong/imlib/statistics/DeviceId$Type;)V
const/4 p1, 0x0
.line 5
invoke-virtual {p0, p2, p3, p1}, Lio/rong/imlib/statistics/DeviceId;->init(Landroid/content/Context;Lio/rong/imlib/statistics/StatisticsStore;Z)V
return-void
.end method