.class Landroidx/emoji2/text/MetadataListReader; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation build Landroidx/annotation/AnyThread; .end annotation .annotation build Landroidx/annotation/RequiresApi; value = 0x13 .end annotation .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope; } .end annotation .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/emoji2/text/MetadataListReader$InputStreamOpenTypeReader;, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;, Landroidx/emoji2/text/MetadataListReader$OffsetInfo;, Landroidx/emoji2/text/MetadataListReader$ByteBufferReader; } .end annotation # static fields .field private static final EMJI_TAG:I = 0x456d6a69 .field private static final EMJI_TAG_DEPRECATED:I = 0x656d6a69 .field private static final META_TABLE_NAME:I = 0x6d657461 # direct methods .method private constructor ()V .locals 0 .line 346 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private static findOffsetInfo(Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;)Landroidx/emoji2/text/MetadataListReader$OffsetInfo; .locals 12 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x4 .line 120 invoke-interface {p0, v0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->skip(I)V .line 122 invoke-interface {p0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->readUnsignedShort()I move-result v1 const/16 v2, 0x64 const-string v3, "Cannot read metadata." if-gt v1, v2, :cond_5 const/4 v2, 0x6 .line 128 invoke-interface {p0, v2}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->skip(I)V const/4 v2, 0x0 move v4, v2 :goto_0 const-wide/16 v5, -0x1 if-ge v4, v1, :cond_1 .line 132 invoke-interface {p0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->readTag()I move-result v7 .line 134 invoke-interface {p0, v0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->skip(I)V .line 135 invoke-interface {p0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->readUnsignedInt()J move-result-wide v8 .line 137 invoke-interface {p0, v0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->skip(I)V const v10, 0x6d657461 if-ne v10, v7, :cond_0 goto :goto_1 :cond_0 add-int/lit8 v4, v4, 0x1 goto :goto_0 :cond_1 move-wide v8, v5 :goto_1 cmp-long v0, v8, v5 if-eqz v0, :cond_4 .line 146 invoke-interface {p0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->getPosition()J move-result-wide v0 sub-long v0, v8, v0 long-to-int v0, v0 invoke-interface {p0, v0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->skip(I)V const/16 v0, 0xc .line 148 invoke-interface {p0, v0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->skip(I)V .line 150 invoke-interface {p0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->readUnsignedInt()J move-result-wide v0 :goto_2 int-to-long v4, v2 cmp-long v4, v4, v0 if-gez v4, :cond_4 .line 152 invoke-interface {p0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->readTag()I move-result v4 .line 153 invoke-interface {p0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->readUnsignedInt()J move-result-wide v5 .line 154 invoke-interface {p0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->readUnsignedInt()J move-result-wide v10 const v7, 0x456d6a69 if-eq v7, v4, :cond_3 const v7, 0x656d6a69 if-ne v7, v4, :cond_2 goto :goto_3 :cond_2 add-int/lit8 v2, v2, 0x1 goto :goto_2 .line 156 :cond_3 :goto_3 new-instance p0, Landroidx/emoji2/text/MetadataListReader$OffsetInfo; add-long/2addr v5, v8 invoke-direct {p0, v5, v6, v10, v11}, Landroidx/emoji2/text/MetadataListReader$OffsetInfo;->(JJ)V return-object p0 .line 161 :cond_4 new-instance p0, Ljava/io/IOException; invoke-direct {p0, v3}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p0 .line 125 :cond_5 new-instance p0, Ljava/io/IOException; invoke-direct {p0, v3}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p0 .end method .method public static read(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroidx/emoji2/text/flatbuffer/MetadataList; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 106 invoke-virtual {p0, p1}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream; move-result-object p0 .line 107 :try_start_0 invoke-static {p0}, Landroidx/emoji2/text/MetadataListReader;->read(Ljava/io/InputStream;)Landroidx/emoji2/text/flatbuffer/MetadataList; move-result-object p1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 if-eqz p0, :cond_0 .line 108 invoke-virtual {p0}, Ljava/io/InputStream;->close()V :cond_0 return-object p1 :catchall_0 move-exception p1 if-eqz p0, :cond_1 .line 106 :try_start_1 invoke-virtual {p0}, Ljava/io/InputStream;->close()V :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_1 goto :goto_0 :catchall_1 move-exception p0 invoke-virtual {p1, p0}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V :cond_1 :goto_0 throw p1 .end method .method public static read(Ljava/io/InputStream;)Landroidx/emoji2/text/flatbuffer/MetadataList; .locals 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 69 new-instance v0, Landroidx/emoji2/text/MetadataListReader$InputStreamOpenTypeReader; invoke-direct {v0, p0}, Landroidx/emoji2/text/MetadataListReader$InputStreamOpenTypeReader;->(Ljava/io/InputStream;)V .line 70 invoke-static {v0}, Landroidx/emoji2/text/MetadataListReader;->findOffsetInfo(Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;)Landroidx/emoji2/text/MetadataListReader$OffsetInfo; move-result-object v1 .line 72 invoke-virtual {v1}, Landroidx/emoji2/text/MetadataListReader$OffsetInfo;->getStartOffset()J move-result-wide v2 invoke-interface {v0}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->getPosition()J move-result-wide v4 sub-long/2addr v2, v4 long-to-int v2, v2 invoke-interface {v0, v2}, Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;->skip(I)V .line 74 invoke-virtual {v1}, Landroidx/emoji2/text/MetadataListReader$OffsetInfo;->getLength()J move-result-wide v2 long-to-int v0, v2 invoke-static {v0}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer; move-result-object v0 .line 75 invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B move-result-object v2 invoke-virtual {p0, v2}, Ljava/io/InputStream;->read([B)I move-result p0 int-to-long v2, p0 .line 76 invoke-virtual {v1}, Landroidx/emoji2/text/MetadataListReader$OffsetInfo;->getLength()J move-result-wide v4 cmp-long v2, v2, v4 if-nez v2, :cond_0 .line 80 invoke-static {v0}, Landroidx/emoji2/text/flatbuffer/MetadataList;->getRootAsMetadataList(Ljava/nio/ByteBuffer;)Landroidx/emoji2/text/flatbuffer/MetadataList; move-result-object p0 return-object p0 .line 77 :cond_0 new-instance v0, Ljava/io/IOException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "Needed " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Landroidx/emoji2/text/MetadataListReader$OffsetInfo;->getLength()J move-result-wide v3 invoke-virtual {v2, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; const-string v1, " bytes, got " invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 .end method .method public static read(Ljava/nio/ByteBuffer;)Landroidx/emoji2/text/flatbuffer/MetadataList; .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 89 invoke-virtual {p0}, Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/ByteBuffer; move-result-object p0 .line 90 new-instance v0, Landroidx/emoji2/text/MetadataListReader$ByteBufferReader; invoke-direct {v0, p0}, Landroidx/emoji2/text/MetadataListReader$ByteBufferReader;->(Ljava/nio/ByteBuffer;)V .line 91 invoke-static {v0}, Landroidx/emoji2/text/MetadataListReader;->findOffsetInfo(Landroidx/emoji2/text/MetadataListReader$OpenTypeReader;)Landroidx/emoji2/text/MetadataListReader$OffsetInfo; move-result-object v0 .line 93 invoke-virtual {v0}, Landroidx/emoji2/text/MetadataListReader$OffsetInfo;->getStartOffset()J move-result-wide v0 long-to-int v0, v0 invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer; .line 94 invoke-static {p0}, Landroidx/emoji2/text/flatbuffer/MetadataList;->getRootAsMetadataList(Ljava/nio/ByteBuffer;)Landroidx/emoji2/text/flatbuffer/MetadataList; move-result-object p0 return-object p0 .end method .method public static toUnsignedInt(I)J .locals 4 int-to-long v0, p0 const-wide v2, 0xffffffffL and-long/2addr v0, v2 return-wide v0 .end method .method public static toUnsignedShort(S)I .locals 1 const v0, 0xffff and-int/2addr p0, v0 return p0 .end method