110 lines
3.1 KiB
Java
110 lines
3.1 KiB
Java
package androidx.emoji2.text;
|
|
|
|
import android.graphics.Canvas;
|
|
import android.graphics.Paint;
|
|
import android.graphics.Typeface;
|
|
import androidx.emoji2.text.flatbuffer.MetadataItem;
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class EmojiMetadata {
|
|
public static final int HAS_GLYPH_ABSENT = 1;
|
|
public static final int HAS_GLYPH_EXISTS = 2;
|
|
public static final int HAS_GLYPH_UNKNOWN = 0;
|
|
private static final ThreadLocal<MetadataItem> sMetadataItem = new ThreadLocal<>();
|
|
private volatile int mHasGlyph = 0;
|
|
private final int mIndex;
|
|
private final MetadataRepo mMetadataRepo;
|
|
|
|
@Retention(RetentionPolicy.SOURCE)
|
|
public @interface HasGlyph {
|
|
}
|
|
|
|
public int getHasGlyph() {
|
|
return this.mHasGlyph;
|
|
}
|
|
|
|
public void resetHasGlyphCache() {
|
|
this.mHasGlyph = 0;
|
|
}
|
|
|
|
public void setHasGlyph(boolean z) {
|
|
this.mHasGlyph = z ? 2 : 1;
|
|
}
|
|
|
|
EmojiMetadata(MetadataRepo metadataRepo, int i) {
|
|
this.mMetadataRepo = metadataRepo;
|
|
this.mIndex = i;
|
|
}
|
|
|
|
public void draw(Canvas canvas, float f, float f2, Paint paint) {
|
|
Typeface typeface = this.mMetadataRepo.getTypeface();
|
|
Typeface typeface2 = paint.getTypeface();
|
|
paint.setTypeface(typeface);
|
|
canvas.drawText(this.mMetadataRepo.getEmojiCharArray(), this.mIndex * 2, 2, f, f2, paint);
|
|
paint.setTypeface(typeface2);
|
|
}
|
|
|
|
public Typeface getTypeface() {
|
|
return this.mMetadataRepo.getTypeface();
|
|
}
|
|
|
|
private MetadataItem getMetadataItem() {
|
|
ThreadLocal<MetadataItem> threadLocal = sMetadataItem;
|
|
MetadataItem metadataItem = threadLocal.get();
|
|
if (metadataItem == null) {
|
|
metadataItem = new MetadataItem();
|
|
threadLocal.set(metadataItem);
|
|
}
|
|
this.mMetadataRepo.getMetadataList().list(metadataItem, this.mIndex);
|
|
return metadataItem;
|
|
}
|
|
|
|
public int getId() {
|
|
return getMetadataItem().id();
|
|
}
|
|
|
|
public short getWidth() {
|
|
return getMetadataItem().width();
|
|
}
|
|
|
|
public short getHeight() {
|
|
return getMetadataItem().height();
|
|
}
|
|
|
|
public short getCompatAdded() {
|
|
return getMetadataItem().compatAdded();
|
|
}
|
|
|
|
public short getSdkAdded() {
|
|
return getMetadataItem().sdkAdded();
|
|
}
|
|
|
|
public boolean isDefaultEmoji() {
|
|
return getMetadataItem().emojiStyle();
|
|
}
|
|
|
|
public int getCodepointAt(int i) {
|
|
return getMetadataItem().codepoints(i);
|
|
}
|
|
|
|
public int getCodepointsLength() {
|
|
return getMetadataItem().codepointsLength();
|
|
}
|
|
|
|
public String toString() {
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append(super.toString());
|
|
sb.append(", id:");
|
|
sb.append(Integer.toHexString(getId()));
|
|
sb.append(", codepoints:");
|
|
int codepointsLength = getCodepointsLength();
|
|
for (int i = 0; i < codepointsLength; i++) {
|
|
sb.append(Integer.toHexString(getCodepointAt(i)));
|
|
sb.append(" ");
|
|
}
|
|
return sb.toString();
|
|
}
|
|
}
|