.class public final Landroidx/emoji2/text/MetadataRepo; .super Ljava/lang/Object; .source "MetadataRepo.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/emoji2/text/MetadataRepo$Node; } .end annotation # static fields .field private static final DEFAULT_ROOT_SIZE:I = 0x400 .field private static final S_TRACE_CREATE_REPO:Ljava/lang/String; = "EmojiCompat.MetadataRepo.create" # instance fields .field private final mEmojiCharArray:[C .field private final mMetadataList:Landroidx/emoji2/text/flatbuffer/MetadataList; .field private final mRootNode:Landroidx/emoji2/text/MetadataRepo$Node; .field private final mTypeface:Landroid/graphics/Typeface; # direct methods .method private constructor (Landroid/graphics/Typeface;Landroidx/emoji2/text/flatbuffer/MetadataList;)V .locals 1 .line 75 invoke-direct {p0}, Ljava/lang/Object;->()V .line 76 iput-object p1, p0, Landroidx/emoji2/text/MetadataRepo;->mTypeface:Landroid/graphics/Typeface; .line 77 iput-object p2, p0, Landroidx/emoji2/text/MetadataRepo;->mMetadataList:Landroidx/emoji2/text/flatbuffer/MetadataList; .line 78 new-instance p1, Landroidx/emoji2/text/MetadataRepo$Node; const/16 v0, 0x400 invoke-direct {p1, v0}, Landroidx/emoji2/text/MetadataRepo$Node;->(I)V iput-object p1, p0, Landroidx/emoji2/text/MetadataRepo;->mRootNode:Landroidx/emoji2/text/MetadataRepo$Node; .line 79 invoke-virtual {p2}, Landroidx/emoji2/text/flatbuffer/MetadataList;->listLength()I move-result p1 mul-int/lit8 p1, p1, 0x2 new-array p1, p1, [C iput-object p1, p0, Landroidx/emoji2/text/MetadataRepo;->mEmojiCharArray:[C .line 80 invoke-direct {p0, p2}, Landroidx/emoji2/text/MetadataRepo;->constructIndex(Landroidx/emoji2/text/flatbuffer/MetadataList;)V return-void .end method .method private constructIndex(Landroidx/emoji2/text/flatbuffer/MetadataList;)V .locals 5 .line 160 invoke-virtual {p1}, Landroidx/emoji2/text/flatbuffer/MetadataList;->listLength()I move-result p1 const/4 v0, 0x0 :goto_0 if-ge v0, p1, :cond_0 .line 162 new-instance v1, Landroidx/emoji2/text/EmojiMetadata; invoke-direct {v1, p0, v0}, Landroidx/emoji2/text/EmojiMetadata;->(Landroidx/emoji2/text/MetadataRepo;I)V .line 166 invoke-virtual {v1}, Landroidx/emoji2/text/EmojiMetadata;->getId()I move-result v2 iget-object v3, p0, Landroidx/emoji2/text/MetadataRepo;->mEmojiCharArray:[C mul-int/lit8 v4, v0, 0x2 invoke-static {v2, v3, v4}, Ljava/lang/Character;->toChars(I[CI)I .line 167 invoke-virtual {p0, v1}, Landroidx/emoji2/text/MetadataRepo;->put(Landroidx/emoji2/text/EmojiMetadata;)V add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_0 return-void .end method .method public static create(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroidx/emoji2/text/MetadataRepo; .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 147 :try_start_0 const-string v0, "EmojiCompat.MetadataRepo.create" invoke-static {v0}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V .line 148 invoke-static {p0, p1}, Landroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface; move-result-object v0 .line 149 new-instance v1, Landroidx/emoji2/text/MetadataRepo; .line 150 invoke-static {p0, p1}, Landroidx/emoji2/text/MetadataListReader;->read(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroidx/emoji2/text/flatbuffer/MetadataList; move-result-object p0 invoke-direct {v1, v0, p0}, Landroidx/emoji2/text/MetadataRepo;->(Landroid/graphics/Typeface;Landroidx/emoji2/text/flatbuffer/MetadataList;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 152 invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V return-object v1 :catchall_0 move-exception p0 invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V .line 153 throw p0 .end method .method public static create(Landroid/graphics/Typeface;)Landroidx/emoji2/text/MetadataRepo; .locals 2 .line 93 :try_start_0 const-string v0, "EmojiCompat.MetadataRepo.create" invoke-static {v0}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V .line 94 new-instance v0, Landroidx/emoji2/text/MetadataRepo; new-instance v1, Landroidx/emoji2/text/flatbuffer/MetadataList; invoke-direct {v1}, Landroidx/emoji2/text/flatbuffer/MetadataList;->()V invoke-direct {v0, p0, v1}, Landroidx/emoji2/text/MetadataRepo;->(Landroid/graphics/Typeface;Landroidx/emoji2/text/flatbuffer/MetadataList;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 96 invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V return-object v0 :catchall_0 move-exception p0 invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V .line 97 throw p0 .end method .method public static create(Landroid/graphics/Typeface;Ljava/io/InputStream;)Landroidx/emoji2/text/MetadataRepo; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 111 :try_start_0 const-string v0, "EmojiCompat.MetadataRepo.create" invoke-static {v0}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V .line 112 new-instance v0, Landroidx/emoji2/text/MetadataRepo; invoke-static {p1}, Landroidx/emoji2/text/MetadataListReader;->read(Ljava/io/InputStream;)Landroidx/emoji2/text/flatbuffer/MetadataList; move-result-object p1 invoke-direct {v0, p0, p1}, Landroidx/emoji2/text/MetadataRepo;->(Landroid/graphics/Typeface;Landroidx/emoji2/text/flatbuffer/MetadataList;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 114 invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V return-object v0 :catchall_0 move-exception p0 invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V .line 115 throw p0 .end method .method public static create(Landroid/graphics/Typeface;Ljava/nio/ByteBuffer;)Landroidx/emoji2/text/MetadataRepo; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 129 :try_start_0 const-string v0, "EmojiCompat.MetadataRepo.create" invoke-static {v0}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V .line 130 new-instance v0, Landroidx/emoji2/text/MetadataRepo; invoke-static {p1}, Landroidx/emoji2/text/MetadataListReader;->read(Ljava/nio/ByteBuffer;)Landroidx/emoji2/text/flatbuffer/MetadataList; move-result-object p1 invoke-direct {v0, p0, p1}, Landroidx/emoji2/text/MetadataRepo;->(Landroid/graphics/Typeface;Landroidx/emoji2/text/flatbuffer/MetadataList;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 132 invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V return-object v0 :catchall_0 move-exception p0 invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V .line 133 throw p0 .end method # virtual methods .method public getEmojiCharArray()[C .locals 1 .line 203 iget-object v0, p0, Landroidx/emoji2/text/MetadataRepo;->mEmojiCharArray:[C return-object v0 .end method .method public getMetadataList()Landroidx/emoji2/text/flatbuffer/MetadataList; .locals 1 .line 212 iget-object v0, p0, Landroidx/emoji2/text/MetadataRepo;->mMetadataList:Landroidx/emoji2/text/flatbuffer/MetadataList; return-object v0 .end method .method getMetadataVersion()I .locals 1 .line 185 iget-object v0, p0, Landroidx/emoji2/text/MetadataRepo;->mMetadataList:Landroidx/emoji2/text/flatbuffer/MetadataList; invoke-virtual {v0}, Landroidx/emoji2/text/flatbuffer/MetadataList;->version()I move-result v0 return v0 .end method .method getRootNode()Landroidx/emoji2/text/MetadataRepo$Node; .locals 1 .line 194 iget-object v0, p0, Landroidx/emoji2/text/MetadataRepo;->mRootNode:Landroidx/emoji2/text/MetadataRepo$Node; return-object v0 .end method .method getTypeface()Landroid/graphics/Typeface; .locals 1 .line 177 iget-object v0, p0, Landroidx/emoji2/text/MetadataRepo;->mTypeface:Landroid/graphics/Typeface; return-object v0 .end method .method put(Landroidx/emoji2/text/EmojiMetadata;)V .locals 4 .line 223 const-string v0, "emoji metadata cannot be null" invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 224 invoke-virtual {p1}, Landroidx/emoji2/text/EmojiMetadata;->getCodepointsLength()I move-result v0 const/4 v1, 0x1 const/4 v2, 0x0 if-lez v0, :cond_0 move v0, v1 goto :goto_0 :cond_0 move v0, v2 :goto_0 const-string v3, "invalid metadata codepoint length" invoke-static {v0, v3}, Landroidx/core/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V .line 227 iget-object v0, p0, Landroidx/emoji2/text/MetadataRepo;->mRootNode:Landroidx/emoji2/text/MetadataRepo$Node; invoke-virtual {p1}, Landroidx/emoji2/text/EmojiMetadata;->getCodepointsLength()I move-result v3 sub-int/2addr v3, v1 invoke-virtual {v0, p1, v2, v3}, Landroidx/emoji2/text/MetadataRepo$Node;->put(Landroidx/emoji2/text/EmojiMetadata;II)V return-void .end method