TypefaceCompatApi21Impl.smali
.class Landroid/support/v4/graphics/TypefaceCompatApi21Impl;
.super Landroid/support/v4/graphics/TypefaceCompatBaseImpl;
# annotations
.annotation build Landroid/support/annotation/RequiresApi;
value = 0x15
.end annotation
.annotation build Landroid/support/annotation/RestrictTo;
value = {
.enum Landroid/support/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroid/support/annotation/RestrictTo$Scope;
}
.end annotation
# static fields
.field private static final TAG:Ljava/lang/String; = "TypefaceCompatApi21Impl"
# direct methods
.method constructor <init>()V
.registers 1
invoke-direct {p0}, Landroid/support/v4/graphics/TypefaceCompatBaseImpl;-><init>()V
return-void
.end method
.method private getFile(Landroid/os/ParcelFileDescriptor;)Ljava/io/File;
.registers 5
const/4 v1, 0x0
:try_start_1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "/proc/self/fd/"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {p1}, Landroid/os/ParcelFileDescriptor;->getFd()I
move-result v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Landroid/system/Os;->readlink(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Landroid/system/Os;->stat(Ljava/lang/String;)Landroid/system/StructStat;
move-result-object v0
iget v0, v0, Landroid/system/StructStat;->st_mode:I
invoke-static {v0}, Landroid/system/OsConstants;->S_ISREG(I)Z
move-result v0
if-eqz v0, :cond_2f
new-instance v0, Ljava/io/File;
invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
:try_end_2e
.catch Landroid/system/ErrnoException; {:try_start_1 .. :try_end_2e} :catch_31
:goto_2e
return-object v0
:cond_2f
move-object v0, v1
goto :goto_2e
:catch_31
move-exception v0
move-object v0, v1
goto :goto_2e
.end method
# virtual methods
.method public createFromFontInfo(Landroid/content/Context;Landroid/os/CancellationSignal;[Landroid/support/v4/provider/FontsContractCompat$FontInfo;I)Landroid/graphics/Typeface;
.registers 12
.param p3 # [Landroid/support/v4/provider/FontsContractCompat$FontInfo;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
const/4 v0, 0x0
array-length v1, p3
const/4 v2, 0x1
if-ge v1, v2, :cond_6
:goto_5
return-object v0
:cond_6
invoke-virtual {p0, p3, p4}, Landroid/support/v4/graphics/TypefaceCompatApi21Impl;->findBestInfo([Landroid/support/v4/provider/FontsContractCompat$FontInfo;I)Landroid/support/v4/provider/FontsContractCompat$FontInfo;
move-result-object v1
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
:try_start_e
invoke-virtual {v1}, Landroid/support/v4/provider/FontsContractCompat$FontInfo;->getUri()Landroid/net/Uri;
move-result-object v1
const-string/jumbo v3, "r"
invoke-virtual {v2, v1, v3, p2}, Landroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;
:try_end_18
.catch Ljava/io/IOException; {:try_start_e .. :try_end_18} :catch_57
move-result-object v3
const/4 v2, 0x0
:try_start_1a
invoke-direct {p0, v3}, Landroid/support/v4/graphics/TypefaceCompatApi21Impl;->getFile(Landroid/os/ParcelFileDescriptor;)Ljava/io/File;
move-result-object v1
if-eqz v1, :cond_26
invoke-virtual {v1}, Ljava/io/File;->canRead()Z
move-result v4
if-nez v4, :cond_7d
:cond_26
new-instance v4, Ljava/io/FileInputStream;
invoke-virtual {v3}, Landroid/os/ParcelFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;
move-result-object v1
invoke-direct {v4, v1}, Ljava/io/FileInputStream;-><init>(Ljava/io/FileDescriptor;)V
:try_end_2f
.catch Ljava/lang/Throwable; {:try_start_1a .. :try_end_2f} :catch_49
.catchall {:try_start_1a .. :try_end_2f} :catchall_5d
const/4 v5, 0x0
:try_start_30
invoke-super {p0, p1, v4}, Landroid/support/v4/graphics/TypefaceCompatBaseImpl;->createFromInputStream(Landroid/content/Context;Ljava/io/InputStream;)Landroid/graphics/Typeface;
:try_end_33
.catch Ljava/lang/Throwable; {:try_start_30 .. :try_end_33} :catch_69
.catchall {:try_start_30 .. :try_end_33} :catchall_9d
move-result-object v1
if-eqz v4, :cond_3b
if-eqz v0, :cond_59
:try_start_38
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_3b
.catch Ljava/lang/Throwable; {:try_start_38 .. :try_end_3b} :catch_44
.catchall {:try_start_38 .. :try_end_3b} :catchall_5d
:cond_3b
:goto_3b
if-eqz v3, :cond_42
if-eqz v0, :cond_65
:try_start_3f
invoke-virtual {v3}, Landroid/os/ParcelFileDescriptor;->close()V
:try_end_42
.catch Ljava/lang/Throwable; {:try_start_3f .. :try_end_42} :catch_60
.catch Ljava/io/IOException; {:try_start_3f .. :try_end_42} :catch_57
:cond_42
:goto_42
move-object v0, v1
goto :goto_5
:catch_44
move-exception v4
:try_start_45
invoke-virtual {v5, v4}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
:try_end_48
.catch Ljava/lang/Throwable; {:try_start_45 .. :try_end_48} :catch_49
.catchall {:try_start_45 .. :try_end_48} :catchall_5d
goto :goto_3b
:catch_49
move-exception v1
:try_start_4a
throw v1
:try_end_4b
.catchall {:try_start_4a .. :try_end_4b} :catchall_4b
:catchall_4b
move-exception v2
move-object v6, v2
move-object v2, v1
move-object v1, v6
:goto_4f
if-eqz v3, :cond_56
if-eqz v2, :cond_99
:try_start_53
invoke-virtual {v3}, Landroid/os/ParcelFileDescriptor;->close()V
:try_end_56
.catch Ljava/lang/Throwable; {:try_start_53 .. :try_end_56} :catch_94
.catch Ljava/io/IOException; {:try_start_53 .. :try_end_56} :catch_57
:cond_56
:goto_56
:try_start_56
throw v1
:try_end_57
.catch Ljava/io/IOException; {:try_start_56 .. :try_end_57} :catch_57
:catch_57
move-exception v1
goto :goto_5
:cond_59
:try_start_59
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_5c
.catch Ljava/lang/Throwable; {:try_start_59 .. :try_end_5c} :catch_49
.catchall {:try_start_59 .. :try_end_5c} :catchall_5d
goto :goto_3b
:catchall_5d
move-exception v1
move-object v2, v0
goto :goto_4f
:catch_60
move-exception v3
:try_start_61
invoke-virtual {v2, v3}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
goto :goto_42
:cond_65
invoke-virtual {v3}, Landroid/os/ParcelFileDescriptor;->close()V
:try_end_68
.catch Ljava/io/IOException; {:try_start_61 .. :try_end_68} :catch_57
goto :goto_42
:catch_69
move-exception v2
:try_start_6a
throw v2
:try_end_6b
.catchall {:try_start_6a .. :try_end_6b} :catchall_6b
:catchall_6b
move-exception v1
:goto_6c
if-eqz v4, :cond_73
if-eqz v2, :cond_79
:try_start_70
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_73
.catch Ljava/lang/Throwable; {:try_start_70 .. :try_end_73} :catch_74
.catchall {:try_start_70 .. :try_end_73} :catchall_5d
:cond_73
:goto_73
:try_start_73
throw v1
:catch_74
move-exception v4
invoke-virtual {v2, v4}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
goto :goto_73
:cond_79
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
goto :goto_73
:cond_7d
invoke-static {v1}, Landroid/graphics/Typeface;->createFromFile(Ljava/io/File;)Landroid/graphics/Typeface;
:try_end_80
.catch Ljava/lang/Throwable; {:try_start_73 .. :try_end_80} :catch_49
.catchall {:try_start_73 .. :try_end_80} :catchall_5d
move-result-object v1
if-eqz v3, :cond_88
if-eqz v0, :cond_90
:try_start_85
invoke-virtual {v3}, Landroid/os/ParcelFileDescriptor;->close()V
:try_end_88
.catch Ljava/lang/Throwable; {:try_start_85 .. :try_end_88} :catch_8b
.catch Ljava/io/IOException; {:try_start_85 .. :try_end_88} :catch_57
:cond_88
:goto_88
move-object v0, v1
goto/16 :goto_5
:catch_8b
move-exception v3
:try_start_8c
invoke-virtual {v2, v3}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
goto :goto_88
:cond_90
invoke-virtual {v3}, Landroid/os/ParcelFileDescriptor;->close()V
goto :goto_88
:catch_94
move-exception v3
invoke-virtual {v2, v3}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
goto :goto_56
:cond_99
invoke-virtual {v3}, Landroid/os/ParcelFileDescriptor;->close()V
:try_end_9c
.catch Ljava/io/IOException; {:try_start_8c .. :try_end_9c} :catch_57
goto :goto_56
:catchall_9d
move-exception v1
move-object v2, v0
goto :goto_6c
.end method