.class Landroidx/core/location/LocationManagerCompat$Api30Impl; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation build Landroidx/annotation/RequiresApi; value = 0x1e .end annotation .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/core/location/LocationManagerCompat; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "Api30Impl" .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 sRequestLocationUpdatesExecutorMethod:Ljava/lang/reflect/Method; # direct methods .method private constructor ()V .locals 0 .line 1220 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static getCurrentLocation(Landroid/location/LocationManager;Ljava/lang/String;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroidx/core/util/Consumer;)V .locals 1 .param p1 # Ljava/lang/String; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p2 # Landroid/os/CancellationSignal; .annotation build Landroidx/annotation/Nullable; .end annotation .end param .param p3 # Ljava/util/concurrent/Executor; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p4 # Landroidx/core/util/Consumer; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/RequiresPermission; anyOf = { "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION" } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/location/LocationManager;", "Ljava/lang/String;", "Landroid/os/CancellationSignal;", "Ljava/util/concurrent/Executor;", "Landroidx/core/util/Consumer<", "Landroid/location/Location;", ">;)V" } .end annotation .line 1231 invoke-static {p4}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object; new-instance v0, Landroidx/core/location/LocationManagerCompat$Api30Impl$$ExternalSyntheticLambda0; invoke-direct {v0, p4}, Landroidx/core/location/LocationManagerCompat$Api30Impl$$ExternalSyntheticLambda0;->(Landroidx/core/util/Consumer;)V .line 1228 invoke-virtual {p0, p1, p2, p3, v0}, Landroid/location/LocationManager;->getCurrentLocation(Ljava/lang/String;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V return-void .end method .method public static registerGnssStatusCallback(Landroid/location/LocationManager;Landroid/os/Handler;Ljava/util/concurrent/Executor;Landroidx/core/location/GnssStatusCompat$Callback;)Z .locals 1 .annotation build Landroidx/annotation/RequiresPermission; anyOf = { "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION" } .end annotation .line 1273 sget-object p1, Landroidx/core/location/LocationManagerCompat$GnssListenersHolder;->sGnssStatusListeners:Landroidx/collection/SimpleArrayMap; monitor-enter p1 .line 1275 :try_start_0 invoke-virtual {p1, p3}, Landroidx/collection/SimpleArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/core/location/LocationManagerCompat$GnssStatusTransport; if-nez v0, :cond_0 .line 1278 new-instance v0, Landroidx/core/location/LocationManagerCompat$GnssStatusTransport; invoke-direct {v0, p3}, Landroidx/core/location/LocationManagerCompat$GnssStatusTransport;->(Landroidx/core/location/GnssStatusCompat$Callback;)V goto :goto_0 :catchall_0 move-exception p0 goto :goto_1 .line 1280 :cond_0 :goto_0 invoke-virtual {p0, p2, v0}, Landroid/location/LocationManager;->registerGnssStatusCallback(Ljava/util/concurrent/Executor;Landroid/location/GnssStatus$Callback;)Z move-result p0 if-eqz p0, :cond_1 .line 1281 invoke-virtual {p1, p3, v0}, Landroidx/collection/SimpleArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 1282 monitor-exit p1 const/4 p0, 0x1 return p0 .line 1284 :cond_1 monitor-exit p1 const/4 p0, 0x0 return p0 .line 1286 :goto_1 monitor-exit p1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p0 .end method .method public static tryRequestLocationUpdates(Landroid/location/LocationManager;Ljava/lang/String;Landroidx/core/location/LocationRequestCompat;Ljava/util/concurrent/Executor;Landroidx/core/location/LocationListenerCompat;)Z .locals 7 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x1e const/4 v2, 0x0 if-lt v0, v1, :cond_2 :try_start_0 sget-object v0, Landroidx/core/location/LocationManagerCompat$Api30Impl;->sLocationRequestClass:Ljava/lang/Class; if-nez v0, :cond_0 const-string v0, "android.location.LocationRequest" .line 1241 invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v0 sput-object v0, Landroidx/core/location/LocationManagerCompat$Api30Impl;->sLocationRequestClass:Ljava/lang/Class; :cond_0 sget-object v0, Landroidx/core/location/LocationManagerCompat$Api30Impl;->sRequestLocationUpdatesExecutorMethod:Ljava/lang/reflect/Method; const/4 v1, 0x1 if-nez v0, :cond_1 const-class v0, 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$Api30Impl;->sLocationRequestClass:Ljava/lang/Class; aput-object v5, v4, v2 const-class v5, Ljava/util/concurrent/Executor; aput-object v5, v4, v1 const-class v5, Landroid/location/LocationListener; const/4 v6, 0x2 aput-object v5, v4, v6 .line 1245 invoke-virtual {v0, v3, v4}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v0 sput-object v0, Landroidx/core/location/LocationManagerCompat$Api30Impl;->sRequestLocationUpdatesExecutorMethod:Ljava/lang/reflect/Method; .line 1249 invoke-virtual {v0, v1}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V .line 1252 :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$Api30Impl;->sRequestLocationUpdatesExecutorMethod:Ljava/lang/reflect/Method; filled-new-array {p1, p3, p4}, [Ljava/lang/Object; move-result-object p1 .line 1254 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 v1 :catch_0 :cond_2 return v2 .end method