.class public abstract Lcom/singular/sdk/internal/Utils$Reflection; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/singular/sdk/internal/Utils; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "Reflection" .end annotation # direct methods .method public static forName(Ljava/lang/String;)Ljava/lang/Class; .locals 0 .line 483 :try_start_0 invoke-static {p0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 return-object p0 :catchall_0 const/4 p0, 0x0 return-object p0 .end method .method public static getCpuAbi()Ljava/lang/String; .locals 2 :try_start_0 const-string v0, "android.os.Build" const-string v1, "CPU_ABI" .line 411 invoke-static {v0, v1}, Lcom/singular/sdk/internal/Utils$Reflection;->readField(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/String; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 goto :goto_0 :catchall_0 const/4 v0, 0x0 :goto_0 return-object v0 .end method .method public static getLocaleFromField(Landroid/content/res/Configuration;)Ljava/util/Locale; .locals 2 :try_start_0 const-string v0, "android.content.res.Configuration" const-string v1, "locale" .line 434 invoke-static {v0, v1, p0}, Lcom/singular/sdk/internal/Utils$Reflection;->readField(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 check-cast p0, Ljava/util/Locale; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 goto :goto_0 :catchall_0 const/4 p0, 0x0 :goto_0 return-object p0 .end method .method public static getLocaleFromLocaleList(Landroid/content/res/Configuration;)Ljava/util/Locale; .locals 6 const/4 v0, 0x0 :try_start_0 const-string v1, "getLocales" const/4 v2, 0x0 new-array v3, v2, [Ljava/lang/Object; .line 420 invoke-static {p0, v1, v0, v3}, Lcom/singular/sdk/internal/Utils$Reflection;->invokeInstanceMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 if-nez p0, :cond_0 return-object v0 :cond_0 const-string v1, "get" const/4 v3, 0x1 new-array v4, v3, [Ljava/lang/Class; sget-object v5, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; aput-object v5, v4, v2 new-array v3, v3, [Ljava/lang/Object; .line 424 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v5 aput-object v5, v3, v2 invoke-static {p0, v1, v4, v3}, Lcom/singular/sdk/internal/Utils$Reflection;->invokeInstanceMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 check-cast p0, Ljava/util/Locale; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 move-object v0, p0 :catchall_0 return-object v0 .end method .method public static getSupportedAbis()[Ljava/lang/String; .locals 2 :try_start_0 const-string v0, "android.os.Build" const-string v1, "SUPPORTED_ABIS" .line 402 invoke-static {v0, v1}, Lcom/singular/sdk/internal/Utils$Reflection;->readField(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, [Ljava/lang/String; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 goto :goto_0 :catchall_0 const/4 v0, 0x0 :goto_0 return-object v0 .end method .method public static varargs invokeInstanceMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; .locals 1 .line 442 invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 .line 443 invoke-static {v0, p1, p0, p2, p3}, Lcom/singular/sdk/internal/Utils$Reflection;->invokeMethod(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 return-object p0 .end method .method public static varargs invokeMethod(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; .locals 0 .line 455 invoke-virtual {p0, p1, p3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object p0 if-nez p0, :cond_0 const/4 p0, 0x0 return-object p0 .line 459 :cond_0 invoke-virtual {p0, p2, p4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 return-object p0 .end method .method public static varargs invokeStaticMethod(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; .locals 1 .line 448 invoke-static {p0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object p0 const/4 v0, 0x0 .line 449 invoke-static {p0, p1, v0, p2, p3}, Lcom/singular/sdk/internal/Utils$Reflection;->invokeMethod(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 return-object p0 .end method .method public static readField(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; .locals 1 const/4 v0, 0x0 .line 465 invoke-static {p0, p1, v0}, Lcom/singular/sdk/internal/Utils$Reflection;->readField(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 return-object p0 .end method .method public static readField(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; .locals 1 .line 470 invoke-static {p0}, Lcom/singular/sdk/internal/Utils$Reflection;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object p0 const/4 v0, 0x0 if-nez p0, :cond_0 return-object v0 .line 474 :cond_0 invoke-virtual {p0, p1}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field; move-result-object p0 if-nez p0, :cond_1 return-object v0 .line 478 :cond_1 invoke-virtual {p0, p2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 return-object p0 .end method