.class Landroidx/core/location/LocationManagerCompat$Api19Impl; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/core/location/LocationManagerCompat; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "Api19Impl" .end annotation # static fields .field private static sLocationRequestClass:Ljava/lang/Class; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Class<", "*>;" } .end annotation .end field .field private static sRequestLocationUpdatesLooperMethod:Ljava/lang/reflect/Method; # direct methods .method private constructor ()V .locals 0 .line 1313 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static tryRequestLocationUpdates(Landroid/location/LocationManager;Ljava/lang/String;Landroidx/core/location/LocationRequestCompat;Landroidx/core/location/LocationListenerCompat;Landroid/os/Looper;)Z .locals 7 .annotation build Landroid/annotation/SuppressLint; value = { "BanUncheckedReflection" } .end annotation const/4 v0, 0x0 :try_start_0 sget-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sLocationRequestClass:Ljava/lang/Class; if-nez v1, :cond_0 const-string v1, "android.location.LocationRequest" .line 1364 invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v1 sput-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sLocationRequestClass:Ljava/lang/Class; :cond_0 sget-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sRequestLocationUpdatesLooperMethod:Ljava/lang/reflect/Method; const/4 v2, 0x1 if-nez v1, :cond_1 const-class v1, Landroid/location/LocationManager; const-string v3, "requestLocationUpdates" const/4 v4, 0x3 new-array v4, v4, [Ljava/lang/Class; sget-object v5, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sLocationRequestClass:Ljava/lang/Class; aput-object v5, v4, v0 const-class v5, Landroid/location/LocationListener; aput-object v5, v4, v2 const-class v5, Landroid/os/Looper; const/4 v6, 0x2 aput-object v5, v4, v6 .line 1369 invoke-virtual {v1, v3, v4}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v1 sput-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sRequestLocationUpdatesLooperMethod:Ljava/lang/reflect/Method; .line 1373 invoke-virtual {v1, v2}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V .line 1376 :cond_1 invoke-virtual {p2, p1}, Landroidx/core/location/LocationRequestCompat;->toLocationRequest(Ljava/lang/String;)Landroid/location/LocationRequest; move-result-object p1 if-eqz p1, :cond_2 sget-object p2, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sRequestLocationUpdatesLooperMethod:Ljava/lang/reflect/Method; filled-new-array {p1, p3, p4}, [Ljava/lang/Object; move-result-object p1 .line 1378 invoke-virtual {p2, p0, p1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; :try_end_0 .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/UnsupportedOperationException; {:try_start_0 .. :try_end_0} :catch_0 return v2 :catch_0 :cond_2 return v0 .end method .method public static tryRequestLocationUpdates(Landroid/location/LocationManager;Ljava/lang/String;Landroidx/core/location/LocationRequestCompat;Landroidx/core/location/LocationManagerCompat$LocationListenerTransport;)Z .locals 8 .annotation build Landroid/annotation/SuppressLint; value = { "BanUncheckedReflection" } .end annotation .annotation build Landroidx/annotation/RequiresPermission; anyOf = { "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION" } .end annotation const/4 v0, 0x0 :try_start_0 sget-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sLocationRequestClass:Ljava/lang/Class; if-nez v1, :cond_0 const-string v1, "android.location.LocationRequest" .line 1326 invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v1 sput-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sLocationRequestClass:Ljava/lang/Class; :cond_0 sget-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sRequestLocationUpdatesLooperMethod:Ljava/lang/reflect/Method; const/4 v2, 0x2 const/4 v3, 0x3 const/4 v4, 0x1 if-nez v1, :cond_1 const-class v1, Landroid/location/LocationManager; const-string v5, "requestLocationUpdates" new-array v6, v3, [Ljava/lang/Class; sget-object v7, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sLocationRequestClass:Ljava/lang/Class; aput-object v7, v6, v0 const-class v7, Landroid/location/LocationListener; aput-object v7, v6, v4 const-class v7, Landroid/os/Looper; aput-object v7, v6, v2 .line 1330 invoke-virtual {v1, v5, v6}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v1 sput-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sRequestLocationUpdatesLooperMethod:Ljava/lang/reflect/Method; .line 1334 invoke-virtual {v1, v4}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V .line 1337 :cond_1 invoke-virtual {p2, p1}, Landroidx/core/location/LocationRequestCompat;->toLocationRequest(Ljava/lang/String;)Landroid/location/LocationRequest; move-result-object p1 if-eqz p1, :cond_2 .line 1339 sget-object p2, Landroidx/core/location/LocationManagerCompat;->sLocationListeners:Ljava/util/WeakHashMap; monitor-enter p2 :try_end_0 .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/UnsupportedOperationException; {:try_start_0 .. :try_end_0} :catch_0 :try_start_1 sget-object v1, Landroidx/core/location/LocationManagerCompat$Api19Impl;->sRequestLocationUpdatesLooperMethod:Ljava/lang/reflect/Method; new-array v3, v3, [Ljava/lang/Object; aput-object p1, v3, v0 aput-object p3, v3, v4 .line 1341 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; move-result-object p1 aput-object p1, v3, v2 .line 1340 invoke-virtual {v1, p0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; .line 1342 invoke-static {p0, p3}, Landroidx/core/location/LocationManagerCompat;->registerLocationListenerTransport(Landroid/location/LocationManager;Landroidx/core/location/LocationManagerCompat$LocationListenerTransport;)V .line 1343 monitor-exit p2 return v4 :catchall_0 move-exception p0 .line 1344 monitor-exit p2 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 :try_start_2 throw p0 :try_end_2 .catch Ljava/lang/NoSuchMethodException; {:try_start_2 .. :try_end_2} :catch_0 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_2 .. :try_end_2} :catch_0 .catch Ljava/lang/IllegalAccessException; {:try_start_2 .. :try_end_2} :catch_0 .catch Ljava/lang/ClassNotFoundException; {:try_start_2 .. :try_end_2} :catch_0 .catch Ljava/lang/UnsupportedOperationException; {:try_start_2 .. :try_end_2} :catch_0 :catch_0 :cond_2 return v0 .end method