GooglePlayCallbackExtractor.smali
.class public final Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;
.super Ljava/lang/Object;
.source "GooglePlayCallbackExtractor.java"
# static fields
.field public static final BUNDLE_KEY_CALLBACK:Ljava/lang/String; = "callback"
.field public static final BUNDLE_MAGIC:I = 0x4c444e42
.field public static final ERROR_INVALID_CALLBACK:Ljava/lang/String; = "Bad callback received, terminating"
.field public static final ERROR_NULL_CALLBACK:Ljava/lang/String; = "No callback received, terminating"
.field public static final PENDING_CALLBACK_CLASS:Ljava/lang/String; = "com.google.android.gms.gcm.PendingCallback"
.field public static final TAG:Ljava/lang/String; = "FJD.GooglePlayReceiver"
.field public static final VAL_PARCELABLE:I = 0x4
.field public static shouldReadKeysAsStringsCached:Ljava/lang/Boolean;
# direct methods
.method public static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static checkCondition(Z)V
.registers 1
if-eqz p0, :cond_3
return-void
:cond_3
new-instance p0, Ljava/lang/IllegalStateException;
invoke-direct {p0}, Ljava/lang/IllegalStateException;-><init>()V
throw p0
.end method
.method public static extractWrappedBinderFromParcel(Landroid/os/Bundle;)Landroid/util/Pair;
.registers 11
.annotation build Landroid/annotation/SuppressLint;
value = {
"ParcelClassLoader"
}
.end annotation
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/os/Bundle;",
")",
"Landroid/util/Pair<",
"Lcom/firebase/jobdispatcher/JobCallback;",
"Landroid/os/Bundle;",
">;"
}
.end annotation
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
invoke-static {p0}, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->toParcel(Landroid/os/Bundle;)Landroid/os/Parcel;
move-result-object p0
:try_start_9
invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
move-result v1
:try_end_d
.catchall {:try_start_9 .. :try_end_d} :catchall_d0
const-string v2, "No callback received, terminating"
const-string v3, "FJD.GooglePlayReceiver"
const/4 v4, 0x0
if-gtz v1, :cond_1b
:try_start_14
invoke-static {v3, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_17
.catchall {:try_start_14 .. :try_end_17} :catchall_d0
invoke-virtual {p0}, Landroid/os/Parcel;->recycle()V
return-object v4
:cond_1b
:try_start_1b
invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
move-result v1
const v5, 0x4c444e42 # 5.146036E7f
if-eq v1, v5, :cond_2b
invoke-static {v3, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_27
.catchall {:try_start_1b .. :try_end_27} :catchall_d0
invoke-virtual {p0}, Landroid/os/Parcel;->recycle()V
return-object v4
:cond_2b
:try_start_2b
invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
move-result v1
const/4 v5, 0x0
move-object v6, v4
:goto_31
if-ge v5, v1, :cond_bf
invoke-static {p0}, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->readKey(Landroid/os/Parcel;)Ljava/lang/String;
move-result-object v7
if-nez v7, :cond_3b
goto/16 :goto_bb
:cond_3b
if-nez v6, :cond_74
const-string v8, "callback"
invoke-virtual {v8, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-nez v8, :cond_46
goto :goto_74
:cond_46
invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
move-result v6
:try_end_4a
.catchall {:try_start_2b .. :try_end_4a} :catchall_d0
const/4 v7, 0x4
const-string v8, "Bad callback received, terminating"
if-eq v6, v7, :cond_56
:try_start_4f
invoke-static {v3, v8}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_52
.catchall {:try_start_4f .. :try_end_52} :catchall_d0
invoke-virtual {p0}, Landroid/os/Parcel;->recycle()V
return-object v4
:cond_56
:try_start_56
invoke-virtual {p0}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v6
const-string v7, "com.google.android.gms.gcm.PendingCallback"
invoke-virtual {v7, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-nez v6, :cond_69
invoke-static {v3, v8}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_65
.catchall {:try_start_56 .. :try_end_65} :catchall_d0
invoke-virtual {p0}, Landroid/os/Parcel;->recycle()V
return-object v4
:cond_69
:try_start_69
invoke-virtual {p0}, Landroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;
move-result-object v6
new-instance v7, Lcom/firebase/jobdispatcher/GooglePlayJobCallback;
invoke-direct {v7, v6}, Lcom/firebase/jobdispatcher/GooglePlayJobCallback;-><init>(Landroid/os/IBinder;)V
move-object v6, v7
goto :goto_bb
:cond_74
:goto_74
invoke-virtual {p0, v4}, Landroid/os/Parcel;->readValue(Ljava/lang/ClassLoader;)Ljava/lang/Object;
move-result-object v8
instance-of v9, v8, Ljava/lang/String;
if-eqz v9, :cond_82
check-cast v8, Ljava/lang/String;
invoke-virtual {v0, v7, v8}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_bb
:cond_82
instance-of v9, v8, Ljava/lang/Boolean;
if-eqz v9, :cond_90
check-cast v8, Ljava/lang/Boolean;
invoke-virtual {v8}, Ljava/lang/Boolean;->booleanValue()Z
move-result v8
invoke-virtual {v0, v7, v8}, Landroid/os/Bundle;->putBoolean(Ljava/lang/String;Z)V
goto :goto_bb
:cond_90
instance-of v9, v8, Ljava/lang/Integer;
if-eqz v9, :cond_9e
check-cast v8, Ljava/lang/Integer;
invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I
move-result v8
invoke-virtual {v0, v7, v8}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
goto :goto_bb
:cond_9e
instance-of v9, v8, Ljava/util/ArrayList;
if-eqz v9, :cond_a8
check-cast v8, Ljava/util/ArrayList;
invoke-virtual {v0, v7, v8}, Landroid/os/Bundle;->putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
goto :goto_bb
:cond_a8
instance-of v9, v8, Landroid/os/Bundle;
if-eqz v9, :cond_b2
check-cast v8, Landroid/os/Bundle;
invoke-virtual {v0, v7, v8}, Landroid/os/Bundle;->putBundle(Ljava/lang/String;Landroid/os/Bundle;)V
goto :goto_bb
:cond_b2
instance-of v9, v8, Landroid/os/Parcelable;
if-eqz v9, :cond_bb
check-cast v8, Landroid/os/Parcelable;
invoke-virtual {v0, v7, v8}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V
:cond_bb
:goto_bb
add-int/lit8 v5, v5, 0x1
goto/16 :goto_31
:cond_bf
if-nez v6, :cond_c8
invoke-static {v3, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_c4
.catchall {:try_start_69 .. :try_end_c4} :catchall_d0
invoke-virtual {p0}, Landroid/os/Parcel;->recycle()V
return-object v4
:cond_c8
:try_start_c8
invoke-static {v6, v0}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
:try_end_cc
.catchall {:try_start_c8 .. :try_end_cc} :catchall_d0
invoke-virtual {p0}, Landroid/os/Parcel;->recycle()V
return-object v0
:catchall_d0
move-exception v0
invoke-virtual {p0}, Landroid/os/Parcel;->recycle()V
goto :goto_d6
:goto_d5
throw v0
:goto_d6
goto :goto_d5
.end method
.method public static readKey(Landroid/os/Parcel;)Ljava/lang/String;
.registers 3
invoke-static {}, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->shouldReadKeysAsStrings()Z
move-result v0
if-eqz v0, :cond_b
invoke-virtual {p0}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object p0
return-object p0
:cond_b
const/4 v0, 0x0
invoke-virtual {p0, v0}, Landroid/os/Parcel;->readValue(Ljava/lang/ClassLoader;)Ljava/lang/Object;
move-result-object p0
instance-of v1, p0, Ljava/lang/String;
if-nez v1, :cond_1c
const-string p0, "FJD.GooglePlayReceiver"
const-string v1, "Bad callback received, terminating"
invoke-static {p0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-object v0
:cond_1c
check-cast p0, Ljava/lang/String;
return-object p0
.end method
.method public static declared-synchronized shouldReadKeysAsStrings()Z
.registers 6
const-class v0, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;
monitor-enter v0
:try_start_3
sget-object v1, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->shouldReadKeysAsStringsCached:Ljava/lang/Boolean;
if-nez v1, :cond_5d
new-instance v1, Landroid/os/Bundle;
invoke-direct {v1}, Landroid/os/Bundle;-><init>()V
const-string v2, "key"
const-string v3, "value"
invoke-virtual {v1, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {v1}, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->toParcel(Landroid/os/Bundle;)Landroid/os/Parcel;
move-result-object v1
:try_end_17
.catchall {:try_start_3 .. :try_end_17} :catchall_65
:try_start_17
invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
move-result v2
const/4 v3, 0x0
const/4 v4, 0x1
if-lez v2, :cond_21
const/4 v2, 0x1
goto :goto_22
:cond_21
const/4 v2, 0x0
:goto_22
invoke-static {v2}, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->checkCondition(Z)V
invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
move-result v2
const v5, 0x4c444e42 # 5.146036E7f
if-ne v2, v5, :cond_30
const/4 v2, 0x1
goto :goto_31
:cond_30
const/4 v2, 0x0
:goto_31
invoke-static {v2}, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->checkCondition(Z)V
invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
move-result v2
if-ne v2, v4, :cond_3b
const/4 v3, 0x1
:cond_3b
invoke-static {v3}, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->checkCondition(Z)V
const-string v2, "key"
invoke-virtual {v1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v2
sput-object v2, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->shouldReadKeysAsStringsCached:Ljava/lang/Boolean;
:try_end_4e
.catch Ljava/lang/RuntimeException; {:try_start_17 .. :try_end_4e} :catch_54
.catchall {:try_start_17 .. :try_end_4e} :catchall_52
:goto_4e
:try_start_4e
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
:try_end_51
.catchall {:try_start_4e .. :try_end_51} :catchall_65
goto :goto_5d
:catchall_52
move-exception v2
goto :goto_59
:catch_54
:try_start_54
sget-object v2, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
sput-object v2, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->shouldReadKeysAsStringsCached:Ljava/lang/Boolean;
:try_end_58
.catchall {:try_start_54 .. :try_end_58} :catchall_52
goto :goto_4e
:goto_59
:try_start_59
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
throw v2
:cond_5d
:goto_5d
sget-object v1, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->shouldReadKeysAsStringsCached:Ljava/lang/Boolean;
invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z
move-result v1
:try_end_63
.catchall {:try_start_59 .. :try_end_63} :catchall_65
monitor-exit v0
return v1
:catchall_65
move-exception v1
monitor-exit v0
goto :goto_69
:goto_68
throw v1
:goto_69
goto :goto_68
.end method
.method public static toParcel(Landroid/os/Bundle;)Landroid/os/Parcel;
.registers 3
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v0
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/os/Bundle;->writeToParcel(Landroid/os/Parcel;I)V
invoke-virtual {v0, v1}, Landroid/os/Parcel;->setDataPosition(I)V
return-object v0
.end method
# virtual methods
.method public extractCallback(Landroid/os/Bundle;)Landroid/util/Pair;
.registers 3
.param p1 # Landroid/os/Bundle;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/os/Bundle;",
")",
"Landroid/util/Pair<",
"Lcom/firebase/jobdispatcher/JobCallback;",
"Landroid/os/Bundle;",
">;"
}
.end annotation
if-nez p1, :cond_b
const-string p1, "FJD.GooglePlayReceiver"
const-string v0, "No callback received, terminating"
invoke-static {p1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 p1, 0x0
return-object p1
:cond_b
invoke-static {p1}, Lcom/firebase/jobdispatcher/GooglePlayCallbackExtractor;->extractWrappedBinderFromParcel(Landroid/os/Bundle;)Landroid/util/Pair;
move-result-object p1
return-object p1
.end method