.class Landroidx/core/app/BundleCompat$BundleCompatBaseImpl; .super Ljava/lang/Object; .source "BundleCompat.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/core/app/BundleCompat; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x8 name = "BundleCompatBaseImpl" .end annotation # static fields .field private static final TAG:Ljava/lang/String; = "BundleCompatBaseImpl" .field private static sGetIBinderMethod:Ljava/lang/reflect/Method; .field private static sGetIBinderMethodFetched:Z .field private static sPutIBinderMethod:Ljava/lang/reflect/Method; .field private static sPutIBinderMethodFetched:Z # direct methods .method private constructor ()V .registers 1 .line 44 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static getBinder(Landroid/os/Bundle;Ljava/lang/String;)Landroid/os/IBinder; .registers 9 .line 48 sget-boolean v0, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sGetIBinderMethodFetched:Z const-string v1, "BundleCompatBaseImpl" if-nez v0, :cond_24 const/4 v0, 0x1 .line 50 :try_start_7 const-class v2, Landroid/os/Bundle; const-string v3, "getIBinder" new-array v4, v0, [Ljava/lang/Class; const-class v5, Ljava/lang/String; const/4 v6, 0x0 aput-object v5, v4, v6 invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v2 sput-object v2, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sGetIBinderMethod:Ljava/lang/reflect/Method; .line 51 invoke-virtual {v2, v0}, Ljava/lang/reflect/Method;->setAccessible(Z)V :try_end_1b .catch Ljava/lang/NoSuchMethodException; {:try_start_7 .. :try_end_1b} :catch_1c goto :goto_22 :catch_1c move-exception v2 .line 53 const-string v3, "Failed to retrieve getIBinder method" invoke-static {v1, v3, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I .line 55 :goto_22 sput-boolean v0, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sGetIBinderMethodFetched:Z .line 58 :cond_24 sget-object v0, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sGetIBinderMethod:Ljava/lang/reflect/Method; const/4 v2, 0x0 if-eqz v0, :cond_40 .line 60 :try_start_29 filled-new-array {p1}, [Ljava/lang/Object; move-result-object p1 invoke-virtual {v0, p0, p1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 check-cast p0, Landroid/os/IBinder; :try_end_33 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_29 .. :try_end_33} :catch_38 .catch Ljava/lang/IllegalAccessException; {:try_start_29 .. :try_end_33} :catch_36 .catch Ljava/lang/IllegalArgumentException; {:try_start_29 .. :try_end_33} :catch_34 return-object p0 :catch_34 move-exception p0 goto :goto_39 :catch_36 move-exception p0 goto :goto_39 :catch_38 move-exception p0 .line 63 :goto_39 const-string p1, "Failed to invoke getIBinder via reflection" invoke-static {v1, p1, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I .line 64 sput-object v2, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sGetIBinderMethod:Ljava/lang/reflect/Method; :cond_40 return-object v2 .end method .method public static putBinder(Landroid/os/Bundle;Ljava/lang/String;Landroid/os/IBinder;)V .registers 10 .line 71 sget-boolean v0, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sPutIBinderMethodFetched:Z const-string v1, "BundleCompatBaseImpl" if-nez v0, :cond_29 const/4 v0, 0x1 .line 73 :try_start_7 const-class v2, Landroid/os/Bundle; const-string v3, "putIBinder" const/4 v4, 0x2 new-array v4, v4, [Ljava/lang/Class; const-class v5, Ljava/lang/String; const/4 v6, 0x0 aput-object v5, v4, v6 const-class v5, Landroid/os/IBinder; aput-object v5, v4, v0 .line 74 invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v2 sput-object v2, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sPutIBinderMethod:Ljava/lang/reflect/Method; .line 75 invoke-virtual {v2, v0}, Ljava/lang/reflect/Method;->setAccessible(Z)V :try_end_20 .catch Ljava/lang/NoSuchMethodException; {:try_start_7 .. :try_end_20} :catch_21 goto :goto_27 :catch_21 move-exception v2 .line 77 const-string v3, "Failed to retrieve putIBinder method" invoke-static {v1, v3, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I .line 79 :goto_27 sput-boolean v0, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sPutIBinderMethodFetched:Z .line 82 :cond_29 sget-object v0, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sPutIBinderMethod:Ljava/lang/reflect/Method; if-eqz v0, :cond_42 .line 84 :try_start_2d filled-new-array {p1, p2}, [Ljava/lang/Object; move-result-object p1 invoke-virtual {v0, p0, p1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; :try_end_34 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_2d .. :try_end_34} :catch_39 .catch Ljava/lang/IllegalAccessException; {:try_start_2d .. :try_end_34} :catch_37 .catch Ljava/lang/IllegalArgumentException; {:try_start_2d .. :try_end_34} :catch_35 goto :goto_42 :catch_35 move-exception p0 goto :goto_3a :catch_37 move-exception p0 goto :goto_3a :catch_39 move-exception p0 .line 87 :goto_3a const-string p1, "Failed to invoke putIBinder via reflection" invoke-static {v1, p1, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I const/4 p0, 0x0 .line 88 sput-object p0, Landroidx/core/app/BundleCompat$BundleCompatBaseImpl;->sPutIBinderMethod:Ljava/lang/reflect/Method; :cond_42 :goto_42 return-void .end method