cn.smali

.class public final Lcom/loc/cn;
.super Ljava/lang/Object;


# instance fields
.field a:Landroid/os/Handler;

.field b:Landroid/location/LocationManager;

.field c:Lcom/amap/api/location/AMapLocationClientOption;

.field d:J

.field e:Z

.field f:Lcom/loc/bb;

.field g:Lcom/loc/cg;

.field h:I

.field i:I

.field j:J

.field k:Landroid/location/LocationListener;

.field l:I

.field m:Landroid/location/GpsStatus;

.field public n:Lcom/amap/api/location/AMapLocation;

.field private o:Landroid/content/Context;

.field private p:J

.field private q:I

.field private r:Landroid/location/GpsStatus$Listener;


# direct methods
.method public constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
    .registers 9

    const-wide/16 v4, 0x0

    const/4 v2, 0x0

    const/4 v1, 0x0

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    iput-wide v4, p0, Lcom/loc/cn;->p:J

    iput-wide v4, p0, Lcom/loc/cn;->d:J

    iput-boolean v2, p0, Lcom/loc/cn;->e:Z

    iput v2, p0, Lcom/loc/cn;->q:I

    iput-object v1, p0, Lcom/loc/cn;->f:Lcom/loc/bb;

    iput-object v1, p0, Lcom/loc/cn;->g:Lcom/loc/cg;

    const/16 v0, 0xf0

    iput v0, p0, Lcom/loc/cn;->h:I

    const/16 v0, 0x50

    iput v0, p0, Lcom/loc/cn;->i:I

    iput-wide v4, p0, Lcom/loc/cn;->j:J

    new-instance v0, Lcom/loc/cn$1;

    invoke-direct {v0, p0}, Lcom/loc/cn$1;-><init>(Lcom/loc/cn;)V

    iput-object v0, p0, Lcom/loc/cn;->k:Landroid/location/LocationListener;

    iput v2, p0, Lcom/loc/cn;->l:I

    iput-object v1, p0, Lcom/loc/cn;->m:Landroid/location/GpsStatus;

    new-instance v0, Lcom/loc/cn$2;

    invoke-direct {v0, p0}, Lcom/loc/cn$2;-><init>(Lcom/loc/cn;)V

    iput-object v0, p0, Lcom/loc/cn;->r:Landroid/location/GpsStatus$Listener;

    iput-object v1, p0, Lcom/loc/cn;->n:Lcom/amap/api/location/AMapLocation;

    iput-object p1, p0, Lcom/loc/cn;->o:Landroid/content/Context;

    iput-object p2, p0, Lcom/loc/cn;->a:Landroid/os/Handler;

    iget-object v0, p0, Lcom/loc/cn;->o:Landroid/content/Context;

    const-string/jumbo 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/loc/cn;->b:Landroid/location/LocationManager;

    new-instance v0, Lcom/loc/bb;

    invoke-direct {v0}, Lcom/loc/bb;-><init>()V

    iput-object v0, p0, Lcom/loc/cn;->f:Lcom/loc/bb;

    new-instance v0, Lcom/loc/cg;

    invoke-direct {v0}, Lcom/loc/cg;-><init>()V

    iput-object v0, p0, Lcom/loc/cn;->g:Lcom/loc/cg;

    return-void
.end method

.method static synthetic a(Lcom/loc/cn;)Landroid/content/Context;
    .registers 2

    iget-object v0, p0, Lcom/loc/cn;->o:Landroid/content/Context;

    return-object v0
.end method

.method private a(IILjava/lang/String;J)V
    .registers 10

    iget-object v0, p0, Lcom/loc/cn;->a:Landroid/os/Handler;

    if-eqz v0, :cond_33

    iget-object v0, p0, Lcom/loc/cn;->c:Lcom/amap/api/location/AMapLocationClientOption;

    invoke-virtual {v0}, Lcom/amap/api/location/AMapLocationClientOption;->getLocationMode()Lcom/amap/api/location/AMapLocationClientOption$AMapLocationMode;

    move-result-object v0

    sget-object v1, Lcom/amap/api/location/AMapLocationClientOption$AMapLocationMode;->b:Lcom/amap/api/location/AMapLocationClientOption$AMapLocationMode;

    if-ne v0, v1, :cond_33

    invoke-static {}, Landroid/os/Message;->obtain()Landroid/os/Message;

    move-result-object v0

    new-instance v1, Lcom/amap/api/location/AMapLocation;

    const-string/jumbo v2, ""

    invoke-direct {v1, v2}, Lcom/amap/api/location/AMapLocation;-><init>(Ljava/lang/String;)V

    const-string/jumbo v2, "gps"

    invoke-virtual {v1, v2}, Lcom/amap/api/location/AMapLocation;->setProvider(Ljava/lang/String;)V

    invoke-virtual {v1, p2}, Lcom/amap/api/location/AMapLocation;->setErrorCode(I)V

    invoke-virtual {v1, p3}, Lcom/amap/api/location/AMapLocation;->setLocationDetail(Ljava/lang/String;)V

    const/4 v2, 0x1

    invoke-virtual {v1, v2}, Lcom/amap/api/location/AMapLocation;->setLocationType(I)V

    iput-object v1, v0, Landroid/os/Message;->obj:Ljava/lang/Object;

    iput p1, v0, Landroid/os/Message;->what:I

    iget-object v1, p0, Lcom/loc/cn;->a:Landroid/os/Handler;

    invoke-virtual {v1, v0, p4, p5}, Landroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z

    :cond_33
    return-void
.end method

.method static synthetic a(Lcom/loc/cn;Lcom/amap/api/location/AMapLocation;)V
    .registers 8

    :try_start_0
    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getLatitude()D

    move-result-wide v0

    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getLongitude()D

    move-result-wide v2

    invoke-static {v0, v1, v2, v3}, Lcom/loc/ca;->a(DD)Z

    move-result v0

    if-eqz v0, :cond_37

    iget-object v0, p0, Lcom/loc/cn;->c:Lcom/amap/api/location/AMapLocationClientOption;

    invoke-virtual {v0}, Lcom/amap/api/location/AMapLocationClientOption;->isOffset()Z

    move-result v0

    if-eqz v0, :cond_37

    iget-object v0, p0, Lcom/loc/cn;->o:Landroid/content/Context;

    new-instance v1, Lcom/amap/api/location/DPoint;

    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getLatitude()D

    move-result-wide v2

    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getLongitude()D

    move-result-wide v4

    invoke-direct {v1, v2, v3, v4, v5}, Lcom/amap/api/location/DPoint;-><init>(DD)V

    invoke-static {v0, v1}, Lcom/loc/cb;->a(Landroid/content/Context;Lcom/amap/api/location/DPoint;)Lcom/amap/api/location/DPoint;

    move-result-object v0

    invoke-virtual {v0}, Lcom/amap/api/location/DPoint;->getLatitude()D

    move-result-wide v2

    invoke-virtual {p1, v2, v3}, Lcom/amap/api/location/AMapLocation;->setLatitude(D)V

    invoke-virtual {v0}, Lcom/amap/api/location/DPoint;->getLongitude()D

    move-result-wide v0

    invoke-virtual {p1, v0, v1}, Lcom/amap/api/location/AMapLocation;->setLongitude(D)V
    :try_end_37
    .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_37} :catch_38

    :cond_37
    :goto_37
    return-void

    :catch_38
    move-exception v0

    goto :goto_37
.end method

.method static synthetic b(Lcom/loc/cn;)J
    .registers 3

    iget-wide v0, p0, Lcom/loc/cn;->p:J

    return-wide v0
.end method

.method static synthetic b(Lcom/loc/cn;Lcom/amap/api/location/AMapLocation;)Lcom/amap/api/location/AMapLocation;
    .registers 6

    const v3, 0x7f7fffff    # Float.MAX_VALUE

    const/4 v2, 0x0

    invoke-static {p1}, Lcom/loc/cj;->a(Lcom/amap/api/location/AMapLocation;)Z

    move-result v0

    if-nez v0, :cond_b

    :cond_a
    :goto_a
    return-object p1

    :cond_b
    iget v0, p0, Lcom/loc/cn;->q:I

    const/4 v1, 0x3

    if-lt v0, v1, :cond_a

    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getAccuracy()F

    move-result v0

    cmpg-float v0, v0, v2

    if-ltz v0, :cond_20

    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getAccuracy()F

    move-result v0

    cmpl-float v0, v0, v3

    if-nez v0, :cond_23

    :cond_20
    invoke-virtual {p1, v2}, Lcom/amap/api/location/AMapLocation;->setAccuracy(F)V

    :cond_23
    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getSpeed()F

    move-result v0

    cmpg-float v0, v0, v2

    if-ltz v0, :cond_33

    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getSpeed()F

    move-result v0

    cmpl-float v0, v0, v3

    if-nez v0, :cond_36

    :cond_33
    invoke-virtual {p1, v2}, Lcom/amap/api/location/AMapLocation;->setSpeed(F)V

    :cond_36
    iget-object v0, p0, Lcom/loc/cn;->f:Lcom/loc/bb;

    invoke-virtual {v0, p1}, Lcom/loc/bb;->a(Lcom/amap/api/location/AMapLocation;)Lcom/amap/api/location/AMapLocation;

    move-result-object v0

    iget-object v1, p0, Lcom/loc/cn;->g:Lcom/loc/cg;

    invoke-virtual {v1, p1, v0}, Lcom/loc/cg;->a(Lcom/amap/api/location/AMapLocation;Lcom/amap/api/location/AMapLocation;)V

    move-object p1, v0

    goto :goto_a
.end method

.method static synthetic c(Lcom/loc/cn;Lcom/amap/api/location/AMapLocation;)V
    .registers 4

    invoke-static {p1}, Lcom/loc/cj;->a(Lcom/amap/api/location/AMapLocation;)Z

    move-result v0

    if-eqz v0, :cond_12

    invoke-static {}, Lcom/loc/cj;->b()J

    move-result-wide v0

    iput-wide v0, p0, Lcom/loc/cn;->d:J

    iget v0, p0, Lcom/loc/cn;->q:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/loc/cn;->q:I

    :cond_12
    return-void
.end method

.method static synthetic d(Lcom/loc/cn;Lcom/amap/api/location/AMapLocation;)V
    .registers 6

    :try_start_0
    invoke-virtual {p1}, Lcom/amap/api/location/AMapLocation;->getErrorCode()I

    move-result v0

    if-nez v0, :cond_28

    sget-boolean v0, Lcom/loc/ca;->l:Z

    if-nez v0, :cond_28

    iget-object v0, p0, Lcom/loc/cn;->o:Landroid/content/Context;

    const-string/jumbo v1, "pref"

    const-string/jumbo v2, "colde"

    const/4 v3, 0x0

    invoke-static {v0, v1, v2, v3}, Lcom/loc/ci;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Z)Z

    move-result v0

    if-nez v0, :cond_28

    const/4 v0, 0x1

    sput-boolean v0, Lcom/loc/ca;->l:Z

    iget-object v0, p0, Lcom/loc/cn;->o:Landroid/content/Context;

    const-string/jumbo v1, "pref"

    const-string/jumbo v2, "colde"

    const/4 v3, 0x1

    invoke-static {v0, v1, v2, v3}, Lcom/loc/ci;->a(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Z)V
    :try_end_28
    .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_28} :catch_29

    :cond_28
    :goto_28
    return-void

    :catch_29
    move-exception v0

    goto :goto_28
.end method


# virtual methods
.method public final a()V
    .registers 6

    const/4 v4, 0x0

    const-wide/16 v2, 0x0

    iget-object v0, p0, Lcom/loc/cn;->b:Landroid/location/LocationManager;

    if-nez v0, :cond_8

    :goto_7
    return-void

    :cond_8
    iget-object v0, p0, Lcom/loc/cn;->k:Landroid/location/LocationListener;

    if-eqz v0, :cond_13

    iget-object v0, p0, Lcom/loc/cn;->b:Landroid/location/LocationManager;

    iget-object v1, p0, Lcom/loc/cn;->k:Landroid/location/LocationListener;

    invoke-virtual {v0, v1}, Landroid/location/LocationManager;->removeUpdates(Landroid/location/LocationListener;)V

    :cond_13
    iget-object v0, p0, Lcom/loc/cn;->r:Landroid/location/GpsStatus$Listener;

    if-eqz v0, :cond_1e

    iget-object v0, p0, Lcom/loc/cn;->b:Landroid/location/LocationManager;

    iget-object v1, p0, Lcom/loc/cn;->r:Landroid/location/GpsStatus$Listener;

    invoke-virtual {v0, v1}, Landroid/location/LocationManager;->removeGpsStatusListener(Landroid/location/GpsStatus$Listener;)V

    :cond_1e
    iget-object v0, p0, Lcom/loc/cn;->a:Landroid/os/Handler;

    if-eqz v0, :cond_29

    iget-object v0, p0, Lcom/loc/cn;->a:Landroid/os/Handler;

    const/16 v1, 0x8

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeMessages(I)V

    :cond_29
    iput v4, p0, Lcom/loc/cn;->l:I

    iput-wide v2, p0, Lcom/loc/cn;->p:J

    iput-wide v2, p0, Lcom/loc/cn;->j:J

    iput-wide v2, p0, Lcom/loc/cn;->d:J

    iput v4, p0, Lcom/loc/cn;->q:I

    iget-object v0, p0, Lcom/loc/cn;->f:Lcom/loc/bb;

    invoke-virtual {v0}, Lcom/loc/bb;->a()V

    iget-object v0, p0, Lcom/loc/cn;->g:Lcom/loc/cg;

    invoke-virtual {v0}, Lcom/loc/cg;->a()V

    goto :goto_7
.end method

.method final b()V
    .registers 11

    const-wide/16 v8, 0x0

    const/4 v7, 0x0

    :try_start_3
    invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;

    move-result-object v6

    if-nez v6, :cond_f

    iget-object v0, p0, Lcom/loc/cn;->o:Landroid/content/Context;

    invoke-virtual {v0}, Landroid/content/Context;->getMainLooper()Landroid/os/Looper;

    move-result-object v6

    :cond_f
    invoke-static {}, Lcom/loc/cj;->b()J

    move-result-wide v0

    iput-wide v0, p0, Lcom/loc/cn;->p:J

    iget-object v0, p0, Lcom/loc/cn;->b:Landroid/location/LocationManager;

    invoke-virtual {v0}, Landroid/location/LocationManager;->getAllProviders()Ljava/util/List;

    move-result-object v0

    if-eqz v0, :cond_23

    invoke-interface {v0}, Ljava/util/List;->size()I
    :try_end_20
    .catch Ljava/lang/SecurityException; {:try_start_3 .. :try_end_20} :catch_6e
    .catch Ljava/lang/Throwable; {:try_start_3 .. :try_end_20} :catch_81

    move-result v1

    if-nez v1, :cond_58

    :cond_23
    const/4 v0, 0x0

    :goto_24
    if-eqz v0, :cond_60

    :try_start_26
    iget-object v0, p0, Lcom/loc/cn;->b:Landroid/location/LocationManager;

    const-string/jumbo v1, "gps"

    const-string/jumbo v2, "force_xtra_injection"

    const/4 v3, 0x0

    invoke-virtual {v0, v1, v2, v3}, Landroid/location/LocationManager;->sendExtraCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Z
    :try_end_32
    .catch Ljava/lang/Throwable; {:try_start_26 .. :try_end_32} :catch_8c
    .catch Ljava/lang/SecurityException; {:try_start_26 .. :try_end_32} :catch_6e

    :goto_32
    :try_start_32
    iget-object v0, p0, Lcom/loc/cn;->b:Landroid/location/LocationManager;

    const-string/jumbo v1, "gps"

    const-wide/16 v2, 0x384

    const/4 v4, 0x0

    iget-object v5, p0, Lcom/loc/cn;->k:Landroid/location/LocationListener;

    invoke-virtual/range {v0 .. v6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V

    iget-object v0, p0, Lcom/loc/cn;->b:Landroid/location/LocationManager;

    iget-object v1, p0, Lcom/loc/cn;->r:Landroid/location/GpsStatus$Listener;

    invoke-virtual {v0, v1}, Landroid/location/LocationManager;->addGpsStatusListener(Landroid/location/GpsStatus$Listener;)Z

    const/16 v1, 0x8

    const/16 v2, 0xe

    const-string/jumbo v3, "no enough satellites"

    iget-object v0, p0, Lcom/loc/cn;->c:Lcom/amap/api/location/AMapLocationClientOption;

    invoke-virtual {v0}, Lcom/amap/api/location/AMapLocationClientOption;->getHttpTimeOut()J

    move-result-wide v4

    move-object v0, p0

    invoke-direct/range {v0 .. v5}, Lcom/loc/cn;->a(IILjava/lang/String;J)V

    :goto_57
    return-void

    :cond_58
    const-string/jumbo v1, "gps"

    invoke-interface {v0, v1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v0

    goto :goto_24

    :cond_60
    const/16 v1, 0x8

    const/16 v2, 0xe

    const-string/jumbo v3, "no gps provider"

    const-wide/16 v4, 0x0

    move-object v0, p0

    invoke-direct/range {v0 .. v5}, Lcom/loc/cn;->a(IILjava/lang/String;J)V
    :try_end_6d
    .catch Ljava/lang/SecurityException; {:try_start_32 .. :try_end_6d} :catch_6e
    .catch Ljava/lang/Throwable; {:try_start_32 .. :try_end_6d} :catch_81

    goto :goto_57

    :catch_6e
    move-exception v0

    const/16 v1, 0x849

    invoke-static {v7, v1}, Lcom/loc/cg;->a(Ljava/lang/String;I)V

    const/4 v1, 0x2

    const/16 v2, 0xc

    invoke-virtual {v0}, Ljava/lang/SecurityException;->getMessage()Ljava/lang/String;

    move-result-object v3

    move-object v0, p0

    move-wide v4, v8

    invoke-direct/range {v0 .. v5}, Lcom/loc/cn;->a(IILjava/lang/String;J)V

    goto :goto_57

    :catch_81
    move-exception v0

    const-string/jumbo v1, "GPSLocation"

    const-string/jumbo v2, "requestLocationUpdates part2"

    invoke-static {v0, v1, v2}, Lcom/loc/ca;->a(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_57

    :catch_8c
    move-exception v0

    goto :goto_32
.end method

.method public final c()Z
    .registers 5

    invoke-static {}, Lcom/loc/cj;->b()J

    move-result-wide v0

    iget-wide v2, p0, Lcom/loc/cn;->d:J

    sub-long/2addr v0, v2

    const-wide/16 v2, 0x2710

    cmp-long v0, v0, v2

    if-lez v0, :cond_f

    const/4 v0, 0x0

    :goto_e
    return v0

    :cond_f
    const/4 v0, 0x1

    goto :goto_e
.end method