.class public Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/emoji2/text/DefaultEmojiCompatConfig; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "DefaultEmojiCompatConfigFactory" .end annotation # static fields .field private static final DEFAULT_EMOJI_QUERY:Ljava/lang/String; = "emojicompat-emoji-font" .annotation build Landroidx/annotation/NonNull; .end annotation .end field .field private static final INTENT_LOAD_EMOJI_FONT:Ljava/lang/String; = "androidx.content.action.LOAD_EMOJI_FONT" .annotation build Landroidx/annotation/NonNull; .end annotation .end field .field private static final TAG:Ljava/lang/String; = "emoji2.text.DefaultEmojiConfig" .annotation build Landroidx/annotation/NonNull; .end annotation .end field # instance fields .field private final mHelper:Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper; # direct methods .method public constructor (Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper;)V .locals 0 .param p1 # Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper; .annotation build Landroidx/annotation/Nullable; .end annotation .end param .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation .line 119 invoke-direct {p0}, Ljava/lang/Object;->()V if-eqz p1, :cond_0 goto :goto_0 .line 120 :cond_0 invoke-static {}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->getHelperForApi()Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper; move-result-object p1 :goto_0 iput-object p1, p0, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->mHelper:Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper; return-void .end method .method private configOrNull(Landroid/content/Context;Landroidx/core/provider/FontRequest;)Landroidx/emoji2/text/EmojiCompat$Config; .locals 1 .param p1 # Landroid/content/Context; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p2 # Landroidx/core/provider/FontRequest; .annotation build Landroidx/annotation/Nullable; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation if-nez p2, :cond_0 const/4 p1, 0x0 return-object p1 .line 145 :cond_0 new-instance v0, Landroidx/emoji2/text/FontRequestEmojiCompatConfig; invoke-direct {v0, p1, p2}, Landroidx/emoji2/text/FontRequestEmojiCompatConfig;->(Landroid/content/Context;Landroidx/core/provider/FontRequest;)V return-object v0 .end method .method private convertToByteArray([Landroid/content/pm/Signature;)Ljava/util/List; .locals 4 .param p1 # [Landroid/content/pm/Signature; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/NonNull; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "([", "Landroid/content/pm/Signature;", ")", "Ljava/util/List<", "Ljava/util/List<", "[B>;>;" } .end annotation .line 234 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V .line 235 array-length v1, p1 const/4 v2, 0x0 :goto_0 if-ge v2, v1, :cond_0 aget-object v3, p1, v2 .line 236 invoke-virtual {v3}, Landroid/content/pm/Signature;->toByteArray()[B move-result-object v3 invoke-interface {v0, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 238 :cond_0 invoke-static {v0}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List; move-result-object p1 return-object p1 .end method .method private generateFontRequestFrom(Landroid/content/pm/ProviderInfo;Landroid/content/pm/PackageManager;)Landroidx/core/provider/FontRequest; .locals 3 .param p1 # Landroid/content/pm/ProviderInfo; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p2 # Landroid/content/pm/PackageManager; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/NonNull; .end annotation .annotation system Ldalvik/annotation/Throws; value = { Landroid/content/pm/PackageManager$NameNotFoundException; } .end annotation .line 219 iget-object v0, p1, Landroid/content/pm/ProviderInfo;->authority:Ljava/lang/String; .line 220 iget-object p1, p1, Landroid/content/pm/ProviderInfo;->packageName:Ljava/lang/String; iget-object v1, p0, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->mHelper:Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper; .line 222 invoke-virtual {v1, p2, p1}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper;->getSigningSignatures(Landroid/content/pm/PackageManager;Ljava/lang/String;)[Landroid/content/pm/Signature; move-result-object p2 .line 224 invoke-direct {p0, p2}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->convertToByteArray([Landroid/content/pm/Signature;)Ljava/util/List; move-result-object p2 .line 225 new-instance v1, Landroidx/core/provider/FontRequest; const-string v2, "emojicompat-emoji-font" invoke-direct {v1, v0, p1, v2, p2}, Landroidx/core/provider/FontRequest;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V return-object v1 .end method .method private static getHelperForApi()Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper; .locals 2 .annotation build Landroidx/annotation/NonNull; .end annotation sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x1c if-lt v0, v1, :cond_0 .line 247 new-instance v0, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API28; invoke-direct {v0}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API28;->()V return-object v0 .line 249 :cond_0 new-instance v0, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API19; invoke-direct {v0}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper_API19;->()V return-object v0 .end method .method private hasFlagSystem(Landroid/content/pm/ProviderInfo;)Z .locals 1 .param p1 # Landroid/content/pm/ProviderInfo; .annotation build Landroidx/annotation/Nullable; .end annotation .end param if-eqz p1, :cond_0 .line 201 iget-object p1, p1, Landroid/content/pm/ProviderInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo; if-eqz p1, :cond_0 iget p1, p1, Landroid/content/pm/ApplicationInfo;->flags:I const/4 v0, 0x1 and-int/2addr p1, v0 if-ne p1, v0, :cond_0 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method private queryDefaultInstalledContentProvider(Landroid/content/pm/PackageManager;)Landroid/content/pm/ProviderInfo; .locals 3 .param p1 # Landroid/content/pm/PackageManager; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation iget-object v0, p0, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->mHelper:Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper; .line 183 new-instance v1, Landroid/content/Intent; const-string v2, "androidx.content.action.LOAD_EMOJI_FONT" invoke-direct {v1, v2}, Landroid/content/Intent;->(Ljava/lang/String;)V const/4 v2, 0x0 invoke-virtual {v0, p1, v1, v2}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper;->queryIntentContentProviders(Landroid/content/pm/PackageManager;Landroid/content/Intent;I)Ljava/util/List; move-result-object p1 .line 186 invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p1 :cond_0 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_1 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/content/pm/ResolveInfo; iget-object v1, p0, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->mHelper:Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper; .line 187 invoke-virtual {v1, v0}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper;->getProviderInfo(Landroid/content/pm/ResolveInfo;)Landroid/content/pm/ProviderInfo; move-result-object v0 .line 188 invoke-direct {p0, v0}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->hasFlagSystem(Landroid/content/pm/ProviderInfo;)Z move-result v1 if-eqz v1, :cond_0 return-object v0 :cond_1 const/4 p1, 0x0 return-object p1 .end method # virtual methods .method public create(Landroid/content/Context;)Landroidx/emoji2/text/EmojiCompat$Config; .locals 1 .param p1 # Landroid/content/Context; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation .line 130 invoke-virtual {p0, p1}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->queryForDefaultFontRequest(Landroid/content/Context;)Landroidx/core/provider/FontRequest; move-result-object v0 invoke-direct {p0, p1, v0}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->configOrNull(Landroid/content/Context;Landroidx/core/provider/FontRequest;)Landroidx/emoji2/text/EmojiCompat$Config; move-result-object p1 return-object p1 .end method .method public queryForDefaultFontRequest(Landroid/content/Context;)Landroidx/core/provider/FontRequest; .locals 2 .param p1 # Landroid/content/Context; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/Nullable; .end annotation .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .line 159 invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object p1 const-string v0, "Package manager required to locate emoji font provider" .line 161 invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 163 invoke-direct {p0, p1}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->queryDefaultInstalledContentProvider(Landroid/content/pm/PackageManager;)Landroid/content/pm/ProviderInfo; move-result-object v0 const/4 v1, 0x0 if-nez v0, :cond_0 return-object v1 .line 167 :cond_0 :try_start_0 invoke-direct {p0, v0, p1}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->generateFontRequestFrom(Landroid/content/pm/ProviderInfo;Landroid/content/pm/PackageManager;)Landroidx/core/provider/FontRequest; move-result-object p1 :try_end_0 .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 :catch_0 move-exception p1 const-string v0, "emoji2.text.DefaultEmojiConfig" .line 169 invoke-static {v0, p1}, Landroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/Throwable;)I return-object v1 .end method