FontsContractCompat.smali
.class public Landroid/support/v4/provider/FontsContractCompat;
.super Ljava/lang/Object;
.source "FontsContractCompat.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroid/support/v4/provider/FontsContractCompat$FontRequestCallback;,
Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;,
Landroid/support/v4/provider/FontsContractCompat$FontInfo;,
Landroid/support/v4/provider/FontsContractCompat$Columns;
}
.end annotation
# static fields
.field private static final BACKGROUND_THREAD_KEEP_ALIVE_DURATION_MS:I = 0x2710
.field public static final PARCEL_FONT_RESULTS:Ljava/lang/String; = "font_results"
.annotation build Landroid/support/annotation/RestrictTo;
value = {
.enum Landroid/support/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroid/support/annotation/RestrictTo$Scope;
}
.end annotation
.end field
.field public static final RESULT_CODE_PROVIDER_NOT_FOUND:I = -0x1
.annotation build Landroid/support/annotation/RestrictTo;
value = {
.enum Landroid/support/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroid/support/annotation/RestrictTo$Scope;
}
.end annotation
.end field
.field public static final RESULT_CODE_WRONG_CERTIFICATES:I = -0x2
.annotation build Landroid/support/annotation/RestrictTo;
value = {
.enum Landroid/support/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroid/support/annotation/RestrictTo$Scope;
}
.end annotation
.end field
.field private static final TAG:Ljava/lang/String; = "FontsContractCompat"
.field private static final sBackgroundThread:Landroid/support/v4/provider/SelfDestructiveThread;
.field private static final sByteArrayComparator:Ljava/util/Comparator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Comparator",
"<[B>;"
}
.end annotation
.end field
.field private static final sLock:Ljava/lang/Object;
.field private static final sPendingReplies:Landroid/support/v4/util/SimpleArrayMap;
.annotation build Landroid/support/annotation/GuardedBy;
value = "sLock"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/support/v4/util/SimpleArrayMap",
"<",
"Ljava/lang/String;",
"Ljava/util/ArrayList",
"<",
"Landroid/support/v4/provider/SelfDestructiveThread$ReplyCallback",
"<",
"Landroid/graphics/Typeface;",
">;>;>;"
}
.end annotation
.end field
.field private static final sTypefaceCache:Landroid/support/v4/util/LruCache;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/support/v4/util/LruCache",
"<",
"Ljava/lang/String;",
"Landroid/graphics/Typeface;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 4
.prologue
.line 175
new-instance v0, Landroid/support/v4/util/LruCache;
const/16 v1, 0x10
invoke-direct {v0, v1}, Landroid/support/v4/util/LruCache;-><init>(I)V
sput-object v0, Landroid/support/v4/provider/FontsContractCompat;->sTypefaceCache:Landroid/support/v4/util/LruCache;
.line 178
new-instance v0, Landroid/support/v4/provider/SelfDestructiveThread;
const-string v1, "fonts"
const/16 v2, 0xa
const/16 v3, 0x2710
invoke-direct {v0, v1, v2, v3}, Landroid/support/v4/provider/SelfDestructiveThread;-><init>(Ljava/lang/String;II)V
sput-object v0, Landroid/support/v4/provider/FontsContractCompat;->sBackgroundThread:Landroid/support/v4/provider/SelfDestructiveThread;
.line 197
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Landroid/support/v4/provider/FontsContractCompat;->sLock:Ljava/lang/Object;
.line 200
new-instance v0, Landroid/support/v4/util/SimpleArrayMap;
invoke-direct {v0}, Landroid/support/v4/util/SimpleArrayMap;-><init>()V
sput-object v0, Landroid/support/v4/provider/FontsContractCompat;->sPendingReplies:Landroid/support/v4/util/SimpleArrayMap;
.line 719
new-instance v0, Landroid/support/v4/provider/FontsContractCompat$5;
invoke-direct {v0}, Landroid/support/v4/provider/FontsContractCompat$5;-><init>()V
sput-object v0, Landroid/support/v4/provider/FontsContractCompat;->sByteArrayComparator:Ljava/util/Comparator;
return-void
.end method
.method private constructor <init>()V
.registers 1
.prologue
.line 76
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static synthetic access$000(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;I)Landroid/graphics/Typeface;
.registers 4
.prologue
.line 73
invoke-static {p0, p1, p2}, Landroid/support/v4/provider/FontsContractCompat;->getFontInternal(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;I)Landroid/graphics/Typeface;
move-result-object v0
return-object v0
.end method
.method static synthetic access$100()Landroid/support/v4/util/LruCache;
.registers 1
.prologue
.line 73
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sTypefaceCache:Landroid/support/v4/util/LruCache;
return-object v0
.end method
.method static synthetic access$200()Ljava/lang/Object;
.registers 1
.prologue
.line 73
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sLock:Ljava/lang/Object;
return-object v0
.end method
.method static synthetic access$300()Landroid/support/v4/util/SimpleArrayMap;
.registers 1
.prologue
.line 73
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sPendingReplies:Landroid/support/v4/util/SimpleArrayMap;
return-object v0
.end method
.method public static buildTypeface(Landroid/content/Context;Landroid/os/CancellationSignal;[Landroid/support/v4/provider/FontsContractCompat$FontInfo;)Landroid/graphics/Typeface;
.registers 4
.param p0 # Landroid/content/Context;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1 # Landroid/os/CancellationSignal;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
.param p2 # [Landroid/support/v4/provider/FontsContractCompat$FontInfo;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.prologue
.line 605
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Landroid/support/v4/graphics/TypefaceCompat;->createFromFontInfo(Landroid/content/Context;Landroid/os/CancellationSignal;[Landroid/support/v4/provider/FontsContractCompat$FontInfo;I)Landroid/graphics/Typeface;
move-result-object v0
return-object v0
.end method
.method private static convertToByteArrayList([Landroid/content/pm/Signature;)Ljava/util/List;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Landroid/content/pm/Signature;",
")",
"Ljava/util/List",
"<[B>;"
}
.end annotation
.prologue
.line 748
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 749
const/4 v0, 0x0
:goto_6
array-length v2, p0
if-ge v0, v2, :cond_15
.line 750
aget-object v2, p0, v0
invoke-virtual {v2}, Landroid/content/pm/Signature;->toByteArray()[B
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 749
add-int/lit8 v0, v0, 0x1
goto :goto_6
.line 752
:cond_15
return-object v1
.end method
.method private static equalsByteArrayList(Ljava/util/List;Ljava/util/List;)Z
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<[B>;",
"Ljava/util/List",
"<[B>;)Z"
}
.end annotation
.prologue
const/4 v3, 0x0
.line 736
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v0
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v1
if-eq v0, v1, :cond_c
.line 744
:cond_b
:goto_b
return v3
:cond_c
move v2, v3
.line 739
:goto_d
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v0
if-ge v2, v0, :cond_29
.line 740
invoke-interface {p0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, [B
invoke-static {v0, v1}, Ljava/util/Arrays;->equals([B[B)Z
move-result v0
if-eqz v0, :cond_b
.line 739
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_d
.line 744
:cond_29
const/4 v3, 0x1
goto :goto_b
.end method
.method public static fetchFonts(Landroid/content/Context;Landroid/os/CancellationSignal;Landroid/support/v4/provider/FontRequest;)Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;
.registers 6
.param p0 # Landroid/content/Context;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1 # Landroid/os/CancellationSignal;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
.param p2 # Landroid/support/v4/provider/FontRequest;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/content/pm/PackageManager$NameNotFoundException;
}
.end annotation
.prologue
.line 662
.line 663
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v1
.line 662
invoke-static {v0, p2, v1}, Landroid/support/v4/provider/FontsContractCompat;->getProvider(Landroid/content/pm/PackageManager;Landroid/support/v4/provider/FontRequest;Landroid/content/res/Resources;)Landroid/content/pm/ProviderInfo;
move-result-object v0
.line 664
if-nez v0, :cond_16
.line 665
new-instance v0, Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;
const/4 v1, 0x1
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;-><init>(I[Landroid/support/v4/provider/FontsContractCompat$FontInfo;)V
.line 670
:goto_15
return-object v0
.line 668
:cond_16
iget-object v0, v0, Landroid/content/pm/ProviderInfo;->authority:Ljava/lang/String;
invoke-static {p0, p2, v0, p1}, Landroid/support/v4/provider/FontsContractCompat;->getFontFromProvider(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;Ljava/lang/String;Landroid/os/CancellationSignal;)[Landroid/support/v4/provider/FontsContractCompat$FontInfo;
move-result-object v1
.line 670
new-instance v0, Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;
const/4 v2, 0x0
invoke-direct {v0, v2, v1}, Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;-><init>(I[Landroid/support/v4/provider/FontsContractCompat$FontInfo;)V
goto :goto_15
.end method
.method private static getCertificates(Landroid/support/v4/provider/FontRequest;Landroid/content/res/Resources;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/support/v4/provider/FontRequest;",
"Landroid/content/res/Resources;",
")",
"Ljava/util/List",
"<",
"Ljava/util/List",
"<[B>;>;"
}
.end annotation
.prologue
.line 712
invoke-virtual {p0}, Landroid/support/v4/provider/FontRequest;->getCertificates()Ljava/util/List;
move-result-object v0
if-eqz v0, :cond_b
.line 713
invoke-virtual {p0}, Landroid/support/v4/provider/FontRequest;->getCertificates()Ljava/util/List;
move-result-object v0
.line 716
:goto_a
return-object v0
.line 715
:cond_b
invoke-virtual {p0}, Landroid/support/v4/provider/FontRequest;->getCertificatesArrayResId()I
move-result v0
.line 716
invoke-static {p1, v0}, Landroid/support/v4/content/res/FontResourcesParserCompat;->readCerts(Landroid/content/res/Resources;I)Ljava/util/List;
move-result-object v0
goto :goto_a
.end method
.method static getFontFromProvider(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;Ljava/lang/String;Landroid/os/CancellationSignal;)[Landroid/support/v4/provider/FontsContractCompat$FontInfo;
.registers 22
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.annotation build Landroid/support/annotation/VisibleForTesting;
.end annotation
.prologue
.line 759
new-instance v11, Ljava/util/ArrayList;
invoke-direct {v11}, Ljava/util/ArrayList;-><init>()V
.line 760
new-instance v2, Landroid/net/Uri$Builder;
invoke-direct {v2}, Landroid/net/Uri$Builder;-><init>()V
const-string v3, "content"
invoke-virtual {v2, v3}, Landroid/net/Uri$Builder;->scheme(Ljava/lang/String;)Landroid/net/Uri$Builder;
move-result-object v2
.line 761
move-object/from16 v0, p2
invoke-virtual {v2, v0}, Landroid/net/Uri$Builder;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder;
move-result-object v2
.line 762
invoke-virtual {v2}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri;
move-result-object v3
.line 763
new-instance v2, Landroid/net/Uri$Builder;
invoke-direct {v2}, Landroid/net/Uri$Builder;-><init>()V
const-string v4, "content"
invoke-virtual {v2, v4}, Landroid/net/Uri$Builder;->scheme(Ljava/lang/String;)Landroid/net/Uri$Builder;
move-result-object v2
.line 764
move-object/from16 v0, p2
invoke-virtual {v2, v0}, Landroid/net/Uri$Builder;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder;
move-result-object v2
const-string v4, "file"
.line 765
invoke-virtual {v2, v4}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder;
move-result-object v2
.line 766
invoke-virtual {v2}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri;
move-result-object v12
.line 767
const/4 v9, 0x0
.line 769
:try_start_36
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x10
if-le v2, v4, :cond_f4
.line 770
invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const/4 v4, 0x7
new-array v4, v4, [Ljava/lang/String;
const/4 v5, 0x0
const-string v6, "_id"
aput-object v6, v4, v5
const/4 v5, 0x1
const-string v6, "file_id"
aput-object v6, v4, v5
const/4 v5, 0x2
const-string v6, "font_ttc_index"
aput-object v6, v4, v5
const/4 v5, 0x3
const-string v6, "font_variation_settings"
aput-object v6, v4, v5
const/4 v5, 0x4
const-string v6, "font_weight"
aput-object v6, v4, v5
const/4 v5, 0x5
const-string v6, "font_italic"
aput-object v6, v4, v5
const/4 v5, 0x6
const-string v6, "result_code"
aput-object v6, v4, v5
const-string v5, "query = ?"
const/4 v6, 0x1
new-array v6, v6, [Ljava/lang/String;
const/4 v7, 0x0
.line 774
invoke-virtual/range {p1 .. p1}, Landroid/support/v4/provider/FontRequest;->getQuery()Ljava/lang/String;
move-result-object v8
aput-object v8, v6, v7
const/4 v7, 0x0
move-object/from16 v8, p3
.line 770
invoke-virtual/range {v2 .. v8}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
:try_end_78
.catchall {:try_start_36 .. :try_end_78} :catchall_153
move-result-object v10
.line 783
:goto_79
if-eqz v10, :cond_143
:try_start_7b
invoke-interface {v10}, Landroid/database/Cursor;->getCount()I
move-result v2
if-lez v2, :cond_143
.line 784
const-string v2, "result_code"
invoke-interface {v10, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v11
.line 785
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 786
const-string v4, "_id"
invoke-interface {v10, v4}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v13
.line 787
const-string v4, "file_id"
invoke-interface {v10, v4}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v14
.line 788
const-string v4, "font_ttc_index"
invoke-interface {v10, v4}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v15
.line 789
const-string v4, "font_weight"
invoke-interface {v10, v4}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v16
.line 790
const-string v4, "font_italic"
invoke-interface {v10, v4}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v17
.line 791
:goto_aa
invoke-interface {v10}, Landroid/database/Cursor;->moveToNext()Z
move-result v4
if-eqz v4, :cond_144
.line 792
const/4 v4, -0x1
if-eq v11, v4, :cond_131
.line 793
invoke-interface {v10, v11}, Landroid/database/Cursor;->getInt(I)I
move-result v9
.line 794
:goto_b7
const/4 v4, -0x1
if-eq v15, v4, :cond_133
.line 795
invoke-interface {v10, v15}, Landroid/database/Cursor;->getInt(I)I
move-result v6
.line 797
:goto_be
const/4 v4, -0x1
if-ne v14, v4, :cond_135
.line 798
invoke-interface {v10, v13}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v4
.line 799
invoke-static {v3, v4, v5}, Landroid/content/ContentUris;->withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;
move-result-object v5
.line 805
:goto_c9
const/4 v4, -0x1
move/from16 v0, v16
if-eq v0, v4, :cond_13e
move/from16 v0, v16
invoke-interface {v10, v0}, Landroid/database/Cursor;->getInt(I)I
move-result v7
.line 806
:goto_d4
const/4 v4, -0x1
move/from16 v0, v17
if-eq v0, v4, :cond_141
move/from16 v0, v17
invoke-interface {v10, v0}, Landroid/database/Cursor;->getInt(I)I
move-result v4
const/4 v8, 0x1
if-ne v4, v8, :cond_141
const/4 v8, 0x1
.line 808
:goto_e3
new-instance v4, Landroid/support/v4/provider/FontsContractCompat$FontInfo;
invoke-direct/range {v4 .. v9}, Landroid/support/v4/provider/FontsContractCompat$FontInfo;-><init>(Landroid/net/Uri;IIZI)V
invoke-virtual {v2, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:try_end_eb
.catchall {:try_start_7b .. :try_end_eb} :catchall_ec
goto :goto_aa
.line 812
:catchall_ec
move-exception v2
move-object v3, v10
:goto_ee
if-eqz v3, :cond_f3
.line 813
invoke-interface {v3}, Landroid/database/Cursor;->close()V
:cond_f3
throw v2
.line 777
:cond_f4
:try_start_f4
invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const/4 v4, 0x7
new-array v4, v4, [Ljava/lang/String;
const/4 v5, 0x0
const-string v6, "_id"
aput-object v6, v4, v5
const/4 v5, 0x1
const-string v6, "file_id"
aput-object v6, v4, v5
const/4 v5, 0x2
const-string v6, "font_ttc_index"
aput-object v6, v4, v5
const/4 v5, 0x3
const-string v6, "font_variation_settings"
aput-object v6, v4, v5
const/4 v5, 0x4
const-string v6, "font_weight"
aput-object v6, v4, v5
const/4 v5, 0x5
const-string v6, "font_italic"
aput-object v6, v4, v5
const/4 v5, 0x6
const-string v6, "result_code"
aput-object v6, v4, v5
const-string v5, "query = ?"
const/4 v6, 0x1
new-array v6, v6, [Ljava/lang/String;
const/4 v7, 0x0
.line 781
invoke-virtual/range {p1 .. p1}, Landroid/support/v4/provider/FontRequest;->getQuery()Ljava/lang/String;
move-result-object v8
aput-object v8, v6, v7
const/4 v7, 0x0
.line 777
invoke-virtual/range {v2 .. v7}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
:try_end_12e
.catchall {:try_start_f4 .. :try_end_12e} :catchall_153
move-result-object v10
goto/16 :goto_79
.line 793
:cond_131
const/4 v9, 0x0
goto :goto_b7
.line 795
:cond_133
const/4 v6, 0x0
goto :goto_be
.line 801
:cond_135
:try_start_135
invoke-interface {v10, v14}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v4
.line 802
invoke-static {v12, v4, v5}, Landroid/content/ContentUris;->withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;
:try_end_13c
.catchall {:try_start_135 .. :try_end_13c} :catchall_ec
move-result-object v5
goto :goto_c9
.line 805
:cond_13e
const/16 v7, 0x190
goto :goto_d4
.line 806
:cond_141
const/4 v8, 0x0
goto :goto_e3
:cond_143
move-object v2, v11
.line 812
:cond_144
if-eqz v10, :cond_149
.line 813
invoke-interface {v10}, Landroid/database/Cursor;->close()V
.line 816
:cond_149
const/4 v3, 0x0
new-array v3, v3, [Landroid/support/v4/provider/FontsContractCompat$FontInfo;
invoke-virtual {v2, v3}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v2
check-cast v2, [Landroid/support/v4/provider/FontsContractCompat$FontInfo;
return-object v2
.line 812
:catchall_153
move-exception v2
move-object v3, v9
goto :goto_ee
.end method
.method private static getFontInternal(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;I)Landroid/graphics/Typeface;
.registers 6
.prologue
const/4 v0, 0x0
.line 186
const/4 v1, 0x0
:try_start_2
invoke-static {p0, v1, p1}, Landroid/support/v4/provider/FontsContractCompat;->fetchFonts(Landroid/content/Context;Landroid/os/CancellationSignal;Landroid/support/v4/provider/FontRequest;)Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;
:try_end_5
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_2 .. :try_end_5} :catch_15
move-result-object v1
.line 190
invoke-virtual {v1}, Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;->getStatusCode()I
move-result v2
if-nez v2, :cond_14
.line 192
invoke-virtual {v1}, Landroid/support/v4/provider/FontsContractCompat$FontFamilyResult;->getFonts()[Landroid/support/v4/provider/FontsContractCompat$FontInfo;
move-result-object v1
.line 191
invoke-static {p0, v0, v1, p2}, Landroid/support/v4/graphics/TypefaceCompat;->createFromFontInfo(Landroid/content/Context;Landroid/os/CancellationSignal;[Landroid/support/v4/provider/FontsContractCompat$FontInfo;I)Landroid/graphics/Typeface;
move-result-object v0
.line 194
:cond_14
:goto_14
return-object v0
.line 187
:catch_15
move-exception v1
goto :goto_14
.end method
.method public static getFontSync(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;Landroid/widget/TextView;III)Landroid/graphics/Typeface;
.registers 12
.param p2 # Landroid/widget/TextView;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
.annotation build Landroid/support/annotation/RestrictTo;
value = {
.enum Landroid/support/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroid/support/annotation/RestrictTo$Scope;
}
.end annotation
.prologue
const/4 v1, 0x0
.line 207
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p1}, Landroid/support/v4/provider/FontRequest;->getIdentifier()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "-"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p5}, 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 v2
.line 208
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sTypefaceCache:Landroid/support/v4/util/LruCache;
invoke-virtual {v0, v2}, Landroid/support/v4/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/graphics/Typeface;
.line 209
if-eqz v0, :cond_27
.line 274
:goto_26
return-object v0
.line 213
:cond_27
if-nez p3, :cond_34
const/4 v0, 0x1
.line 216
:goto_2a
if-eqz v0, :cond_36
const/4 v3, -0x1
if-ne p4, v3, :cond_36
.line 218
invoke-static {p0, p1, p5}, Landroid/support/v4/provider/FontsContractCompat;->getFontInternal(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;I)Landroid/graphics/Typeface;
move-result-object v0
goto :goto_26
.line 213
:cond_34
const/4 v0, 0x0
goto :goto_2a
.line 221
:cond_36
new-instance v3, Landroid/support/v4/provider/FontsContractCompat$1;
invoke-direct {v3, p0, p1, p5, v2}, Landroid/support/v4/provider/FontsContractCompat$1;-><init>(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;ILjava/lang/String;)V
.line 232
if-eqz v0, :cond_49
.line 234
:try_start_3d
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sBackgroundThread:Landroid/support/v4/provider/SelfDestructiveThread;
invoke-virtual {v0, v3, p4}, Landroid/support/v4/provider/SelfDestructiveThread;->postAndWait(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/graphics/Typeface;
:try_end_45
.catch Ljava/lang/InterruptedException; {:try_start_3d .. :try_end_45} :catch_46
goto :goto_26
.line 235
:catch_46
move-exception v0
move-object v0, v1
.line 236
goto :goto_26
.line 239
:cond_49
new-instance v0, Ljava/lang/ref/WeakReference;
invoke-direct {v0, p2}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
.line 240
new-instance v4, Landroid/support/v4/provider/FontsContractCompat$2;
invoke-direct {v4, v0, p2, p5}, Landroid/support/v4/provider/FontsContractCompat$2;-><init>(Ljava/lang/ref/WeakReference;Landroid/widget/TextView;I)V
.line 250
sget-object v5, Landroid/support/v4/provider/FontsContractCompat;->sLock:Ljava/lang/Object;
monitor-enter v5
.line 251
:try_start_56
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sPendingReplies:Landroid/support/v4/util/SimpleArrayMap;
invoke-virtual {v0, v2}, Landroid/support/v4/util/SimpleArrayMap;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_6c
.line 254
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sPendingReplies:Landroid/support/v4/util/SimpleArrayMap;
invoke-virtual {v0, v2}, Landroid/support/v4/util/SimpleArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/ArrayList;
invoke-virtual {v0, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 255
monitor-exit v5
move-object v0, v1
goto :goto_26
.line 257
:cond_6c
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 258
invoke-virtual {v0, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 259
sget-object v4, Landroid/support/v4/provider/FontsContractCompat;->sPendingReplies:Landroid/support/v4/util/SimpleArrayMap;
invoke-virtual {v4, v2, v0}, Landroid/support/v4/util/SimpleArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 260
monitor-exit v5
:try_end_7a
.catchall {:try_start_56 .. :try_end_7a} :catchall_86
.line 261
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sBackgroundThread:Landroid/support/v4/provider/SelfDestructiveThread;
new-instance v4, Landroid/support/v4/provider/FontsContractCompat$3;
invoke-direct {v4, v2}, Landroid/support/v4/provider/FontsContractCompat$3;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v3, v4}, Landroid/support/v4/provider/SelfDestructiveThread;->postAndReply(Ljava/util/concurrent/Callable;Landroid/support/v4/provider/SelfDestructiveThread$ReplyCallback;)V
move-object v0, v1
.line 274
goto :goto_26
.line 260
:catchall_86
move-exception v0
:try_start_87
monitor-exit v5
:try_end_88
.catchall {:try_start_87 .. :try_end_88} :catchall_86
throw v0
.end method
.method public static getProvider(Landroid/content/pm/PackageManager;Landroid/support/v4/provider/FontRequest;Landroid/content/res/Resources;)Landroid/content/pm/ProviderInfo;
.registers 9
.param p0 # Landroid/content/pm/PackageManager;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1 # Landroid/support/v4/provider/FontRequest;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/content/res/Resources;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.annotation build Landroid/support/annotation/RestrictTo;
value = {
.enum Landroid/support/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroid/support/annotation/RestrictTo$Scope;
}
.end annotation
.annotation build Landroid/support/annotation/VisibleForTesting;
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/content/pm/PackageManager$NameNotFoundException;
}
.end annotation
.prologue
const/4 v0, 0x0
.line 679
invoke-virtual {p1}, Landroid/support/v4/provider/FontRequest;->getProviderAuthority()Ljava/lang/String;
move-result-object v1
.line 680
invoke-virtual {p0, v1, v0}, Landroid/content/pm/PackageManager;->resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;
move-result-object v2
.line 681
if-nez v2, :cond_24
.line 682
new-instance v0, Landroid/content/pm/PackageManager$NameNotFoundException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "No package found for authority: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Landroid/content/pm/PackageManager$NameNotFoundException;-><init>(Ljava/lang/String;)V
throw v0
.line 686
:cond_24
iget-object v3, v2, Landroid/content/pm/ProviderInfo;->packageName:Ljava/lang/String;
invoke-virtual {p1}, Landroid/support/v4/provider/FontRequest;->getProviderPackage()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_57
.line 687
new-instance v0, Landroid/content/pm/PackageManager$NameNotFoundException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Found content provider "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ", but package was not "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 689
invoke-virtual {p1}, Landroid/support/v4/provider/FontRequest;->getProviderPackage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Landroid/content/pm/PackageManager$NameNotFoundException;-><init>(Ljava/lang/String;)V
throw v0
.line 695
:cond_57
iget-object v1, v2, Landroid/content/pm/ProviderInfo;->packageName:Ljava/lang/String;
const/16 v3, 0x40
invoke-virtual {p0, v1, v3}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v1
.line 697
iget-object v1, v1, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;
invoke-static {v1}, Landroid/support/v4/provider/FontsContractCompat;->convertToByteArrayList([Landroid/content/pm/Signature;)Ljava/util/List;
move-result-object v3
.line 698
sget-object v1, Landroid/support/v4/provider/FontsContractCompat;->sByteArrayComparator:Ljava/util/Comparator;
invoke-static {v3, v1}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 699
invoke-static {p1, p2}, Landroid/support/v4/provider/FontsContractCompat;->getCertificates(Landroid/support/v4/provider/FontRequest;Landroid/content/res/Resources;)Ljava/util/List;
move-result-object v4
move v1, v0
.line 700
:goto_6f
invoke-interface {v4}, Ljava/util/List;->size()I
move-result v0
if-ge v1, v0, :cond_91
.line 702
new-instance v5, Ljava/util/ArrayList;
invoke-interface {v4, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Collection;
invoke-direct {v5, v0}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
.line 703
sget-object v0, Landroid/support/v4/provider/FontsContractCompat;->sByteArrayComparator:Ljava/util/Comparator;
invoke-static {v5, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 704
invoke-static {v3, v5}, Landroid/support/v4/provider/FontsContractCompat;->equalsByteArrayList(Ljava/util/List;Ljava/util/List;)Z
move-result v0
if-eqz v0, :cond_8d
move-object v0, v2
.line 708
:goto_8c
return-object v0
.line 700
:cond_8d
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_6f
.line 708
:cond_91
const/4 v0, 0x0
goto :goto_8c
.end method
.method public static prepareFontData(Landroid/content/Context;[Landroid/support/v4/provider/FontsContractCompat$FontInfo;Landroid/os/CancellationSignal;)Ljava/util/Map;
.registers 8
.annotation build Landroid/support/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation build Landroid/support/annotation/RestrictTo;
value = {
.enum Landroid/support/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroid/support/annotation/RestrictTo$Scope;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"[",
"Landroid/support/v4/provider/FontsContractCompat$FontInfo;",
"Landroid/os/CancellationSignal;",
")",
"Ljava/util/Map",
"<",
"Landroid/net/Uri;",
"Ljava/nio/ByteBuffer;",
">;"
}
.end annotation
.prologue
.line 624
new-instance v1, Ljava/util/HashMap;
invoke-direct {v1}, Ljava/util/HashMap;-><init>()V
.line 626
array-length v2, p1
const/4 v0, 0x0
:goto_7
if-ge v0, v2, :cond_26
aget-object v3, p1, v0
.line 627
invoke-virtual {v3}, Landroid/support/v4/provider/FontsContractCompat$FontInfo;->getResultCode()I
move-result v4
if-eqz v4, :cond_14
.line 626
:cond_11
:goto_11
add-int/lit8 v0, v0, 0x1
goto :goto_7
.line 631
:cond_14
invoke-virtual {v3}, Landroid/support/v4/provider/FontsContractCompat$FontInfo;->getUri()Landroid/net/Uri;
move-result-object v3
.line 632
invoke-virtual {v1, v3}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_11
.line 636
invoke-static {p0, p2, v3}, Landroid/support/v4/graphics/TypefaceCompatUtil;->mmap(Landroid/content/Context;Landroid/os/CancellationSignal;Landroid/net/Uri;)Ljava/nio/ByteBuffer;
move-result-object v4
.line 637
invoke-virtual {v1, v3, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_11
.line 639
:cond_26
invoke-static {v1}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
return-object v0
.end method
.method public static requestFont(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;Landroid/support/v4/provider/FontsContractCompat$FontRequestCallback;Landroid/os/Handler;)V
.registers 6
.param p0 # Landroid/content/Context;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1 # Landroid/support/v4/provider/FontRequest;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/support/v4/provider/FontsContractCompat$FontRequestCallback;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p3 # Landroid/os/Handler;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.prologue
.line 476
new-instance v0, Landroid/os/Handler;
invoke-direct {v0}, Landroid/os/Handler;-><init>()V
.line 477
new-instance v1, Landroid/support/v4/provider/FontsContractCompat$4;
invoke-direct {v1, p0, p1, v0, p2}, Landroid/support/v4/provider/FontsContractCompat$4;-><init>(Landroid/content/Context;Landroid/support/v4/provider/FontRequest;Landroid/os/Handler;Landroid/support/v4/provider/FontsContractCompat$FontRequestCallback;)V
invoke-virtual {p3, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 589
return-void
.end method