ParcelUtils.smali
.class public Landroidx/versionedparcelable/ParcelUtils;
.super Ljava/lang/Object;
.source "ParcelUtils.java"
# static fields
.field private static final INNER_BUNDLE_KEY:Ljava/lang/String; = "a"
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method private constructor <init>()V
.registers 1
.line 40
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static fromInputStream(Ljava/io/InputStream;)Landroidx/versionedparcelable/VersionedParcelable;
.registers 3
.param p0, "input" # Ljava/io/InputStream;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Landroidx/versionedparcelable/VersionedParcelable;",
">(",
"Ljava/io/InputStream;",
")TT;"
}
.end annotation
.line 82
new-instance v0, Landroidx/versionedparcelable/VersionedParcelStream;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Landroidx/versionedparcelable/VersionedParcelStream;-><init>(Ljava/io/InputStream;Ljava/io/OutputStream;)V
.line 83
.local v0, "stream":Landroidx/versionedparcelable/VersionedParcelStream;
invoke-virtual {v0}, Landroidx/versionedparcelable/VersionedParcelStream;->readVersionedParcelable()Landroidx/versionedparcelable/VersionedParcelable;
move-result-object v1
return-object v1
.end method
.method public static fromParcelable(Landroid/os/Parcelable;)Landroidx/versionedparcelable/VersionedParcelable;
.registers 3
.param p0, "p" # Landroid/os/Parcelable;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Landroidx/versionedparcelable/VersionedParcelable;",
">(",
"Landroid/os/Parcelable;",
")TT;"
}
.end annotation
.line 58
instance-of v0, p0, Landroidx/versionedparcelable/ParcelImpl;
if-eqz v0, :cond_c
.line 61
move-object v0, p0
check-cast v0, Landroidx/versionedparcelable/ParcelImpl;
invoke-virtual {v0}, Landroidx/versionedparcelable/ParcelImpl;->getVersionedParcel()Landroidx/versionedparcelable/VersionedParcelable;
move-result-object v0
return-object v0
.line 59
:cond_c
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Invalid parcel"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static getVersionedParcelable(Landroid/os/Bundle;Ljava/lang/String;)Landroidx/versionedparcelable/VersionedParcelable;
.registers 5
.param p0, "bundle" # Landroid/os/Bundle;
.param p1, "key" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Landroidx/versionedparcelable/VersionedParcelable;",
">(",
"Landroid/os/Bundle;",
"Ljava/lang/String;",
")TT;"
}
.end annotation
.line 109
const/4 v0, 0x0
:try_start_1
invoke-virtual {p0, p1}, Landroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v1
check-cast v1, Landroid/os/Bundle;
.line 110
.local v1, "innerBundle":Landroid/os/Bundle;
if-nez v1, :cond_a
.line 111
return-object v0
.line 113
:cond_a
const-class v2, Landroidx/versionedparcelable/ParcelUtils;
invoke-virtual {v2}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v2
invoke-virtual {v1, v2}, Landroid/os/Bundle;->setClassLoader(Ljava/lang/ClassLoader;)V
.line 114
const-string v2, "a"
invoke-virtual {v1, v2}, Landroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v2
invoke-static {v2}, Landroidx/versionedparcelable/ParcelUtils;->fromParcelable(Landroid/os/Parcelable;)Landroidx/versionedparcelable/VersionedParcelable;
move-result-object v0
:try_end_1d
.catch Ljava/lang/RuntimeException; {:try_start_1 .. :try_end_1d} :catch_1e
return-object v0
.line 115
.end local v1 # "innerBundle":Landroid/os/Bundle;
:catch_1e
move-exception v1
.line 117
.local v1, "e":Ljava/lang/RuntimeException;
return-object v0
.end method
.method public static getVersionedParcelableList(Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/List;
.registers 8
.param p0, "bundle" # Landroid/os/Bundle;
.param p1, "key" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Landroidx/versionedparcelable/VersionedParcelable;",
">(",
"Landroid/os/Bundle;",
"Ljava/lang/String;",
")",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.line 144
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 146
.local v0, "resultList":Ljava/util/List;, "Ljava/util/List<TT;>;"
:try_start_5
invoke-virtual {p0, p1}, Landroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v1
check-cast v1, Landroid/os/Bundle;
.line 147
.local v1, "innerBundle":Landroid/os/Bundle;
const-class v2, Landroidx/versionedparcelable/ParcelUtils;
invoke-virtual {v2}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v2
invoke-virtual {v1, v2}, Landroid/os/Bundle;->setClassLoader(Ljava/lang/ClassLoader;)V
.line 148
const-string v2, "a"
.line 149
invoke-virtual {v1, v2}, Landroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object v2
.line 150
.local v2, "parcelableArrayList":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/os/Parcelable;>;"
invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_1e
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_33
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/os/Parcelable;
.line 151
.local v4, "parcelable":Landroid/os/Parcelable;
invoke-static {v4}, Landroidx/versionedparcelable/ParcelUtils;->fromParcelable(Landroid/os/Parcelable;)Landroidx/versionedparcelable/VersionedParcelable;
move-result-object v5
invoke-interface {v0, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_31
.catch Ljava/lang/RuntimeException; {:try_start_5 .. :try_end_31} :catch_34
.line 152
nop
.end local v4 # "parcelable":Landroid/os/Parcelable;
goto :goto_1e
.line 153
:cond_33
return-object v0
.line 154
.end local v1 # "innerBundle":Landroid/os/Bundle;
.end local v2 # "parcelableArrayList":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/os/Parcelable;>;"
:catch_34
move-exception v1
.line 157
const/4 v1, 0x0
return-object v1
.end method
.method public static putVersionedParcelable(Landroid/os/Bundle;Ljava/lang/String;Landroidx/versionedparcelable/VersionedParcelable;)V
.registers 6
.param p0, "b" # Landroid/os/Bundle;
.param p1, "key" # Ljava/lang/String;
.param p2, "obj" # Landroidx/versionedparcelable/VersionedParcelable;
.line 91
if-nez p2, :cond_3
.line 92
return-void
.line 94
:cond_3
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
.line 95
.local v0, "innerBundle":Landroid/os/Bundle;
invoke-static {p2}, Landroidx/versionedparcelable/ParcelUtils;->toParcelable(Landroidx/versionedparcelable/VersionedParcelable;)Landroid/os/Parcelable;
move-result-object v1
const-string v2, "a"
invoke-virtual {v0, v2, v1}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V
.line 96
invoke-virtual {p0, p1, v0}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V
.line 97
return-void
.end method
.method public static putVersionedParcelableList(Landroid/os/Bundle;Ljava/lang/String;Ljava/util/List;)V
.registers 8
.param p0, "b" # Landroid/os/Bundle;
.param p1, "key" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/os/Bundle;",
"Ljava/lang/String;",
"Ljava/util/List<",
"+",
"Landroidx/versionedparcelable/VersionedParcelable;",
">;)V"
}
.end annotation
.line 126
.local p2, "list":Ljava/util/List;, "Ljava/util/List<+Landroidx/versionedparcelable/VersionedParcelable;>;"
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
.line 127
.local v0, "innerBundle":Landroid/os/Bundle;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 128
.local v1, "toWrite":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/os/Parcelable;>;"
invoke-interface {p2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_e
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_22
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroidx/versionedparcelable/VersionedParcelable;
.line 129
.local v3, "obj":Landroidx/versionedparcelable/VersionedParcelable;
invoke-static {v3}, Landroidx/versionedparcelable/ParcelUtils;->toParcelable(Landroidx/versionedparcelable/VersionedParcelable;)Landroid/os/Parcelable;
move-result-object v4
invoke-virtual {v1, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 130
.end local v3 # "obj":Landroidx/versionedparcelable/VersionedParcelable;
goto :goto_e
.line 131
:cond_22
const-string v2, "a"
invoke-virtual {v0, v2, v1}, Landroid/os/Bundle;->putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
.line 132
invoke-virtual {p0, p1, v0}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V
.line 133
return-void
.end method
.method public static toOutputStream(Landroidx/versionedparcelable/VersionedParcelable;Ljava/io/OutputStream;)V
.registers 4
.param p0, "obj" # Landroidx/versionedparcelable/VersionedParcelable;
.param p1, "output" # Ljava/io/OutputStream;
.line 70
new-instance v0, Landroidx/versionedparcelable/VersionedParcelStream;
const/4 v1, 0x0
invoke-direct {v0, v1, p1}, Landroidx/versionedparcelable/VersionedParcelStream;-><init>(Ljava/io/InputStream;Ljava/io/OutputStream;)V
.line 71
.local v0, "stream":Landroidx/versionedparcelable/VersionedParcelStream;
invoke-virtual {v0, p0}, Landroidx/versionedparcelable/VersionedParcelStream;->writeVersionedParcelable(Landroidx/versionedparcelable/VersionedParcelable;)V
.line 72
invoke-virtual {v0}, Landroidx/versionedparcelable/VersionedParcelStream;->closeField()V
.line 73
return-void
.end method
.method public static toParcelable(Landroidx/versionedparcelable/VersionedParcelable;)Landroid/os/Parcelable;
.registers 2
.param p0, "obj" # Landroidx/versionedparcelable/VersionedParcelable;
.line 48
new-instance v0, Landroidx/versionedparcelable/ParcelImpl;
invoke-direct {v0, p0}, Landroidx/versionedparcelable/ParcelImpl;-><init>(Landroidx/versionedparcelable/VersionedParcelable;)V
return-object v0
.end method