al.smali
.class public Lcom/umeng/analytics/pro/al;
.super Ljava/lang/Object;
.source "UMSysLocation.java"
# static fields
.field private static final a:Ljava/lang/String; = "UMSysLocation"
.field private static final c:I = 0x2710
# instance fields
.field private b:Landroid/location/LocationManager;
.field private d:Landroid/content/Context;
.field private e:Lcom/umeng/analytics/pro/an;
# direct methods
.method private constructor <init>()V
.registers 1
.prologue
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 38
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
.prologue
.line 40
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 41
if-nez p1, :cond_b
.line 43
const-string v0, "Context\u53c2\u6570\u4e0d\u80fd\u4e3anull"
invoke-static {v0}, Lcom/umeng/commonsdk/statistics/common/MLog;->e(Ljava/lang/String;)V
.line 48
:goto_a
return-void
.line 45
:cond_b
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
iput-object v0, p0, Lcom/umeng/analytics/pro/al;->d:Landroid/content/Context;
.line 46
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string v1, "location"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/location/LocationManager;
iput-object v0, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
goto :goto_a
.end method
# virtual methods
.method public declared-synchronized a()V
.registers 5
.prologue
.line 131
monitor-enter p0
:try_start_1
const-string v0, "UMSysLocation"
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
const-string v3, "destroy"
aput-object v3, v1, v2
invoke-static {v0, v1}, Lcom/umeng/commonsdk/statistics/common/ULog;->i(Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_e
.catchall {:try_start_1 .. :try_end_e} :catchall_1e
.line 135
:try_start_e
iget-object v0, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
if-eqz v0, :cond_15
.line 136
const/4 v0, 0x0
iput-object v0, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
:try_end_15
.catch Ljava/lang/Throwable; {:try_start_e .. :try_end_15} :catch_17
.catchall {:try_start_e .. :try_end_15} :catchall_1e
.line 145
:cond_15
:goto_15
monitor-exit p0
return-void
.line 141
:catch_17
move-exception v0
.line 142
:try_start_18
iget-object v1, p0, Lcom/umeng/analytics/pro/al;->d:Landroid/content/Context;
invoke-static {v1, v0}, Lcom/umeng/commonsdk/internal/crash/UMCrashManager;->reportCrash(Landroid/content/Context;Ljava/lang/Throwable;)V
:try_end_1d
.catchall {:try_start_18 .. :try_end_1d} :catchall_1e
goto :goto_15
.line 131
:catchall_1e
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized a(Lcom/umeng/analytics/pro/an;)V
.registers 9
.prologue
const/4 v0, 0x0
const/4 v1, 0x0
.line 63
monitor-enter p0
:try_start_3
const-string v2, "UMSysLocation"
const/4 v3, 0x1
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
const-string v5, "getSystemLocation"
aput-object v5, v3, v4
invoke-static {v2, v3}, Lcom/umeng/commonsdk/statistics/common/ULog;->i(Ljava/lang/String;[Ljava/lang/Object;)V
.line 65
if-eqz p1, :cond_16
iget-object v2, p0, Lcom/umeng/analytics/pro/al;->d:Landroid/content/Context;
:try_end_14
.catchall {:try_start_3 .. :try_end_14} :catchall_94
if-nez v2, :cond_18
.line 127
:cond_16
:goto_16
monitor-exit p0
return-void
.line 69
:cond_18
:try_start_18
iput-object p1, p0, Lcom/umeng/analytics/pro/al;->e:Lcom/umeng/analytics/pro/an;
.line 70
iget-object v2, p0, Lcom/umeng/analytics/pro/al;->d:Landroid/content/Context;
const-string v3, "android.permission.ACCESS_COARSE_LOCATION"
invoke-static {v2, v3}, Lcom/umeng/commonsdk/utils/UMUtils;->checkPermission(Landroid/content/Context;Ljava/lang/String;)Z
move-result v3
.line 71
iget-object v2, p0, Lcom/umeng/analytics/pro/al;->d:Landroid/content/Context;
const-string v4, "android.permission.ACCESS_FINE_LOCATION"
invoke-static {v2, v4}, Lcom/umeng/commonsdk/utils/UMUtils;->checkPermission(Landroid/content/Context;Ljava/lang/String;)Z
:try_end_29
.catchall {:try_start_18 .. :try_end_29} :catchall_94
move-result v4
.line 72
if-nez v3, :cond_2e
if-eqz v4, :cond_97
.line 82
:cond_2e
:try_start_2e
iget-object v2, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
if-eqz v2, :cond_16
.line 85
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v5, 0x15
if-lt v2, v5, :cond_a3
.line 86
iget-object v1, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
const-string v2, "gps"
invoke-virtual {v1, v2}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
move-result v2
.line 87
iget-object v1, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
const-string v5, "network"
invoke-virtual {v1, v5}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
move-result v1
.line 100
:cond_48
:goto_48
if-nez v2, :cond_4c
if-eqz v1, :cond_63
.line 101
:cond_4c
const-string v1, "UMSysLocation"
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v5, 0x0
const-string v6, "getLastKnownLocation(LocationManager.PASSIVE_PROVIDER)"
aput-object v6, v2, v5
invoke-static {v1, v2}, Lcom/umeng/commonsdk/statistics/common/ULog;->i(Ljava/lang/String;[Ljava/lang/Object;)V
.line 103
if-eqz v4, :cond_b8
.line 104
iget-object v0, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
const-string v1, "passive"
invoke-virtual {v0, v1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
move-result-object v0
.line 111
:cond_63
:goto_63
iget-object v1, p0, Lcom/umeng/analytics/pro/al;->e:Lcom/umeng/analytics/pro/an;
invoke-virtual {v1, v0}, Lcom/umeng/analytics/pro/an;->a(Landroid/location/Location;)V
:try_end_68
.catch Ljava/lang/Throwable; {:try_start_2e .. :try_end_68} :catch_69
.catchall {:try_start_2e .. :try_end_68} :catchall_94
goto :goto_16
.line 114
:catch_69
move-exception v0
.line 115
:try_start_6a
const-string v1, "UMSysLocation"
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "e is "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
invoke-static {v1, v2}, Lcom/umeng/commonsdk/statistics/common/ULog;->i(Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_88
.catchall {:try_start_6a .. :try_end_88} :catchall_94
.line 117
if-eqz p1, :cond_8e
.line 118
const/4 v1, 0x0
:try_start_8b
invoke-virtual {p1, v1}, Lcom/umeng/analytics/pro/an;->a(Landroid/location/Location;)V
:try_end_8e
.catch Ljava/lang/Throwable; {:try_start_8b .. :try_end_8e} :catch_c3
.catchall {:try_start_8b .. :try_end_8e} :catchall_94
.line 124
:cond_8e
:goto_8e
:try_start_8e
iget-object v1, p0, Lcom/umeng/analytics/pro/al;->d:Landroid/content/Context;
invoke-static {v1, v0}, Lcom/umeng/commonsdk/internal/crash/UMCrashManager;->reportCrash(Landroid/content/Context;Ljava/lang/Throwable;)V
:try_end_93
.catchall {:try_start_8e .. :try_end_93} :catchall_94
goto :goto_16
.line 63
:catchall_94
move-exception v0
monitor-exit p0
throw v0
.line 75
:cond_97
:try_start_97
iget-object v0, p0, Lcom/umeng/analytics/pro/al;->e:Lcom/umeng/analytics/pro/an;
if-eqz v0, :cond_16
.line 76
iget-object v0, p0, Lcom/umeng/analytics/pro/al;->e:Lcom/umeng/analytics/pro/an;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Lcom/umeng/analytics/pro/an;->a(Landroid/location/Location;)V
:try_end_a1
.catchall {:try_start_97 .. :try_end_a1} :catchall_94
goto/16 :goto_16
.line 91
:cond_a3
if-eqz v4, :cond_ca
.line 92
:try_start_a5
iget-object v2, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
const-string v5, "gps"
invoke-virtual {v2, v5}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
move-result v2
.line 94
:goto_ad
if-eqz v3, :cond_48
.line 95
iget-object v1, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
const-string v5, "network"
invoke-virtual {v1, v5}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
move-result v1
goto :goto_48
.line 105
:cond_b8
if-eqz v3, :cond_63
.line 106
iget-object v0, p0, Lcom/umeng/analytics/pro/al;->b:Landroid/location/LocationManager;
const-string v1, "network"
invoke-virtual {v0, v1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
:try_end_c1
.catch Ljava/lang/Throwable; {:try_start_a5 .. :try_end_c1} :catch_69
.catchall {:try_start_a5 .. :try_end_c1} :catchall_94
move-result-object v0
goto :goto_63
.line 120
:catch_c3
move-exception v1
.line 121
:try_start_c4
iget-object v2, p0, Lcom/umeng/analytics/pro/al;->d:Landroid/content/Context;
invoke-static {v2, v1}, Lcom/umeng/commonsdk/internal/crash/UMCrashManager;->reportCrash(Landroid/content/Context;Ljava/lang/Throwable;)V
:try_end_c9
.catchall {:try_start_c4 .. :try_end_c9} :catchall_94
goto :goto_8e
:cond_ca
move v2, v1
goto :goto_ad
.end method