.class public Lcom/zk/drivermonitor/manager/LocationChangeManager; .super Ljava/lang/Object; .source "LocationChangeManager.java" # static fields .field private static d:Lcom/zk/drivermonitor/manager/LocationChangeManager; # instance fields .field a:Landroid/location/LocationListener; .field private b:Landroid/location/LocationManager; .field private c:Ljava/lang/String; .field private e:Landroid/location/Location; # direct methods .method static constructor ()V .locals 0 return-void .end method .method private constructor ()V .locals 1 .line 35 invoke-direct {p0}, Ljava/lang/Object;->()V .line 87 new-instance v0, Lcom/zk/drivermonitor/manager/LocationChangeManager$1; invoke-direct {v0, p0}, Lcom/zk/drivermonitor/manager/LocationChangeManager$1;->(Lcom/zk/drivermonitor/manager/LocationChangeManager;)V iput-object v0, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->a:Landroid/location/LocationListener; return-void .end method .method public static a()Lcom/zk/drivermonitor/manager/LocationChangeManager; .locals 1 .line 29 sget-object v0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->d:Lcom/zk/drivermonitor/manager/LocationChangeManager; if-nez v0, :cond_0 .line 30 new-instance v0, Lcom/zk/drivermonitor/manager/LocationChangeManager; invoke-direct {v0}, Lcom/zk/drivermonitor/manager/LocationChangeManager;->()V sput-object v0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->d:Lcom/zk/drivermonitor/manager/LocationChangeManager; .line 32 :cond_0 sget-object v0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->d:Lcom/zk/drivermonitor/manager/LocationChangeManager; return-object v0 .end method # virtual methods .method public a(Landroid/content/Context;)V .locals 6 .line 48 :try_start_0 invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v0 .line 49 invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object v1 const/16 v2, 0x80 .line 48 invoke-virtual {v0, v1, v2}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo; move-result-object v0 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception v0 .line 52 invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V const/4 v0, 0x0 .line 54 :goto_0 iget-object v0, v0, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; sget-object v1, Lcom/zk/drivermonitor/utils/Constants;->c:Ljava/lang/String; invoke-virtual {v0, v1}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_3 const-string v1, "Yes" .line 55 invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_3 const-string v0, "location" .line 58 invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroid/location/LocationManager; iput-object p1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->b:Landroid/location/LocationManager; .line 60 iget-object p1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->b:Landroid/location/LocationManager; const/4 v0, 0x1 invoke-virtual {p1, v0}, Landroid/location/LocationManager;->getProviders(Z)Ljava/util/List; move-result-object p1 if-eqz p1, :cond_0 const-string v0, "network" .line 61 invoke-interface {p1, v0}, Ljava/util/List;->contains(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 const-string p1, "network" .line 63 iput-object p1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->c:Ljava/lang/String; goto :goto_1 :cond_0 if-eqz p1, :cond_2 const-string v0, "gps" .line 64 invoke-interface {p1, v0}, Ljava/util/List;->contains(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_2 const-string p1, "gps" .line 66 iput-object p1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->c:Ljava/lang/String; .line 71 :goto_1 iget-object p1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->b:Landroid/location/LocationManager; iget-object v0, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->c:Ljava/lang/String; invoke-virtual {p1, v0}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location; move-result-object p1 if-eqz p1, :cond_1 .line 74 invoke-virtual {p0, p1}, Lcom/zk/drivermonitor/manager/LocationChangeManager;->a(Landroid/location/Location;)V .line 77 :cond_1 iget-object p1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->c:Ljava/lang/String; if-eqz p1, :cond_3 .line 78 iget-object v0, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->b:Landroid/location/LocationManager; iget-object v1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->c:Ljava/lang/String; const-wide/32 v2, 0x124f80 const/high16 v4, 0x447a0000 # 1000.0f iget-object v5, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->a:Landroid/location/LocationListener; invoke-virtual/range {v0 .. v5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V goto :goto_2 :cond_2 return-void :cond_3 :goto_2 return-void .end method .method public a(Landroid/location/Location;)V .locals 0 .line 122 iput-object p1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->e:Landroid/location/Location; return-void .end method .method public b()V .locals 2 .line 39 iget-object v0, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->b:Landroid/location/LocationManager; if-eqz v0, :cond_0 .line 40 iget-object v0, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->b:Landroid/location/LocationManager; iget-object v1, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->a:Landroid/location/LocationListener; invoke-virtual {v0, v1}, Landroid/location/LocationManager;->removeUpdates(Landroid/location/LocationListener;)V :cond_0 return-void .end method .method public c()Landroid/location/Location; .locals 1 .line 118 iget-object v0, p0, Lcom/zk/drivermonitor/manager/LocationChangeManager;->e:Landroid/location/Location; return-object v0 .end method