TSpanView.smali
.class public Lcom/horcrux/svg/TSpanView;
.super Lcom/horcrux/svg/TextView;
.source "TSpanView.java"
# annotations
.annotation build Landroid/annotation/SuppressLint;
value = {
"ViewConstructor"
}
.end annotation
# static fields
.field public static final FONTS:Ljava/lang/String; = "fonts/"
.field public static final OTF:Ljava/lang/String; = ".otf"
.field public static final TTF:Ljava/lang/String; = ".ttf"
.field public static final additionalLigatures:Ljava/lang/String; = "\'hlig\', \'cala\', "
.field public static final defaultFeatures:Ljava/lang/String; = "\'rlig\', \'liga\', \'clig\', \'calt\', \'locl\', \'ccmp\', \'mark\', \'mkmk\',\'kern\', "
.field public static final disableDiscretionaryLigatures:Ljava/lang/String; = "\'liga\' 0, \'clig\' 0, \'dlig\' 0, \'hlig\' 0, \'cala\' 0, "
.field public static final fontWeightTag:Ljava/lang/String; = "\'wght\' "
.field public static final radToDeg:D = 57.29577951308232
.field public static final requiredFontFeatures:Ljava/lang/String; = "\'rlig\', \'liga\', \'clig\', \'calt\', \'locl\', \'ccmp\', \'mark\', \'mkmk\',"
.field public static final tau:D = 6.283185307179586
# instance fields
.field public final assets:Landroid/content/res/AssetManager;
.field public final emoji:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field public final emojiTransforms:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroid/graphics/Matrix;",
">;"
}
.end annotation
.end field
.field public mCachedPath:Landroid/graphics/Path;
.field public mContent:Ljava/lang/String;
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
.end field
.field public textPath:Lcom/horcrux/svg/TextPathView;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lcom/facebook/react/bridge/ReactContext;)V
.registers 2
invoke-direct {p0, p1}, Lcom/horcrux/svg/TextView;-><init>(Lcom/facebook/react/bridge/ReactContext;)V
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
iput-object p1, p0, Lcom/horcrux/svg/TSpanView;->emoji:Ljava/util/ArrayList;
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
iput-object p1, p0, Lcom/horcrux/svg/TSpanView;->emojiTransforms:Ljava/util/ArrayList;
iget-object p1, p0, Lcom/horcrux/svg/VirtualView;->mContext:Lcom/facebook/react/bridge/ReactContext;
invoke-virtual {p1}, Landroid/content/ContextWrapper;->getResources()Landroid/content/res/Resources;
move-result-object p1
invoke-virtual {p1}, Landroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;
move-result-object p1
iput-object p1, p0, Lcom/horcrux/svg/TSpanView;->assets:Landroid/content/res/AssetManager;
return-void
.end method
.method private applySpacingAndFeatures(Landroid/graphics/Paint;Lcom/horcrux/svg/FontData;)V
.registers 9
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_77
iget-wide v0, p2, Lcom/horcrux/svg/FontData;->letterSpacing:D
iget-wide v2, p2, Lcom/horcrux/svg/FontData;->fontSize:D
iget v4, p0, Lcom/horcrux/svg/VirtualView;->mScale:F
float-to-double v4, v4
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
mul-double v2, v2, v4
div-double v2, v0, v2
double-to-float v2, v2
invoke-virtual {p1, v2}, Landroid/graphics/Paint;->setLetterSpacing(F)V
const-wide/16 v2, 0x0
cmpl-double v4, v0, v2
if-nez v4, :cond_26
iget-object v0, p2, Lcom/horcrux/svg/FontData;->fontVariantLigatures:Lcom/horcrux/svg/TextProperties$FontVariantLigatures;
sget-object v1, Lcom/horcrux/svg/TextProperties$FontVariantLigatures;->normal:Lcom/horcrux/svg/TextProperties$FontVariantLigatures;
if-ne v0, v1, :cond_26
const/4 v0, 0x1
goto :goto_27
:cond_26
const/4 v0, 0x0
:goto_27
if-eqz v0, :cond_40
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "\'rlig\', \'liga\', \'clig\', \'calt\', \'locl\', \'ccmp\', \'mark\', \'mkmk\',\'kern\', \'hlig\', \'cala\', "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p2, Lcom/horcrux/svg/FontData;->fontFeatureSettings:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setFontFeatureSettings(Ljava/lang/String;)V
goto :goto_56
:cond_40
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "\'rlig\', \'liga\', \'clig\', \'calt\', \'locl\', \'ccmp\', \'mark\', \'mkmk\',\'kern\', \'liga\' 0, \'clig\' 0, \'dlig\' 0, \'hlig\' 0, \'cala\' 0, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p2, Lcom/horcrux/svg/FontData;->fontFeatureSettings:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setFontFeatureSettings(Ljava/lang/String;)V
:goto_56
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1a
if-lt v0, v1, :cond_77
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "\'wght\' "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p2, Lcom/horcrux/svg/FontData;->absoluteFontWeight:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object p2, p2, Lcom/horcrux/svg/FontData;->fontVariationSettings:Ljava/lang/String;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setFontVariationSettings(Ljava/lang/String;)Z
:cond_77
return-void
.end method
.method private applyTextPropertiesToPaint(Landroid/graphics/Paint;Lcom/horcrux/svg/FontData;)V
.registers 13
iget-object v0, p2, Lcom/horcrux/svg/FontData;->fontWeight:Lcom/horcrux/svg/TextProperties$FontWeight;
sget-object v1, Lcom/horcrux/svg/TextProperties$FontWeight;->Bold:Lcom/horcrux/svg/TextProperties$FontWeight;
const/4 v2, 0x0
const/4 v3, 0x1
if-eq v0, v1, :cond_11
iget v0, p2, Lcom/horcrux/svg/FontData;->absoluteFontWeight:I
const/16 v1, 0x226
if-lt v0, v1, :cond_f
goto :goto_11
:cond_f
const/4 v0, 0x0
goto :goto_12
:cond_11
:goto_11
const/4 v0, 0x1
:goto_12
iget-object v1, p2, Lcom/horcrux/svg/FontData;->fontStyle:Lcom/horcrux/svg/TextProperties$FontStyle;
sget-object v4, Lcom/horcrux/svg/TextProperties$FontStyle;->italic:Lcom/horcrux/svg/TextProperties$FontStyle;
if-ne v1, v4, :cond_1a
const/4 v1, 0x1
goto :goto_1b
:cond_1a
const/4 v1, 0x0
:goto_1b
if-eqz v0, :cond_21
if-eqz v1, :cond_21
const/4 v2, 0x3
goto :goto_28
:cond_21
if-eqz v0, :cond_25
const/4 v2, 0x1
goto :goto_28
:cond_25
if-eqz v1, :cond_28
const/4 v2, 0x2
:cond_28
:goto_28
const/4 v0, 0x0
iget v4, p2, Lcom/horcrux/svg/FontData;->absoluteFontWeight:I
iget-object v5, p2, Lcom/horcrux/svg/FontData;->fontFamily:Ljava/lang/String;
if-eqz v5, :cond_d1
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v6
if-lez v6, :cond_d1
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "fonts/"
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, ".otf"
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v8, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v7, ".ttf"
invoke-virtual {v8, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
sget v8, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v9, 0x1a
if-lt v8, v9, :cond_ba
new-instance v0, Landroid/graphics/Typeface$Builder;
iget-object v8, p0, Lcom/horcrux/svg/TSpanView;->assets:Landroid/content/res/AssetManager;
invoke-direct {v0, v8, v6}, Landroid/graphics/Typeface$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;)V
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "\'wght\' "
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object v9, p2, Lcom/horcrux/svg/FontData;->fontVariationSettings:Ljava/lang/String;
invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-virtual {v0, v6}, Landroid/graphics/Typeface$Builder;->setFontVariationSettings(Ljava/lang/String;)Landroid/graphics/Typeface$Builder;
invoke-virtual {v0, v4}, Landroid/graphics/Typeface$Builder;->setWeight(I)Landroid/graphics/Typeface$Builder;
invoke-virtual {v0, v1}, Landroid/graphics/Typeface$Builder;->setItalic(Z)Landroid/graphics/Typeface$Builder;
invoke-virtual {v0}, Landroid/graphics/Typeface$Builder;->build()Landroid/graphics/Typeface;
move-result-object v0
if-nez v0, :cond_d1
new-instance v0, Landroid/graphics/Typeface$Builder;
iget-object v6, p0, Lcom/horcrux/svg/TSpanView;->assets:Landroid/content/res/AssetManager;
invoke-direct {v0, v6, v7}, Landroid/graphics/Typeface$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;)V
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object v7, p2, Lcom/horcrux/svg/FontData;->fontVariationSettings:Ljava/lang/String;
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-virtual {v0, v6}, Landroid/graphics/Typeface$Builder;->setFontVariationSettings(Ljava/lang/String;)Landroid/graphics/Typeface$Builder;
invoke-virtual {v0, v4}, Landroid/graphics/Typeface$Builder;->setWeight(I)Landroid/graphics/Typeface$Builder;
invoke-virtual {v0, v1}, Landroid/graphics/Typeface$Builder;->setItalic(Z)Landroid/graphics/Typeface$Builder;
invoke-virtual {v0}, Landroid/graphics/Typeface$Builder;->build()Landroid/graphics/Typeface;
move-result-object v0
goto :goto_d1
:cond_ba
:try_start_ba
iget-object v8, p0, Lcom/horcrux/svg/TSpanView;->assets:Landroid/content/res/AssetManager;
invoke-static {v8, v6}, Landroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
move-result-object v0
invoke-static {v0, v2}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v0
:try_end_c4
.catch Ljava/lang/Exception; {:try_start_ba .. :try_end_c4} :catch_c5
goto :goto_d1
:catch_c5
:try_start_c5
iget-object v6, p0, Lcom/horcrux/svg/TSpanView;->assets:Landroid/content/res/AssetManager;
invoke-static {v6, v7}, Landroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
move-result-object v0
invoke-static {v0, v2}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v0
:try_end_cf
.catch Ljava/lang/Exception; {:try_start_c5 .. :try_end_cf} :catch_d0
goto :goto_d1
:catch_d0
nop
:cond_d1
:goto_d1
if-nez v0, :cond_df
:try_start_d3
invoke-static {}, Lcom/facebook/react/views/text/ReactFontManager;->getInstance()Lcom/facebook/react/views/text/ReactFontManager;
move-result-object v6
iget-object v7, p0, Lcom/horcrux/svg/TSpanView;->assets:Landroid/content/res/AssetManager;
invoke-virtual {v6, v5, v2, v7}, Lcom/facebook/react/views/text/ReactFontManager;->getTypeface(Ljava/lang/String;ILandroid/content/res/AssetManager;)Landroid/graphics/Typeface;
move-result-object v0
:try_end_dd
.catch Ljava/lang/Exception; {:try_start_d3 .. :try_end_dd} :catch_de
goto :goto_df
:catch_de
nop
:cond_df
:goto_df
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v5, 0x1c
if-lt v2, v5, :cond_e9
invoke-static {v0, v4, v1}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;IZ)Landroid/graphics/Typeface;
move-result-object v0
:cond_e9
invoke-virtual {p1, v3}, Landroid/graphics/Paint;->setLinearText(Z)V
invoke-virtual {p1, v3}, Landroid/graphics/Paint;->setSubpixelText(Z)V
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
iget-wide v0, p2, Lcom/horcrux/svg/FontData;->fontSize:D
iget p2, p0, Lcom/horcrux/svg/VirtualView;->mScale:F
float-to-double v2, p2
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
mul-double v0, v0, v2
double-to-float p2, v0
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setTextSize(F)V
sget p2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v0, 0x15
if-lt p2, v0, :cond_10a
const/4 p2, 0x0
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setLetterSpacing(F)V
:cond_10a
return-void
.end method
.method private drawWrappedText(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
.registers 21
move-object/from16 v6, p0
move-object/from16 v7, p1
invoke-virtual/range {p0 .. p0}, Lcom/horcrux/svg/GroupView;->getTextRootGlyphContext()Lcom/horcrux/svg/GlyphContext;
move-result-object v8
invoke-virtual/range {p0 .. p0}, Lcom/horcrux/svg/TextView;->pushGlyphContext()V
invoke-virtual {v8}, Lcom/horcrux/svg/GlyphContext;->getFont()Lcom/horcrux/svg/FontData;
move-result-object v0
new-instance v1, Landroid/text/TextPaint;
move-object/from16 v2, p2
invoke-direct {v1, v2}, Landroid/text/TextPaint;-><init>(Landroid/graphics/Paint;)V
invoke-direct {v6, v1, v0}, Lcom/horcrux/svg/TSpanView;->applyTextPropertiesToPaint(Landroid/graphics/Paint;Lcom/horcrux/svg/FontData;)V
invoke-direct {v6, v1, v0}, Lcom/horcrux/svg/TSpanView;->applySpacingAndFeatures(Landroid/graphics/Paint;Lcom/horcrux/svg/FontData;)V
invoke-virtual {v8}, Lcom/horcrux/svg/GlyphContext;->getFontSize()D
move-result-wide v16
sget-object v2, Lcom/horcrux/svg/TSpanView$1;->$SwitchMap$com$horcrux$svg$TextProperties$TextAnchor:[I
iget-object v0, v0, Lcom/horcrux/svg/FontData;->textAnchor:Lcom/horcrux/svg/TextProperties$TextAnchor;
invoke-virtual {v0}, Ljava/lang/Enum;->ordinal()I
move-result v0
aget v0, v2, v0
const/4 v2, 0x2
if-eq v0, v2, :cond_37
const/4 v2, 0x3
if-eq v0, v2, :cond_34
sget-object v0, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;
:goto_32
move-object v2, v0
goto :goto_3a
:cond_34
sget-object v0, Landroid/text/Layout$Alignment;->ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
goto :goto_32
:cond_37
sget-object v0, Landroid/text/Layout$Alignment;->ALIGN_CENTER:Landroid/text/Layout$Alignment;
goto :goto_32
:goto_3a
const/4 v3, 0x1
new-instance v4, Landroid/text/SpannableString;
iget-object v0, v6, Lcom/horcrux/svg/TSpanView;->mContent:Ljava/lang/String;
invoke-direct {v4, v0}, Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
iget-object v9, v6, Lcom/horcrux/svg/TextView;->mInlineSize:Lcom/horcrux/svg/SVGLength;
invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->getWidth()I
move-result v0
int-to-double v10, v0
const-wide/16 v12, 0x0
iget v0, v6, Lcom/horcrux/svg/VirtualView;->mScale:F
float-to-double v14, v0
invoke-static/range {v9 .. v17}, Lcom/horcrux/svg/PropHelper;->fromRelative(Lcom/horcrux/svg/SVGLength;DDDD)D
move-result-wide v9
double-to-int v5, v9
move-object/from16 v0, p0
invoke-direct/range {v0 .. v5}, Lcom/horcrux/svg/TSpanView;->getStaticLayout(Landroid/text/TextPaint;Landroid/text/Layout$Alignment;ZLandroid/text/SpannableString;I)Landroid/text/StaticLayout;
move-result-object v0
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/text/StaticLayout;->getLineAscent(I)I
move-result v1
const-wide/16 v2, 0x0
invoke-virtual {v8, v2, v3}, Lcom/horcrux/svg/GlyphContext;->nextX(D)D
move-result-wide v2
double-to-float v2, v2
invoke-virtual {v8}, Lcom/horcrux/svg/GlyphContext;->nextY()D
move-result-wide v3
int-to-double v8, v1
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
add-double/2addr v3, v8
double-to-float v1, v3
invoke-virtual/range {p0 .. p0}, Lcom/horcrux/svg/GroupView;->popGlyphContext()V
invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->save()I
invoke-virtual {v7, v2, v1}, Landroid/graphics/Canvas;->translate(FF)V
invoke-virtual {v0, v7}, Landroid/text/StaticLayout;->draw(Landroid/graphics/Canvas;)V
invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->restore()V
return-void
.end method
.method private getAbsoluteStartOffset(Lcom/horcrux/svg/SVGLength;DD)D
.registers 16
iget v0, p0, Lcom/horcrux/svg/VirtualView;->mScale:F
float-to-double v6, v0
const-wide/16 v4, 0x0
move-object v1, p1
move-wide v2, p2
move-wide v8, p4
invoke-static/range {v1 .. v9}, Lcom/horcrux/svg/PropHelper;->fromRelative(Lcom/horcrux/svg/SVGLength;DDDD)D
move-result-wide p1
return-wide p1
.end method
.method private getLinePath(Ljava/lang/String;Landroid/graphics/Paint;Landroid/graphics/Canvas;)Landroid/graphics/Path;
.registers 72
move-object/from16 v6, p0
move-object/from16 v14, p2
move-object/from16 v15, p3
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v13
new-instance v12, Landroid/graphics/Path;
invoke-direct {v12}, Landroid/graphics/Path;-><init>()V
iget-object v0, v6, Lcom/horcrux/svg/TSpanView;->emoji:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
iget-object v0, v6, Lcom/horcrux/svg/TSpanView;->emojiTransforms:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
if-nez v13, :cond_1c
return-object v12
:cond_1c
const/4 v0, 0x0
iget-object v1, v6, Lcom/horcrux/svg/TSpanView;->textPath:Lcom/horcrux/svg/TextPathView;
const/4 v11, 0x0
if-eqz v1, :cond_25
const/16 v16, 0x1
goto :goto_27
:cond_25
const/16 v16, 0x0
:goto_27
const-wide/16 v17, 0x0
if-eqz v16, :cond_49
new-instance v0, Landroid/graphics/PathMeasure;
iget-object v1, v6, Lcom/horcrux/svg/TSpanView;->textPath:Lcom/horcrux/svg/TextPathView;
invoke-virtual {v1, v15, v14}, Lcom/horcrux/svg/TextPathView;->getTextPath(Landroid/graphics/Canvas;Landroid/graphics/Paint;)Landroid/graphics/Path;
move-result-object v1
invoke-direct {v0, v1, v11}, Landroid/graphics/PathMeasure;-><init>(Landroid/graphics/Path;Z)V
invoke-virtual {v0}, Landroid/graphics/PathMeasure;->getLength()F
move-result v1
float-to-double v1, v1
invoke-virtual {v0}, Landroid/graphics/PathMeasure;->isClosed()Z
move-result v3
cmpl-double v4, v1, v17
if-nez v4, :cond_44
return-object v12
:cond_44
move-object v9, v0
move-wide v7, v1
move/from16 v19, v3
goto :goto_4e
:cond_49
move-object v9, v0
move-wide/from16 v7, v17
const/16 v19, 0x0
:goto_4e
invoke-virtual/range {p0 .. p0}, Lcom/horcrux/svg/GroupView;->getTextRootGlyphContext()Lcom/horcrux/svg/GlyphContext;
move-result-object v4
invoke-virtual {v4}, Lcom/horcrux/svg/GlyphContext;->getFont()Lcom/horcrux/svg/FontData;
move-result-object v0
invoke-direct {v6, v14, v0}, Lcom/horcrux/svg/TSpanView;->applyTextPropertiesToPaint(Landroid/graphics/Paint;Lcom/horcrux/svg/FontData;)V
new-instance v5, Lcom/horcrux/svg/GlyphPathBag;
invoke-direct {v5, v14}, Lcom/horcrux/svg/GlyphPathBag;-><init>(Landroid/graphics/Paint;)V
new-array v2, v13, [Z
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->toCharArray()[C
move-result-object v20
move-object/from16 v21, v12
iget-wide v11, v0, Lcom/horcrux/svg/FontData;->kerning:D
move-wide/from16 v23, v11
iget-wide v11, v0, Lcom/horcrux/svg/FontData;->wordSpacing:D
move-wide/from16 v26, v11
iget-wide v10, v0, Lcom/horcrux/svg/FontData;->letterSpacing:D
iget-boolean v1, v0, Lcom/horcrux/svg/FontData;->manualKerning:Z
const/4 v3, 0x1
xor-int/lit8 v28, v1, 0x1
cmpl-double v1, v10, v17
if-nez v1, :cond_81
iget-object v1, v0, Lcom/horcrux/svg/FontData;->fontVariantLigatures:Lcom/horcrux/svg/TextProperties$FontVariantLigatures;
sget-object v3, Lcom/horcrux/svg/TextProperties$FontVariantLigatures;->normal:Lcom/horcrux/svg/TextProperties$FontVariantLigatures;
if-ne v1, v3, :cond_81
const/4 v1, 0x1
goto :goto_82
:cond_81
const/4 v1, 0x0
:goto_82
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v12, 0x15
if-lt v3, v12, :cond_d8
if-eqz v1, :cond_a1
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "\'rlig\', \'liga\', \'clig\', \'calt\', \'locl\', \'ccmp\', \'mark\', \'mkmk\',\'kern\', \'hlig\', \'cala\', "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/horcrux/svg/FontData;->fontFeatureSettings:Ljava/lang/String;
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v14, v1}, Landroid/graphics/Paint;->setFontFeatureSettings(Ljava/lang/String;)V
goto :goto_b7
:cond_a1
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "\'rlig\', \'liga\', \'clig\', \'calt\', \'locl\', \'ccmp\', \'mark\', \'mkmk\',\'kern\', \'liga\' 0, \'clig\' 0, \'dlig\' 0, \'hlig\' 0, \'cala\' 0, "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/horcrux/svg/FontData;->fontFeatureSettings:Ljava/lang/String;
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v14, v1}, Landroid/graphics/Paint;->setFontFeatureSettings(Ljava/lang/String;)V
:goto_b7
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v3, 0x1a
if-lt v1, v3, :cond_d8
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "\'wght\' "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, v0, Lcom/horcrux/svg/FontData;->absoluteFontWeight:I
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/horcrux/svg/FontData;->fontVariationSettings:Ljava/lang/String;
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v14, v1}, Landroid/graphics/Paint;->setFontVariationSettings(Ljava/lang/String;)Z
:cond_d8
iget-object v12, v0, Lcom/horcrux/svg/FontData;->fontData:Lcom/facebook/react/bridge/ReadableMap;
new-array v3, v13, [F
move-object/from16 v1, p1
invoke-virtual {v14, v1, v3}, Landroid/graphics/Paint;->getTextWidths(Ljava/lang/String;[F)I
iget-object v1, v0, Lcom/horcrux/svg/FontData;->textAnchor:Lcom/horcrux/svg/TextProperties$TextAnchor;
invoke-virtual/range {p0 .. p0}, Lcom/horcrux/svg/TextView;->getTextAnchorRoot()Lcom/horcrux/svg/TextView;
move-result-object v0
move-object/from16 v29, v9
move-wide/from16 v30, v10
invoke-virtual {v0, v14}, Lcom/horcrux/svg/TextView;->getSubtreeTextChunksTotalAdvance(Landroid/graphics/Paint;)D
move-result-wide v9
invoke-direct {v6, v1, v9, v10}, Lcom/horcrux/svg/TSpanView;->getTextAnchorOffset(Lcom/horcrux/svg/TextProperties$TextAnchor;D)D
move-result-wide v32
invoke-virtual {v4}, Lcom/horcrux/svg/GlyphContext;->getFontSize()D
move-result-wide v43
const-wide/high16 v45, 0x4000000000000000L # 2.0
if-eqz v16, :cond_14d
iget-object v0, v6, Lcom/horcrux/svg/TSpanView;->textPath:Lcom/horcrux/svg/TextPathView;
invoke-virtual {v0}, Lcom/horcrux/svg/TextPathView;->getMidLine()Lcom/horcrux/svg/TextProperties$TextPathMidLine;
move-result-object v0
sget-object v11, Lcom/horcrux/svg/TextProperties$TextPathMidLine;->sharp:Lcom/horcrux/svg/TextProperties$TextPathMidLine;
if-ne v0, v11, :cond_107
const/4 v11, 0x1
goto :goto_108
:cond_107
const/4 v11, 0x0
:goto_108
iget-object v0, v6, Lcom/horcrux/svg/TSpanView;->textPath:Lcom/horcrux/svg/TextPathView;
invoke-virtual {v0}, Lcom/horcrux/svg/TextPathView;->getSide()Lcom/horcrux/svg/TextProperties$TextPathSide;
move-result-object v0
move-object/from16 v34, v1
sget-object v1, Lcom/horcrux/svg/TextProperties$TextPathSide;->right:Lcom/horcrux/svg/TextProperties$TextPathSide;
if-ne v0, v1, :cond_117
const/16 v35, -0x1
goto :goto_119
:cond_117
const/16 v35, 0x1
:goto_119
iget-object v0, v6, Lcom/horcrux/svg/TSpanView;->textPath:Lcom/horcrux/svg/TextPathView;
invoke-virtual {v0}, Lcom/horcrux/svg/TextPathView;->getStartOffset()Lcom/horcrux/svg/SVGLength;
move-result-object v1
move-object/from16 v0, p0
move/from16 v36, v11
move-object/from16 v11, v34
move-object/from16 v47, v2
move-object/from16 v48, v3
move-wide v2, v7
move-object v15, v4
move-object/from16 v49, v5
move-wide/from16 v4, v43
invoke-direct/range {v0 .. v5}, Lcom/horcrux/svg/TSpanView;->getAbsoluteStartOffset(Lcom/horcrux/svg/SVGLength;DD)D
move-result-wide v0
add-double v32, v32, v0
if-eqz v19, :cond_145
div-double v2, v7, v45
sget-object v4, Lcom/horcrux/svg/TextProperties$TextAnchor;->middle:Lcom/horcrux/svg/TextProperties$TextAnchor;
if-ne v11, v4, :cond_13f
neg-double v2, v2
goto :goto_141
:cond_13f
move-wide/from16 v2, v17
:goto_141
add-double/2addr v0, v2
add-double v2, v0, v7
goto :goto_148
:cond_145
move-wide v2, v7
move-wide/from16 v0, v17
:goto_148
move/from16 v4, v35
move/from16 v5, v36
goto :goto_159
:cond_14d
move-object/from16 v47, v2
move-object/from16 v48, v3
move-object v15, v4
move-object/from16 v49, v5
move-wide v2, v7
move-wide/from16 v0, v17
const/4 v4, 0x1
const/4 v5, 0x0
:goto_159
const-wide/high16 v50, 0x3ff0000000000000L # 1.0
iget-object v11, v6, Lcom/horcrux/svg/TextView;->mTextLength:Lcom/horcrux/svg/SVGLength;
move-wide/from16 v52, v7
if-eqz v11, :cond_1a4
invoke-virtual/range {p3 .. p3}, Landroid/graphics/Canvas;->getWidth()I
move-result v8
int-to-double v7, v8
const-wide/16 v37, 0x0
move/from16 v54, v5
iget v5, v6, Lcom/horcrux/svg/VirtualView;->mScale:F
move-wide/from16 v55, v0
float-to-double v0, v5
move-object/from16 v34, v11
move-wide/from16 v35, v7
move-wide/from16 v39, v0
move-wide/from16 v41, v43
invoke-static/range {v34 .. v42}, Lcom/horcrux/svg/PropHelper;->fromRelative(Lcom/horcrux/svg/SVGLength;DDDD)D
move-result-wide v0
cmpg-double v5, v0, v17
if-ltz v5, :cond_19c
sget-object v5, Lcom/horcrux/svg/TSpanView$1;->$SwitchMap$com$horcrux$svg$TextProperties$TextLengthAdjust:[I
iget-object v7, v6, Lcom/horcrux/svg/TextView;->mLengthAdjust:Lcom/horcrux/svg/TextProperties$TextLengthAdjust;
invoke-virtual {v7}, Ljava/lang/Enum;->ordinal()I
move-result v7
aget v5, v5, v7
const/4 v7, 0x2
if-eq v5, v7, :cond_199
sub-double/2addr v0, v9
add-int/lit8 v5, v13, -0x1
int-to-double v7, v5
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v0, v7
add-double v10, v30, v0
move-wide/from16 v30, v10
goto :goto_1a8
:cond_199
div-double v50, v0, v9
goto :goto_1a8
:cond_19c
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Negative textLength value"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1a4
move-wide/from16 v55, v0
move/from16 v54, v5
:goto_1a8
int-to-double v0, v4
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
mul-double v10, v50, v0
invoke-virtual/range {p2 .. p2}, Landroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
move-result-object v5
iget v7, v5, Landroid/graphics/Paint$FontMetrics;->descent:F
float-to-double v7, v7
iget v9, v5, Landroid/graphics/Paint$FontMetrics;->leading:F
move-wide/from16 v41, v10
float-to-double v10, v9
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v10, v11}, Ljava/lang/Double;->isNaN(D)Z
add-double/2addr v10, v7
move/from16 v57, v4
iget v4, v5, Landroid/graphics/Paint$FontMetrics;->ascent:F
neg-float v4, v4
add-float/2addr v4, v9
move-wide/from16 v58, v2
float-to-double v2, v4
iget v4, v5, Landroid/graphics/Paint$FontMetrics;->top:F
neg-float v4, v4
float-to-double v4, v4
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
add-double v34, v4, v10
invoke-virtual/range {p0 .. p0}, Lcom/horcrux/svg/TextView;->getBaselineShift()Ljava/lang/String;
move-result-object v9
invoke-virtual/range {p0 .. p0}, Lcom/horcrux/svg/TextView;->getAlignmentBaseline()Lcom/horcrux/svg/TextProperties$AlignmentBaseline;
move-result-object v36
if-eqz v36, :cond_22e
sget-object v37, Lcom/horcrux/svg/TSpanView$1;->$SwitchMap$com$horcrux$svg$TextProperties$AlignmentBaseline:[I
invoke-virtual/range {v36 .. v36}, Ljava/lang/Enum;->ordinal()I
move-result v38
aget v37, v37, v38
packed-switch v37, :pswitch_data_5ac
goto :goto_22e
:pswitch_1e9
move-wide v10, v4
goto :goto_20a
:pswitch_1eb
div-double v10, v34, v45
goto :goto_20a
:pswitch_1ee
move-wide v10, v2
goto :goto_20a
:pswitch_1f0
const-wide v4, 0x3fe999999999999aL # 0.8
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
goto :goto_1fe
:pswitch_1f9
const-wide/high16 v4, 0x3fe0000000000000L # 0.5
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
:goto_1fe
mul-double v10, v2, v4
goto :goto_20a
:pswitch_201
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
sub-double/2addr v2, v7
div-double v10, v2, v45
:goto_20a
:pswitch_20a
const/4 v4, 0x0
goto :goto_231
:pswitch_20c
new-instance v2, Landroid/graphics/Rect;
invoke-direct {v2}, Landroid/graphics/Rect;-><init>()V
const-string v3, "x"
const/4 v4, 0x0
const/4 v5, 0x1
invoke-virtual {v14, v3, v4, v5, v2}, Landroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
invoke-virtual {v2}, Landroid/graphics/Rect;->height()I
move-result v2
int-to-double v2, v2
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
div-double v10, v2, v45
goto :goto_231
:pswitch_223
const/4 v4, 0x0
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
goto :goto_22c
:pswitch_228
const/4 v4, 0x0
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
:goto_22c
neg-double v10, v7
goto :goto_231
:cond_22e
:goto_22e
:pswitch_22e
const/4 v4, 0x0
move-wide/from16 v10, v17
:goto_231
if-eqz v9, :cond_319
invoke-virtual {v9}, Ljava/lang/String;->isEmpty()Z
move-result v2
if-nez v2, :cond_319
sget-object v2, Lcom/horcrux/svg/TSpanView$1;->$SwitchMap$com$horcrux$svg$TextProperties$AlignmentBaseline:[I
invoke-virtual/range {v36 .. v36}, Ljava/lang/Enum;->ordinal()I
move-result v3
aget v2, v2, v3
const/16 v3, 0xe
if-eq v2, v3, :cond_319
const/16 v3, 0x10
if-eq v2, v3, :cond_319
invoke-virtual {v9}, Ljava/lang/String;->hashCode()I
move-result v2
const v3, -0x669119bb
if-eq v2, v3, :cond_271
const v3, 0x1be40
if-eq v2, v3, :cond_267
const v3, 0x68b6f7b
if-eq v2, v3, :cond_25d
goto :goto_27b
:cond_25d
const-string v2, "super"
invoke-virtual {v9, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_27b
const/4 v2, 0x1
goto :goto_27c
:cond_267
const-string v2, "sub"
invoke-virtual {v9, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_27b
const/4 v2, 0x0
goto :goto_27c
:cond_271
const-string v2, "baseline"
invoke-virtual {v9, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_27b
const/4 v2, 0x2
goto :goto_27c
:cond_27b
:goto_27b
const/4 v2, -0x1
:goto_27c
const-string v3, "os2"
const-string v5, "unitsPerEm"
const-string v7, "tables"
if-eqz v2, :cond_2dd
const/4 v8, 0x1
if-eq v2, v8, :cond_2a0
const/4 v8, 0x2
if-eq v2, v8, :cond_319
iget v2, v6, Lcom/horcrux/svg/VirtualView;->mScale:F
float-to-double v7, v2
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
mul-double v35, v7, v43
float-to-double v2, v2
move-object/from16 v34, v9
move-wide/from16 v37, v2
move-wide/from16 v39, v43
invoke-static/range {v34 .. v40}, Lcom/horcrux/svg/PropHelper;->fromRelative(Ljava/lang/String;DDD)D
move-result-wide v2
sub-double/2addr v10, v2
goto/16 :goto_319
:cond_2a0
if-eqz v12, :cond_319
invoke-interface {v12, v7}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_319
invoke-interface {v12, v5}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_319
invoke-interface {v12, v5}, Lcom/facebook/react/bridge/ReadableMap;->getInt(Ljava/lang/String;)I
move-result v2
invoke-interface {v12, v7}, Lcom/facebook/react/bridge/ReadableMap;->getMap(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableMap;
move-result-object v5
invoke-interface {v5, v3}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v7
if-eqz v7, :cond_319
invoke-interface {v5, v3}, Lcom/facebook/react/bridge/ReadableMap;->getMap(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableMap;
move-result-object v3
const-string v5, "ySuperscriptYOffset"
invoke-interface {v3, v5}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v7
if-eqz v7, :cond_319
invoke-interface {v3, v5}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v7
iget v3, v6, Lcom/horcrux/svg/VirtualView;->mScale:F
float-to-double v4, v3
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
mul-double v4, v4, v43
mul-double v4, v4, v7
int-to-double v2, v2
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v4, v2
sub-double/2addr v10, v4
goto :goto_319
:cond_2dd
if-eqz v12, :cond_319
invoke-interface {v12, v7}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_319
invoke-interface {v12, v5}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_319
invoke-interface {v12, v5}, Lcom/facebook/react/bridge/ReadableMap;->getInt(Ljava/lang/String;)I
move-result v2
invoke-interface {v12, v7}, Lcom/facebook/react/bridge/ReadableMap;->getMap(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableMap;
move-result-object v4
invoke-interface {v4, v3}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_319
invoke-interface {v4, v3}, Lcom/facebook/react/bridge/ReadableMap;->getMap(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableMap;
move-result-object v3
const-string v4, "ySubscriptYOffset"
invoke-interface {v3, v4}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_319
invoke-interface {v3, v4}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v3
iget v5, v6, Lcom/horcrux/svg/VirtualView;->mScale:F
float-to-double v7, v5
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
mul-double v7, v7, v43
mul-double v7, v7, v3
int-to-double v2, v2
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v7, v2
add-double/2addr v10, v7
:cond_319
:goto_319
move-wide v2, v10
new-instance v4, Landroid/graphics/Matrix;
invoke-direct {v4}, Landroid/graphics/Matrix;-><init>()V
new-instance v5, Landroid/graphics/Matrix;
invoke-direct {v5}, Landroid/graphics/Matrix;-><init>()V
new-instance v12, Landroid/graphics/Matrix;
invoke-direct {v12}, Landroid/graphics/Matrix;-><init>()V
const/16 v7, 0x9
new-array v11, v7, [F
new-array v10, v7, [F
const/4 v9, 0x0
:goto_330
if-ge v9, v13, :cond_5a8
aget-char v7, v20, v9
invoke-static {v7}, Ljava/lang/String;->valueOf(C)Ljava/lang/String;
move-result-object v8
aget-boolean v34, v47, v9
if-eqz v34, :cond_343
const-string v8, ""
move-object v6, v8
move/from16 v35, v13
const/4 v8, 0x0
goto :goto_37a
:cond_343
move-object/from16 v60, v8
move/from16 v25, v9
const/4 v8, 0x0
:goto_348
const/16 v35, 0x1
add-int/lit8 v6, v25, 0x1
if-ge v6, v13, :cond_375
aget v35, v48, v6
const/16 v36, 0x0
cmpl-float v35, v35, v36
if-lez v35, :cond_357
goto :goto_375
:cond_357
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
move/from16 v35, v13
move-object/from16 v13, v60
invoke-virtual {v8, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget-char v13, v20, v6
invoke-virtual {v8, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v60
const/4 v8, 0x1
aput-boolean v8, v47, v6
move/from16 v25, v6
move/from16 v13, v35
const/4 v8, 0x1
goto :goto_348
:cond_375
:goto_375
move/from16 v35, v13
move-object/from16 v13, v60
move-object v6, v13
:goto_37a
invoke-virtual {v14, v6}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F
move-result v13
float-to-double v13, v13
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
mul-double v13, v13, v50
move-object/from16 v36, v6
if-eqz v28, :cond_398
aget v6, v48, v9
move/from16 v38, v8
move/from16 v37, v9
float-to-double v8, v6
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
mul-double v8, v8, v50
sub-double/2addr v8, v13
move-wide/from16 v23, v8
goto :goto_39c
:cond_398
move/from16 v38, v8
move/from16 v37, v9
:goto_39c
const/16 v6, 0x20
if-ne v7, v6, :cond_3a2
const/4 v6, 0x1
goto :goto_3a3
:cond_3a2
const/4 v6, 0x0
:goto_3a3
if-eqz v6, :cond_3a8
move-wide/from16 v8, v26
goto :goto_3aa
:cond_3a8
move-wide/from16 v8, v17
:goto_3aa
add-double v8, v8, v30
add-double/2addr v8, v13
if-eqz v34, :cond_3b4
move-wide/from16 v43, v2
move-wide/from16 v2, v17
goto :goto_3ba
:cond_3b4
add-double v39, v23, v8
move-wide/from16 v43, v2
move-wide/from16 v2, v39
:goto_3ba
invoke-virtual {v15, v2, v3}, Lcom/horcrux/svg/GlyphContext;->nextX(D)D
move-result-wide v2
move-object/from16 v40, v10
move-object/from16 v39, v11
invoke-virtual {v15}, Lcom/horcrux/svg/GlyphContext;->nextY()D
move-result-wide v10
invoke-virtual {v15}, Lcom/horcrux/svg/GlyphContext;->nextDeltaX()D
move-result-wide v60
invoke-virtual {v15}, Lcom/horcrux/svg/GlyphContext;->nextDeltaY()D
move-result-wide v62
move-wide/from16 v64, v10
invoke-virtual {v15}, Lcom/horcrux/svg/GlyphContext;->nextRotation()D
move-result-wide v10
if-nez v34, :cond_561
if-eqz v6, :cond_3da
goto/16 :goto_561
:cond_3da
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
mul-double v8, v8, v0
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
mul-double v13, v13, v0
add-double v2, v2, v60
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
mul-double v2, v2, v0
add-double v2, v32, v2
sub-double/2addr v2, v8
if-eqz v16, :cond_4a2
add-double v8, v2, v13
div-double v13, v13, v45
move/from16 v34, v7
add-double v6, v2, v13
cmpl-double v60, v6, v58
if-lez v60, :cond_3fe
goto/16 :goto_561
:cond_3fe
cmpg-double v60, v6, v55
if-gez v60, :cond_404
goto/16 :goto_561
:cond_404
move-object/from16 v60, v15
const/4 v15, 0x3
if-eqz v54, :cond_414
double-to-float v2, v6
move-object/from16 v3, v29
invoke-virtual {v3, v2, v5, v15}, Landroid/graphics/PathMeasure;->getMatrix(FLandroid/graphics/Matrix;I)Z
move-object v15, v3
move-wide/from16 v66, v10
goto/16 :goto_489
:cond_414
move-object/from16 v15, v29
cmpg-double v61, v2, v17
if-gez v61, :cond_427
move-wide/from16 v66, v10
const/4 v10, 0x3
const/4 v11, 0x0
invoke-virtual {v15, v11, v4, v10}, Landroid/graphics/PathMeasure;->getMatrix(FLandroid/graphics/Matrix;I)Z
double-to-float v2, v2
invoke-virtual {v4, v2, v11}, Landroid/graphics/Matrix;->preTranslate(FF)Z
const/4 v10, 0x1
goto :goto_42e
:cond_427
move-wide/from16 v66, v10
double-to-float v2, v2
const/4 v10, 0x1
invoke-virtual {v15, v2, v4, v10}, Landroid/graphics/PathMeasure;->getMatrix(FLandroid/graphics/Matrix;I)Z
:goto_42e
double-to-float v2, v6
invoke-virtual {v15, v2, v5, v10}, Landroid/graphics/PathMeasure;->getMatrix(FLandroid/graphics/Matrix;I)Z
cmpl-double v2, v8, v52
if-lez v2, :cond_444
move-wide/from16 v6, v52
double-to-float v2, v6
const/4 v3, 0x3
invoke-virtual {v15, v2, v12, v3}, Landroid/graphics/PathMeasure;->getMatrix(FLandroid/graphics/Matrix;I)Z
sub-double/2addr v8, v6
double-to-float v2, v8
const/4 v3, 0x0
invoke-virtual {v12, v2, v3}, Landroid/graphics/Matrix;->preTranslate(FF)Z
goto :goto_44a
:cond_444
move-wide/from16 v6, v52
double-to-float v2, v8
invoke-virtual {v15, v2, v12, v10}, Landroid/graphics/PathMeasure;->getMatrix(FLandroid/graphics/Matrix;I)Z
:goto_44a
move-object/from16 v11, v39
invoke-virtual {v4, v11}, Landroid/graphics/Matrix;->getValues([F)V
move-object/from16 v9, v40
invoke-virtual {v12, v9}, Landroid/graphics/Matrix;->getValues([F)V
const/4 v8, 0x2
aget v2, v11, v8
float-to-double v2, v2
const/16 v19, 0x5
aget v10, v11, v19
move-wide/from16 v52, v6
float-to-double v6, v10
aget v10, v9, v8
move-object/from16 v39, v11
float-to-double v10, v10
aget v8, v9, v19
float-to-double v8, v8
invoke-static {v10, v11}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
sub-double/2addr v10, v2
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z
sub-double/2addr v8, v6
invoke-static {v8, v9, v10, v11}, Ljava/lang/Math;->atan2(DD)D
move-result-wide v2
const-wide v6, 0x404ca5dc1a63c1f8L # 57.29577951308232
mul-double v2, v2, v6
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
mul-double v2, v2, v0
double-to-float v2, v2
invoke-virtual {v5, v2}, Landroid/graphics/Matrix;->preRotate(F)Z
:goto_489
neg-double v2, v13
double-to-float v2, v2
add-double v6, v62, v43
double-to-float v3, v6
invoke-virtual {v5, v2, v3}, Landroid/graphics/Matrix;->preTranslate(FF)Z
move-wide/from16 v10, v41
double-to-float v2, v10
move/from16 v6, v57
int-to-float v3, v6
invoke-virtual {v5, v2, v3}, Landroid/graphics/Matrix;->preScale(FF)Z
move-wide/from16 v7, v64
double-to-float v2, v7
const/4 v3, 0x0
invoke-virtual {v5, v3, v2}, Landroid/graphics/Matrix;->postTranslate(FF)Z
goto :goto_4b9
:cond_4a2
move/from16 v34, v7
move-wide/from16 v66, v10
move-object/from16 v60, v15
move-object/from16 v15, v29
move-wide/from16 v10, v41
move/from16 v6, v57
move-wide/from16 v7, v64
double-to-float v2, v2
add-double v7, v7, v62
add-double v7, v7, v43
double-to-float v3, v7
invoke-virtual {v5, v2, v3}, Landroid/graphics/Matrix;->setTranslate(FF)V
:goto_4b9
move-wide/from16 v2, v66
double-to-float v2, v2
invoke-virtual {v5, v2}, Landroid/graphics/Matrix;->preRotate(F)Z
if-eqz v38, :cond_4f9
new-instance v2, Landroid/graphics/Path;
invoke-direct {v2}, Landroid/graphics/Path;-><init>()V
const/4 v9, 0x0
invoke-virtual/range {v36 .. v36}, Ljava/lang/String;->length()I
move-result v3
const/4 v13, 0x0
const/4 v14, 0x0
move-wide/from16 v41, v52
const/16 v19, 0x2
move-object/from16 v7, p2
move-object/from16 v8, v36
move-object/from16 v34, v15
move/from16 v29, v37
move-object/from16 v15, v40
move-wide/from16 v37, v10
const/4 v11, 0x1
move v10, v3
move-wide/from16 v25, v26
move-object/from16 v3, v39
const/16 v22, 0x0
move v11, v13
move-object/from16 v13, v21
move-object/from16 v21, v12
move v12, v14
move-wide/from16 v39, v0
move-object v0, v13
move/from16 v14, v35
move-object v13, v2
invoke-virtual/range {v7 .. v13}, Landroid/graphics/Paint;->getTextPath(Ljava/lang/String;IIFFLandroid/graphics/Path;)V
move-object/from16 v13, v36
move-object/from16 v1, v49
goto :goto_51d
:cond_4f9
move-wide/from16 v25, v26
move/from16 v2, v34
move/from16 v14, v35
move-object/from16 v13, v36
move/from16 v29, v37
move-object/from16 v3, v39
move-wide/from16 v41, v52
const/16 v19, 0x2
const/16 v22, 0x0
move-wide/from16 v37, v10
move-object/from16 v34, v15
move-object/from16 v15, v40
move-wide/from16 v39, v0
move-object/from16 v0, v21
move-object/from16 v1, v49
move-object/from16 v21, v12
invoke-virtual {v1, v2, v13}, Lcom/horcrux/svg/GlyphPathBag;->getOrCreateAndCache(CLjava/lang/String;)Landroid/graphics/Path;
move-result-object v2
:goto_51d
new-instance v7, Landroid/graphics/RectF;
invoke-direct {v7}, Landroid/graphics/RectF;-><init>()V
const/4 v8, 0x1
invoke-virtual {v2, v7, v8}, Landroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V
invoke-virtual {v7}, Landroid/graphics/RectF;->width()F
move-result v7
const/4 v9, 0x0
cmpl-float v7, v7, v9
if-nez v7, :cond_553
invoke-virtual/range {p3 .. p3}, Landroid/graphics/Canvas;->save()I
move-object v7, v1
move-object/from16 v1, p3
invoke-virtual {v1, v5}, Landroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V
const/4 v2, 0x0
move-object/from16 v9, p0
iget-object v10, v9, Lcom/horcrux/svg/TSpanView;->emoji:Ljava/util/ArrayList;
invoke-virtual {v10, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
iget-object v10, v9, Lcom/horcrux/svg/TSpanView;->emojiTransforms:Ljava/util/ArrayList;
new-instance v11, Landroid/graphics/Matrix;
invoke-direct {v11, v5}, Landroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V
invoke-virtual {v10, v11}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
move-object/from16 v10, p2
invoke-virtual {v1, v13, v2, v2, v10}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
invoke-virtual/range {p3 .. p3}, Landroid/graphics/Canvas;->restore()V
goto :goto_588
:cond_553
move-object/from16 v9, p0
move-object/from16 v10, p2
move-object v7, v1
move-object/from16 v1, p3
invoke-virtual {v2, v5}, Landroid/graphics/Path;->transform(Landroid/graphics/Matrix;)V
invoke-virtual {v0, v2}, Landroid/graphics/Path;->addPath(Landroid/graphics/Path;)V
goto :goto_588
:cond_561
:goto_561
const/4 v8, 0x1
const/16 v19, 0x2
const/16 v22, 0x0
move-object/from16 v9, p0
move-object/from16 v10, p2
move-object/from16 v60, v15
move-wide/from16 v25, v26
move-object/from16 v34, v29
move/from16 v14, v35
move/from16 v29, v37
move-object/from16 v3, v39
move-object/from16 v15, v40
move-wide/from16 v37, v41
move-object/from16 v7, v49
move-wide/from16 v41, v52
move/from16 v6, v57
move-wide/from16 v39, v0
move-object/from16 v0, v21
move-object/from16 v1, p3
move-object/from16 v21, v12
:goto_588
add-int/lit8 v2, v29, 0x1
move-object v11, v3
move/from16 v57, v6
move-object/from16 v49, v7
move-object v6, v9
move v13, v14
move-object/from16 v12, v21
move-wide/from16 v26, v25
move-object/from16 v29, v34
move-wide/from16 v52, v41
move-object/from16 v21, v0
move v9, v2
move-object v14, v10
move-object v10, v15
move-wide/from16 v41, v37
move-wide/from16 v0, v39
move-wide/from16 v2, v43
move-object/from16 v15, v60
goto/16 :goto_330
:cond_5a8
move-object v9, v6
move-object/from16 v0, v21
return-object v0
:pswitch_data_5ac
.packed-switch 0x2
:pswitch_228
:pswitch_228
:pswitch_228
:pswitch_22e
:pswitch_223
:pswitch_20c
:pswitch_201
:pswitch_1f9
:pswitch_1f0
:pswitch_1ee
:pswitch_1ee
:pswitch_1ee
:pswitch_20a
:pswitch_1eb
:pswitch_1e9
.end packed-switch
.end method
.method private getStaticLayout(Landroid/text/TextPaint;Landroid/text/Layout$Alignment;ZLandroid/text/SpannableString;I)Landroid/text/StaticLayout;
.registers 16
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x17
if-ge v0, v1, :cond_15
new-instance v0, Landroid/text/StaticLayout;
const/high16 v7, 0x3f800000 # 1.0f
const/4 v8, 0x0
move-object v2, v0
move-object v3, p4
move-object v4, p1
move v5, p5
move-object v6, p2
move v9, p3
invoke-direct/range {v2 .. v9}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
return-object v0
:cond_15
const/4 v0, 0x0
invoke-virtual {p4}, Landroid/text/SpannableString;->length()I
move-result v1
invoke-static {p4, v0, v1, p1, p5}, Landroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
move-result-object p1
invoke-virtual {p1, p2}, Landroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;
move-result-object p1
const/4 p2, 0x0
const/high16 p4, 0x3f800000 # 1.0f
invoke-virtual {p1, p2, p4}, Landroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
move-result-object p1
invoke-virtual {p1, p3}, Landroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
move-result-object p1
const/4 p2, 0x1
invoke-virtual {p1, p2}, Landroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder;
move-result-object p1
invoke-virtual {p1, p2}, Landroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
move-result-object p1
invoke-virtual {p1}, Landroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout;
move-result-object p1
return-object p1
.end method
.method private getTextAnchorOffset(Lcom/horcrux/svg/TextProperties$TextAnchor;D)D
.registers 6
sget-object v0, Lcom/horcrux/svg/TSpanView$1;->$SwitchMap$com$horcrux$svg$TextProperties$TextAnchor:[I
invoke-virtual {p1}, Ljava/lang/Enum;->ordinal()I
move-result p1
aget p1, v0, p1
const/4 v0, 0x2
if-eq p1, v0, :cond_13
const/4 v0, 0x3
if-eq p1, v0, :cond_11
const-wide/16 p1, 0x0
return-wide p1
:cond_11
neg-double p1, p2
return-wide p1
:cond_13
neg-double p1, p2
const-wide/high16 v0, 0x4000000000000000L # 2.0
div-double/2addr p1, v0
return-wide p1
.end method
.method private setupTextPath()V
.registers 4
invoke-virtual {p0}, Landroid/view/ViewGroup;->getParent()Landroid/view/ViewParent;
move-result-object v0
:goto_4
if-eqz v0, :cond_1d
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
const-class v2, Lcom/horcrux/svg/TextPathView;
if-ne v1, v2, :cond_13
check-cast v0, Lcom/horcrux/svg/TextPathView;
iput-object v0, p0, Lcom/horcrux/svg/TSpanView;->textPath:Lcom/horcrux/svg/TextPathView;
goto :goto_1d
:cond_13
instance-of v1, v0, Lcom/horcrux/svg/TextView;
if-nez v1, :cond_18
goto :goto_1d
:cond_18
invoke-interface {v0}, Landroid/view/ViewParent;->getParent()Landroid/view/ViewParent;
move-result-object v0
goto :goto_4
:cond_1d
:goto_1d
return-void
.end method
.method public static visualToLogical(Ljava/lang/String;)Ljava/lang/String;
.registers 10
if-eqz p0, :cond_66
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_66
:cond_9
new-instance v0, Ljava/text/Bidi;
const/4 v1, -0x2
invoke-direct {v0, p0, v1}, Ljava/text/Bidi;-><init>(Ljava/lang/String;I)V
invoke-virtual {v0}, Ljava/text/Bidi;->isLeftToRight()Z
move-result v1
if-eqz v1, :cond_16
return-object p0
:cond_16
invoke-virtual {v0}, Ljava/text/Bidi;->getRunCount()I
move-result v1
new-array v2, v1, [B
new-array v3, v1, [Ljava/lang/Integer;
const/4 v4, 0x0
const/4 v5, 0x0
:goto_20
if-ge v5, v1, :cond_32
invoke-virtual {v0, v5}, Ljava/text/Bidi;->getRunLevel(I)I
move-result v6
int-to-byte v6, v6
aput-byte v6, v2, v5
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
aput-object v6, v3, v5
add-int/lit8 v5, v5, 0x1
goto :goto_20
:cond_32
invoke-static {v2, v4, v3, v4, v1}, Ljava/text/Bidi;->reorderVisually([BI[Ljava/lang/Object;II)V
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
:goto_3a
if-ge v4, v1, :cond_62
aget-object v6, v3, v4
invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
move-result v6
invoke-virtual {v0, v6}, Ljava/text/Bidi;->getRunStart(I)I
move-result v7
invoke-virtual {v0, v6}, Ljava/text/Bidi;->getRunLimit(I)I
move-result v8
aget-byte v6, v2, v6
and-int/lit8 v6, v6, 0x1
if-eqz v6, :cond_5c
:goto_50
add-int/lit8 v8, v8, -0x1
if-lt v8, v7, :cond_5f
invoke-virtual {p0, v8}, Ljava/lang/String;->charAt(I)C
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_50
:cond_5c
invoke-virtual {v5, p0, v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
:cond_5f
add-int/lit8 v4, v4, 0x1
goto :goto_3a
:cond_62
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
:cond_66
:goto_66
return-object p0
.end method
# virtual methods
.method public clearCache()V
.registers 2
const/4 v0, 0x0
iput-object v0, p0, Lcom/horcrux/svg/TSpanView;->mCachedPath:Landroid/graphics/Path;
invoke-super {p0}, Lcom/horcrux/svg/TextView;->clearCache()V
return-void
.end method
.method public draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;F)V
.registers 9
iget-object v0, p0, Lcom/horcrux/svg/TSpanView;->mContent:Ljava/lang/String;
if-eqz v0, :cond_65
iget-object v0, p0, Lcom/horcrux/svg/TextView;->mInlineSize:Lcom/horcrux/svg/SVGLength;
if-eqz v0, :cond_2b
iget-wide v0, v0, Lcom/horcrux/svg/SVGLength;->value:D
const-wide/16 v2, 0x0
cmpl-double v4, v0, v2
if-eqz v4, :cond_2b
iget v0, p0, Lcom/horcrux/svg/RenderableView;->fillOpacity:F
mul-float v0, v0, p3
invoke-virtual {p0, p2, v0}, Lcom/horcrux/svg/RenderableView;->setupFillPaint(Landroid/graphics/Paint;F)Z
move-result v0
if-eqz v0, :cond_1d
invoke-direct {p0, p1, p2}, Lcom/horcrux/svg/TSpanView;->drawWrappedText(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
:cond_1d
iget v0, p0, Lcom/horcrux/svg/RenderableView;->strokeOpacity:F
mul-float p3, p3, v0
invoke-virtual {p0, p2, p3}, Lcom/horcrux/svg/RenderableView;->setupStrokePaint(Landroid/graphics/Paint;F)Z
move-result p3
if-eqz p3, :cond_6b
invoke-direct {p0, p1, p2}, Lcom/horcrux/svg/TSpanView;->drawWrappedText(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
goto :goto_6b
:cond_2b
iget-object v0, p0, Lcom/horcrux/svg/TSpanView;->emoji:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
if-lez v0, :cond_61
invoke-virtual {p0}, Lcom/horcrux/svg/GroupView;->getTextRootGlyphContext()Lcom/horcrux/svg/GlyphContext;
move-result-object v1
invoke-virtual {v1}, Lcom/horcrux/svg/GlyphContext;->getFont()Lcom/horcrux/svg/FontData;
move-result-object v1
invoke-direct {p0, p2, v1}, Lcom/horcrux/svg/TSpanView;->applyTextPropertiesToPaint(Landroid/graphics/Paint;Lcom/horcrux/svg/FontData;)V
const/4 v1, 0x0
:goto_3f
if-ge v1, v0, :cond_61
iget-object v2, p0, Lcom/horcrux/svg/TSpanView;->emoji:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
iget-object v3, p0, Lcom/horcrux/svg/TSpanView;->emojiTransforms:Ljava/util/ArrayList;
invoke-virtual {v3, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroid/graphics/Matrix;
invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I
invoke-virtual {p1, v3}, Landroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V
const/4 v3, 0x0
invoke-virtual {p1, v2, v3, v3, p2}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V
add-int/lit8 v1, v1, 0x1
goto :goto_3f
:cond_61
invoke-virtual {p0, p1, p2, p3}, Lcom/horcrux/svg/GroupView;->drawPath(Landroid/graphics/Canvas;Landroid/graphics/Paint;F)V
goto :goto_6b
:cond_65
invoke-virtual {p0, p1, p2}, Lcom/horcrux/svg/VirtualView;->clip(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
invoke-virtual {p0, p1, p2, p3}, Lcom/horcrux/svg/GroupView;->drawGroup(Landroid/graphics/Canvas;Landroid/graphics/Paint;F)V
:cond_6b
:goto_6b
return-void
.end method
.method public getPath(Landroid/graphics/Canvas;Landroid/graphics/Paint;)Landroid/graphics/Path;
.registers 4
iget-object v0, p0, Lcom/horcrux/svg/TSpanView;->mCachedPath:Landroid/graphics/Path;
if-eqz v0, :cond_5
return-object v0
:cond_5
iget-object v0, p0, Lcom/horcrux/svg/TSpanView;->mContent:Ljava/lang/String;
if-nez v0, :cond_10
invoke-virtual {p0, p1, p2}, Lcom/horcrux/svg/TextView;->getGroupPath(Landroid/graphics/Canvas;Landroid/graphics/Paint;)Landroid/graphics/Path;
move-result-object p1
iput-object p1, p0, Lcom/horcrux/svg/TSpanView;->mCachedPath:Landroid/graphics/Path;
return-object p1
:cond_10
invoke-direct {p0}, Lcom/horcrux/svg/TSpanView;->setupTextPath()V
invoke-virtual {p0}, Lcom/horcrux/svg/TextView;->pushGlyphContext()V
iget-object v0, p0, Lcom/horcrux/svg/TSpanView;->mContent:Ljava/lang/String;
invoke-static {v0}, Lcom/horcrux/svg/TSpanView;->visualToLogical(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0, p2, p1}, Lcom/horcrux/svg/TSpanView;->getLinePath(Ljava/lang/String;Landroid/graphics/Paint;Landroid/graphics/Canvas;)Landroid/graphics/Path;
move-result-object p1
iput-object p1, p0, Lcom/horcrux/svg/TSpanView;->mCachedPath:Landroid/graphics/Path;
invoke-virtual {p0}, Lcom/horcrux/svg/GroupView;->popGlyphContext()V
iget-object p1, p0, Lcom/horcrux/svg/TSpanView;->mCachedPath:Landroid/graphics/Path;
return-object p1
.end method
.method public getSubtreeTextChunksTotalAdvance(Landroid/graphics/Paint;)D
.registers 7
iget-wide v0, p0, Lcom/horcrux/svg/TextView;->cachedAdvance:D
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
move-result v0
if-nez v0, :cond_b
iget-wide v0, p0, Lcom/horcrux/svg/TextView;->cachedAdvance:D
return-wide v0
:cond_b
iget-object v0, p0, Lcom/horcrux/svg/TSpanView;->mContent:Ljava/lang/String;
const-wide/16 v1, 0x0
if-nez v0, :cond_2d
const/4 v0, 0x0
:goto_12
invoke-virtual {p0}, Landroid/view/ViewGroup;->getChildCount()I
move-result v3
if-ge v0, v3, :cond_2a
invoke-virtual {p0, v0}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
move-result-object v3
instance-of v4, v3, Lcom/horcrux/svg/TextView;
if-eqz v4, :cond_27
check-cast v3, Lcom/horcrux/svg/TextView;
invoke-virtual {v3, p1}, Lcom/horcrux/svg/TextView;->getSubtreeTextChunksTotalAdvance(Landroid/graphics/Paint;)D
move-result-wide v3
add-double/2addr v1, v3
:cond_27
add-int/lit8 v0, v0, 0x1
goto :goto_12
:cond_2a
iput-wide v1, p0, Lcom/horcrux/svg/TextView;->cachedAdvance:D
return-wide v1
:cond_2d
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v3
if-nez v3, :cond_36
iput-wide v1, p0, Lcom/horcrux/svg/TextView;->cachedAdvance:D
return-wide v1
:cond_36
invoke-virtual {p0}, Lcom/horcrux/svg/GroupView;->getTextRootGlyphContext()Lcom/horcrux/svg/GlyphContext;
move-result-object v1
invoke-virtual {v1}, Lcom/horcrux/svg/GlyphContext;->getFont()Lcom/horcrux/svg/FontData;
move-result-object v1
invoke-direct {p0, p1, v1}, Lcom/horcrux/svg/TSpanView;->applyTextPropertiesToPaint(Landroid/graphics/Paint;Lcom/horcrux/svg/FontData;)V
invoke-direct {p0, p1, v1}, Lcom/horcrux/svg/TSpanView;->applySpacingAndFeatures(Landroid/graphics/Paint;Lcom/horcrux/svg/FontData;)V
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F
move-result p1
float-to-double v0, p1
iput-wide v0, p0, Lcom/horcrux/svg/TextView;->cachedAdvance:D
return-wide v0
.end method
.method public hitTest([F)I
.registers 5
iget-object v0, p0, Lcom/horcrux/svg/TSpanView;->mContent:Ljava/lang/String;
if-nez v0, :cond_9
invoke-super {p0, p1}, Lcom/horcrux/svg/GroupView;->hitTest([F)I
move-result p1
return p1
:cond_9
iget-object v0, p0, Lcom/horcrux/svg/VirtualView;->mPath:Landroid/graphics/Path;
const/4 v1, -0x1
if-eqz v0, :cond_5e
iget-boolean v0, p0, Lcom/horcrux/svg/VirtualView;->mInvertible:Z
if-eqz v0, :cond_5e
iget-boolean v0, p0, Lcom/horcrux/svg/VirtualView;->mTransformInvertible:Z
if-nez v0, :cond_17
goto :goto_5e
:cond_17
const/4 v0, 0x2
new-array v0, v0, [F
iget-object v2, p0, Lcom/horcrux/svg/VirtualView;->mInvMatrix:Landroid/graphics/Matrix;
invoke-virtual {v2, v0, p1}, Landroid/graphics/Matrix;->mapPoints([F[F)V
iget-object p1, p0, Lcom/horcrux/svg/VirtualView;->mInvTransform:Landroid/graphics/Matrix;
invoke-virtual {p1, v0}, Landroid/graphics/Matrix;->mapPoints([F)V
const/4 p1, 0x0
aget p1, v0, p1
invoke-static {p1}, Ljava/lang/Math;->round(F)I
move-result p1
const/4 v2, 0x1
aget v0, v0, v2
invoke-static {v0}, Ljava/lang/Math;->round(F)I
move-result v0
invoke-virtual {p0}, Lcom/horcrux/svg/RenderableView;->initBounds()V
iget-object v2, p0, Lcom/horcrux/svg/VirtualView;->mRegion:Landroid/graphics/Region;
if-eqz v2, :cond_3f
invoke-virtual {v2, p1, v0}, Landroid/graphics/Region;->contains(II)Z
move-result v2
if-nez v2, :cond_4a
:cond_3f
iget-object v2, p0, Lcom/horcrux/svg/VirtualView;->mStrokeRegion:Landroid/graphics/Region;
if-eqz v2, :cond_5e
invoke-virtual {v2, p1, v0}, Landroid/graphics/Region;->contains(II)Z
move-result v2
if-nez v2, :cond_4a
goto :goto_5e
:cond_4a
invoke-virtual {p0}, Lcom/horcrux/svg/VirtualView;->getClipPath()Landroid/graphics/Path;
move-result-object v2
if-eqz v2, :cond_59
iget-object v2, p0, Lcom/horcrux/svg/VirtualView;->mClipRegion:Landroid/graphics/Region;
invoke-virtual {v2, p1, v0}, Landroid/graphics/Region;->contains(II)Z
move-result p1
if-nez p1, :cond_59
return v1
:cond_59
invoke-virtual {p0}, Landroid/view/ViewGroup;->getId()I
move-result p1
return p1
:cond_5e
:goto_5e
return v1
.end method
.method public invalidate()V
.registers 2
const/4 v0, 0x0
iput-object v0, p0, Lcom/horcrux/svg/TSpanView;->mCachedPath:Landroid/graphics/Path;
invoke-super {p0}, Lcom/horcrux/svg/TextView;->invalidate()V
return-void
.end method
.method public setContent(Ljava/lang/String;)V
.registers 2
.param p1 # Ljava/lang/String;
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
.end param
.annotation runtime Lcom/facebook/react/uimanager/annotations/ReactProp;
name = "content"
.end annotation
iput-object p1, p0, Lcom/horcrux/svg/TSpanView;->mContent:Ljava/lang/String;
invoke-virtual {p0}, Lcom/horcrux/svg/TSpanView;->invalidate()V
return-void
.end method