a.smali
.class public Lcn/jiguang/am/a;
.super Ljava/lang/Object;
# instance fields
.field protected a:Landroid/location/Location;
.field public b:Landroid/content/Context;
.field public c:Lcn/jiguang/am/f;
.field public d:J
.field public e:J
.field public f:I
.field private g:Landroid/location/LocationManager;
.field private h:Z
.field private i:Landroid/location/GpsStatus$Listener;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
.annotation build Landroid/annotation/SuppressLint;
value = {
"MissingPermission"
}
.end annotation
const-wide/16 v0, 0x0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-wide v0, p0, Lcn/jiguang/am/a;->d:J
iput-wide v0, p0, Lcn/jiguang/am/a;->e:J
const/4 v0, 0x0
iput v0, p0, Lcn/jiguang/am/a;->f:I
invoke-static {p1}, Lcn/jiguang/api/JCoreManager;->getAppContext(Landroid/content/Context;)Landroid/content/Context;
move-result-object v0
iput-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;
const-string v0, "location"
invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/location/LocationManager;
iput-object v0, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;
new-instance v0, Lcn/jiguang/am/i;
invoke-direct {v0, p0}, Lcn/jiguang/am/i;-><init>(Lcn/jiguang/am/a;)V
iput-object v0, p0, Lcn/jiguang/am/a;->i:Landroid/location/GpsStatus$Listener;
return-void
.end method
.method static synthetic a(Lcn/jiguang/am/a;)Landroid/location/GpsStatus$Listener;
.registers 2
iget-object v0, p0, Lcn/jiguang/am/a;->i:Landroid/location/GpsStatus$Listener;
return-object v0
.end method
.method private a(Landroid/content/Context;Ljava/lang/String;)Z
.registers 6
const/4 v0, 0x0
:try_start_1
invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, p2, v2}, Landroid/content/pm/PackageManager;->checkPermission(Ljava/lang/String;Ljava/lang/String;)I
:try_end_c
.catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_c} :catch_12
move-result v1
if-eqz v1, :cond_10
:goto_f
return v0
:cond_10
const/4 v0, 0x1
goto :goto_f
:catch_12
move-exception v1
goto :goto_f
.end method
.method private a(Landroid/location/Location;)Z
.registers 8
const/4 v0, 0x0
const-wide/16 v4, 0x0
if-nez p1, :cond_6
:cond_5
:goto_5
return v0
:cond_6
invoke-virtual {p1}, Landroid/location/Location;->getLatitude()D
move-result-wide v2
cmpl-double v1, v2, v4
if-nez v1, :cond_26
invoke-virtual {p1}, Landroid/location/Location;->getLongitude()D
move-result-wide v2
cmpl-double v1, v2, v4
if-nez v1, :cond_26
invoke-virtual {p1}, Landroid/location/Location;->getTime()J
move-result-wide v2
const-wide/16 v4, 0x0
cmp-long v1, v2, v4
if-nez v1, :cond_26
invoke-virtual {p1}, Landroid/location/Location;->hasAccuracy()Z
move-result v1
if-eqz v1, :cond_5
:cond_26
const/4 v0, 0x1
goto :goto_5
.end method
.method static synthetic b(Lcn/jiguang/am/a;)Landroid/location/LocationManager;
.registers 2
iget-object v0, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;
return-object v0
.end method
.method private c()Z
.registers 5
.annotation build Landroid/annotation/SuppressLint;
value = {
"MissingPermission"
}
.end annotation
const/4 v1, 0x1
const/4 v0, 0x0
:try_start_2
invoke-direct {p0}, Lcn/jiguang/am/a;->d()Z
move-result v2
if-nez v2, :cond_9
:cond_8
:goto_8
return v0
:cond_9
iget-object v2, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;
const-string v3, "com.huawei.android.hwouc"
invoke-static {v2, v3}, Lcn/jiguang/f/a;->h(Landroid/content/Context;Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_15
move v0, v1
goto :goto_8
:cond_15
iget-object v2, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;
if-eqz v2, :cond_8
iget-object v2, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;
const-string v3, "network"
invoke-virtual {v2, v3}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
move-result-object v2
invoke-direct {p0, v2}, Lcn/jiguang/am/a;->a(Landroid/location/Location;)Z
:try_end_24
.catch Ljava/lang/Throwable; {:try_start_2 .. :try_end_24} :catch_29
move-result v2
if-eqz v2, :cond_8
move v0, v1
goto :goto_8
:catch_29
move-exception v1
goto :goto_8
.end method
.method private d()Z
.registers 3
iget-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;
const-string v1, "android.permission.ACCESS_FINE_LOCATION"
invoke-static {v0, v1}, Lcn/jiguang/o/d;->a(Landroid/content/Context;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_2a
iget-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;
const-string v1, "android.permission.ACCESS_COARSE_LOCATION"
invoke-static {v0, v1}, Lcn/jiguang/o/d;->a(Landroid/content/Context;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_2a
iget-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;
const-string v1, "android.permission.ACCESS_FINE_LOCATION"
invoke-direct {p0, v0, v1}, Lcn/jiguang/am/a;->a(Landroid/content/Context;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_2a
iget-object v0, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;
const-string v1, "android.permission.ACCESS_COARSE_LOCATION"
invoke-direct {p0, v0, v1}, Lcn/jiguang/am/a;->a(Landroid/content/Context;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_2a
const/4 v0, 0x1
:goto_29
return v0
:cond_2a
const/4 v0, 0x0
goto :goto_29
.end method
.method private e()Lcn/jiguang/am/b;
.registers 13
.annotation build Landroid/annotation/SuppressLint;
value = {
"MissingPermission"
}
.end annotation
const/4 v7, 0x0
const/4 v9, 0x3
const/4 v4, 0x0
const-string v5, ""
const-string v3, ""
const-string v2, ""
invoke-direct {p0}, Lcn/jiguang/am/a;->c()Z
move-result v1
if-eqz v1, :cond_8a
iget-object v1, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;
const-string v6, "phone"
invoke-virtual {v1, v6}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/telephony/TelephonyManager;
if-eqz v1, :cond_102
invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getSimState()I
move-result v6
const/4 v8, 0x5
if-ne v6, v8, :cond_102
invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
move-result-object v2
if-eqz v2, :cond_2e
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v3
if-ge v3, v9, :cond_8b
:cond_2e
move v8, v4
move v6, v4
:goto_30
:try_start_30
invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;
move-result-object v3
instance-of v2, v3, Landroid/telephony/gsm/GsmCellLocation;
if-eqz v2, :cond_9c
move-object v0, v3
check-cast v0, Landroid/telephony/gsm/GsmCellLocation;
move-object v2, v0
invoke-virtual {v2}, Landroid/telephony/gsm/GsmCellLocation;->getLac()I
:try_end_3f
.catch Ljava/lang/Throwable; {:try_start_30 .. :try_end_3f} :catch_b9
move-result v5
:try_start_40
check-cast v3, Landroid/telephony/gsm/GsmCellLocation;
invoke-virtual {v3}, Landroid/telephony/gsm/GsmCellLocation;->getCid()I
:try_end_45
.catch Ljava/lang/Throwable; {:try_start_40 .. :try_end_45} :catch_fc
move-result v2
move v4, v5
move v3, v6
:goto_48
move v5, v2
move v6, v4
move v9, v3
:goto_4b
:try_start_4b
invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNeighboringCellInfo()Ljava/util/List;
:try_end_4e
.catch Ljava/lang/Throwable; {:try_start_4b .. :try_end_4e} :catch_dc
move-result-object v2
:goto_4f
invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNetworkType()I
move-result v3
invoke-static {v3}, Lcn/jiguang/o/d;->a(I)Ljava/lang/String;
move-result-object v3
iget-object v7, p0, Lcn/jiguang/am/a;->b:Landroid/content/Context;
invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getNetworkType()I
move-result v1
invoke-static {v7, v1}, Lcn/jiguang/o/d;->a(Landroid/content/Context;I)Ljava/lang/String;
move-result-object v1
move v7, v9
move-object v11, v4
move v4, v5
move v5, v8
move-object v8, v2
move-object v2, v3
move-object v3, v11
:goto_6c
new-instance v9, Lcn/jiguang/am/b;
invoke-direct {v9}, Lcn/jiguang/am/b;-><init>()V
invoke-virtual {v9, v5}, Lcn/jiguang/am/b;->a(I)V
invoke-virtual {v9, v6}, Lcn/jiguang/am/b;->b(I)V
invoke-virtual {v9, v7}, Lcn/jiguang/am/b;->c(I)V
invoke-virtual {v9, v4}, Lcn/jiguang/am/b;->d(I)V
invoke-virtual {v9, v8}, Lcn/jiguang/am/b;->a(Ljava/util/List;)V
invoke-virtual {v9, v3}, Lcn/jiguang/am/b;->a(Ljava/lang/String;)V
invoke-virtual {v9, v2}, Lcn/jiguang/am/b;->b(Ljava/lang/String;)V
invoke-virtual {v9, v1}, Lcn/jiguang/am/b;->c(Ljava/lang/String;)V
move-object v7, v9
:cond_8a
return-object v7
:cond_8b
invoke-virtual {v2, v4, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
invoke-virtual {v2, v9}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v6
goto :goto_30
:cond_9c
:try_start_9c
instance-of v2, v3, Landroid/telephony/cdma/CdmaCellLocation;
if-eqz v2, :cond_fe
move-object v0, v3
check-cast v0, Landroid/telephony/cdma/CdmaCellLocation;
move-object v2, v0
invoke-virtual {v2}, Landroid/telephony/cdma/CdmaCellLocation;->getNetworkId()I
:try_end_a7
.catch Ljava/lang/Throwable; {:try_start_9c .. :try_end_a7} :catch_b9
move-result v5
:try_start_a8
move-object v0, v3
check-cast v0, Landroid/telephony/cdma/CdmaCellLocation;
move-object v2, v0
invoke-virtual {v2}, Landroid/telephony/cdma/CdmaCellLocation;->getSystemId()I
move-result v6
check-cast v3, Landroid/telephony/cdma/CdmaCellLocation;
invoke-virtual {v3}, Landroid/telephony/cdma/CdmaCellLocation;->getBaseStationId()I
:try_end_b5
.catch Ljava/lang/Throwable; {:try_start_a8 .. :try_end_b5} :catch_fc
move-result v2
move v4, v5
move v3, v6
goto :goto_48
:catch_b9
move-exception v2
move v5, v4
:goto_bb
const-string v3, "CellHelper"
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "getCellLocation error:"
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v9, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v3, v2}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V
move v9, v6
move v6, v5
move v5, v4
goto/16 :goto_4b
:catch_dc
move-exception v2
const-string v3, "CellHelper"
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "getNeighborCell error:"
invoke-virtual {v4, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v3, v2}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V
move-object v2, v7
goto/16 :goto_4f
:catch_fc
move-exception v2
goto :goto_bb
:cond_fe
move v2, v4
move v3, v6
goto/16 :goto_48
:cond_102
move-object v1, v2
move v6, v4
move-object v8, v7
move-object v2, v3
move v7, v4
move-object v3, v5
move v5, v4
goto/16 :goto_6c
.end method
# virtual methods
.method protected a(Z)Landroid/location/Location;
.registers 7
.annotation build Landroid/annotation/SuppressLint;
value = {
"MissingPermission"
}
.end annotation
const/4 v0, 0x0
:try_start_1
iget-object v1, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;
if-eqz v1, :cond_b
invoke-direct {p0}, Lcn/jiguang/am/a;->c()Z
move-result v1
if-nez v1, :cond_c
:cond_b
:goto_b
return-object v0
:cond_c
if-eqz p1, :cond_17
iget-object v1, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;
const-string v2, "gps"
invoke-virtual {v1, v2}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
move-result-object v0
goto :goto_b
:cond_17
iget-object v1, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;
const-string v2, "network"
invoke-virtual {v1, v2}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
:try_end_1e
.catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1e} :catch_20
move-result-object v0
goto :goto_b
:catch_20
move-exception v1
const-string v2, "CellHelper"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "getLocation error:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_b
.end method
.method public a()V
.registers 6
.annotation build Landroid/annotation/SuppressLint;
value = {
"MissingPermission"
}
.end annotation
:try_start_0
iget-boolean v0, p0, Lcn/jiguang/am/a;->h:Z
if-eqz v0, :cond_c
const-string v0, "CellHelper"
const-string v1, "g is on listening"
invoke-static {v0, v1}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V
:cond_b
:goto_b
return-void
:cond_c
invoke-static {}, Lcn/jiguang/am/d;->a()Lcn/jiguang/am/d;
move-result-object v0
invoke-virtual {v0}, Lcn/jiguang/am/d;->b()Z
move-result v0
invoke-direct {p0}, Lcn/jiguang/am/a;->c()Z
move-result v1
const-string v2, "CellHelper"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, " init checkSafeStatus = "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " , deviceEnv="
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V
if-eqz v0, :cond_b
iget-object v0, p0, Lcn/jiguang/am/a;->g:Landroid/location/LocationManager;
if-eqz v0, :cond_b
if-eqz v1, :cond_b
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
new-instance v1, Lcn/jiguang/am/a$1;
invoke-direct {v1, p0}, Lcn/jiguang/am/a$1;-><init>(Lcn/jiguang/am/a;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
const/4 v0, 0x1
iput-boolean v0, p0, Lcn/jiguang/am/a;->h:Z
const-string v0, "CellHelper"
const-string v1, "g is start listening"
invoke-static {v0, v1}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V
:try_end_5d
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_5d} :catch_5e
goto :goto_b
:catch_5e
move-exception v0
const-string v1, "CellHelper"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "init error:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcn/jiguang/an/a;->a(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
iput-boolean v0, p0, Lcn/jiguang/am/a;->h:Z
goto :goto_b
.end method
.method public a(Lcn/jiguang/am/f;)V
.registers 2
iput-object p1, p0, Lcn/jiguang/am/a;->c:Lcn/jiguang/am/f;
return-void
.end method
.method public b()V
.registers 5
:try_start_0
invoke-direct {p0}, Lcn/jiguang/am/a;->e()Lcn/jiguang/am/b;
move-result-object v0
if-eqz v0, :cond_b
iget-object v1, p0, Lcn/jiguang/am/a;->c:Lcn/jiguang/am/f;
invoke-virtual {v1, v0}, Lcn/jiguang/am/f;->a(Lcn/jiguang/am/b;)V
:try_end_b
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_b} :catch_c
:cond_b
:goto_b
return-void
:catch_c
move-exception v0
const-string v1, "CellHelper"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "startScanCell error:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcn/jiguang/an/a;->d(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_b
.end method