ARTTextShadowNode.smali
.class public Lcom/facebook/react/views/art/ARTTextShadowNode;
.super Lcom/facebook/react/views/art/ARTShapeShadowNode;
.source "SourceFile"
# static fields
.field private static final DEFAULT_FONT_SIZE:I = 0xc
.field private static final PROP_FONT:Ljava/lang/String; = "font"
.field private static final PROP_FONT_FAMILY:Ljava/lang/String; = "fontFamily"
.field private static final PROP_FONT_SIZE:Ljava/lang/String; = "fontSize"
.field private static final PROP_FONT_STYLE:Ljava/lang/String; = "fontStyle"
.field private static final PROP_FONT_WEIGHT:Ljava/lang/String; = "fontWeight"
.field private static final PROP_LINES:Ljava/lang/String; = "lines"
.field private static final TEXT_ALIGNMENT_CENTER:I = 0x2
.field private static final TEXT_ALIGNMENT_LEFT:I = 0x0
.field private static final TEXT_ALIGNMENT_RIGHT:I = 0x1
# instance fields
.field private mFrame:Lcom/facebook/react/bridge/ReadableMap;
.field private mTextAlignment:I
# direct methods
.method public constructor <init>()V
.registers 2
.line 1
invoke-direct {p0}, Lcom/facebook/react/views/art/ARTShapeShadowNode;-><init>()V
const/4 v0, 0x0
.line 2
iput v0, p0, Lcom/facebook/react/views/art/ARTTextShadowNode;->mTextAlignment:I
return-void
.end method
.method private applyTextPropertiesToPaint(Landroid/graphics/Paint;)V
.registers 9
.line 1
iget v0, p0, Lcom/facebook/react/views/art/ARTTextShadowNode;->mTextAlignment:I
const/4 v1, 0x2
const/4 v2, 0x1
if-eqz v0, :cond_17
if-eq v0, v2, :cond_11
if-eq v0, v1, :cond_b
goto :goto_1c
.line 2
:cond_b
sget-object v0, Landroid/graphics/Paint$Align;->CENTER:Landroid/graphics/Paint$Align;
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V
goto :goto_1c
.line 3
:cond_11
sget-object v0, Landroid/graphics/Paint$Align;->RIGHT:Landroid/graphics/Paint$Align;
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V
goto :goto_1c
.line 4
:cond_17
sget-object v0, Landroid/graphics/Paint$Align;->LEFT:Landroid/graphics/Paint$Align;
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V
.line 5
:goto_1c
iget-object v0, p0, Lcom/facebook/react/views/art/ARTTextShadowNode;->mFrame:Lcom/facebook/react/bridge/ReadableMap;
if-eqz v0, :cond_90
const-string v3, "font"
.line 6
invoke-interface {v0, v3}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_90
.line 7
iget-object v0, p0, Lcom/facebook/react/views/art/ARTTextShadowNode;->mFrame:Lcom/facebook/react/bridge/ReadableMap;
invoke-interface {v0, v3}, Lcom/facebook/react/bridge/ReadableMap;->getMap(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableMap;
move-result-object v0
if-eqz v0, :cond_90
const/high16 v3, 0x41400000 # 12.0f
const-string v4, "fontSize"
.line 8
invoke-interface {v0, v4}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_3f
.line 9
invoke-interface {v0, v4}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v3
double-to-float v3, v3
.line 10
:cond_3f
iget v4, p0, Lcom/facebook/react/views/art/ARTVirtualNode;->mScale:F
mul-float v3, v3, v4
invoke-virtual {p1, v3}, Landroid/graphics/Paint;->setTextSize(F)V
const-string v3, "fontWeight"
.line 11
invoke-interface {v0, v3}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v4
const/4 v5, 0x0
if-eqz v4, :cond_5d
invoke-interface {v0, v3}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
const-string v4, "bold"
invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_5d
const/4 v3, 0x1
goto :goto_5e
:cond_5d
const/4 v3, 0x0
:goto_5e
const-string v4, "fontStyle"
.line 12
invoke-interface {v0, v4}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_74
invoke-interface {v0, v4}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
const-string v6, "italic"
invoke-virtual {v6, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_74
const/4 v4, 0x1
goto :goto_75
:cond_74
const/4 v4, 0x0
:goto_75
if-eqz v3, :cond_7b
if-eqz v4, :cond_7b
const/4 v1, 0x3
goto :goto_83
:cond_7b
if-eqz v3, :cond_7f
const/4 v1, 0x1
goto :goto_83
:cond_7f
if-eqz v4, :cond_82
goto :goto_83
:cond_82
const/4 v1, 0x0
:goto_83
const-string v2, "fontFamily"
.line 13
invoke-interface {v0, v2}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {v0, v1}, Landroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface;
move-result-object v0
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
:cond_90
return-void
.end method
# virtual methods
.method public draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;F)V
.registers 13
.line 1
iget-object v0, p0, Lcom/facebook/react/views/art/ARTTextShadowNode;->mFrame:Lcom/facebook/react/bridge/ReadableMap;
if-nez v0, :cond_5
return-void
.line 2
:cond_5
iget v1, p0, Lcom/facebook/react/views/art/ARTVirtualNode;->mOpacity:F
mul-float p3, p3, v1
const v1, 0x3c23d70a # 0.01f
cmpg-float v1, p3, v1
if-gtz v1, :cond_11
return-void
:cond_11
const-string v1, "lines"
.line 3
invoke-interface {v0, v1}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_1a
return-void
.line 4
:cond_1a
iget-object v0, p0, Lcom/facebook/react/views/art/ARTTextShadowNode;->mFrame:Lcom/facebook/react/bridge/ReadableMap;
invoke-interface {v0, v1}, Lcom/facebook/react/bridge/ReadableMap;->getArray(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableArray;
move-result-object v0
if-eqz v0, :cond_87
.line 5
invoke-interface {v0}, Lcom/facebook/react/bridge/ReadableArray;->size()I
move-result v1
if-nez v1, :cond_29
goto :goto_87
.line 6
:cond_29
invoke-virtual {p0, p1}, Lcom/facebook/react/views/art/ARTVirtualNode;->saveAndSetupCanvas(Landroid/graphics/Canvas;)V
.line 7
invoke-interface {v0}, Lcom/facebook/react/bridge/ReadableArray;->size()I
move-result v1
new-array v2, v1, [Ljava/lang/String;
const/4 v3, 0x0
:goto_33
if-ge v3, v1, :cond_3e
.line 8
invoke-interface {v0, v3}, Lcom/facebook/react/bridge/ReadableArray;->getString(I)Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
add-int/lit8 v3, v3, 0x1
goto :goto_33
:cond_3e
const-string v0, "\n"
.line 9
invoke-static {v0, v2}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
.line 10
invoke-virtual {p0, p2, p3}, Lcom/facebook/react/views/art/ARTShapeShadowNode;->setupStrokePaint(Landroid/graphics/Paint;F)Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_63
.line 11
invoke-direct {p0, p2}, Lcom/facebook/react/views/art/ARTTextShadowNode;->applyTextPropertiesToPaint(Landroid/graphics/Paint;)V
.line 12
iget-object v5, p0, Lcom/facebook/react/views/art/ARTShapeShadowNode;->mPath:Landroid/graphics/Path;
if-nez v5, :cond_5b
.line 13
invoke-virtual {p2}, Landroid/graphics/Paint;->ascent()F
move-result v1
neg-float v1, v1
invoke-virtual {p1, v0, v2, v1, p2}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
goto :goto_63
:cond_5b
const/4 v6, 0x0
const/4 v7, 0x0
move-object v3, p1
move-object v4, v0
move-object v8, p2
.line 14
invoke-virtual/range {v3 .. v8}, Landroid/graphics/Canvas;->drawTextOnPath(Ljava/lang/String;Landroid/graphics/Path;FFLandroid/graphics/Paint;)V
.line 15
:cond_63
:goto_63
invoke-virtual {p0, p2, p3}, Lcom/facebook/react/views/art/ARTShapeShadowNode;->setupFillPaint(Landroid/graphics/Paint;F)Z
move-result p3
if-eqz p3, :cond_81
.line 16
invoke-direct {p0, p2}, Lcom/facebook/react/views/art/ARTTextShadowNode;->applyTextPropertiesToPaint(Landroid/graphics/Paint;)V
.line 17
iget-object v5, p0, Lcom/facebook/react/views/art/ARTShapeShadowNode;->mPath:Landroid/graphics/Path;
if-nez v5, :cond_79
.line 18
invoke-virtual {p2}, Landroid/graphics/Paint;->ascent()F
move-result p3
neg-float p3, p3
invoke-virtual {p1, v0, v2, p3, p2}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
goto :goto_81
:cond_79
const/4 v6, 0x0
const/4 v7, 0x0
move-object v3, p1
move-object v4, v0
move-object v8, p2
.line 19
invoke-virtual/range {v3 .. v8}, Landroid/graphics/Canvas;->drawTextOnPath(Ljava/lang/String;Landroid/graphics/Path;FFLandroid/graphics/Paint;)V
.line 20
:cond_81
:goto_81
invoke-virtual {p0, p1}, Lcom/facebook/react/views/art/ARTVirtualNode;->restoreCanvas(Landroid/graphics/Canvas;)V
.line 21
invoke-virtual {p0}, Lcom/facebook/react/uimanager/ReactShadowNodeImpl;->markUpdateSeen()V
:cond_87
:goto_87
return-void
.end method
.method public setAlignment(I)V
.registers 2
.annotation runtime Lcom/facebook/react/uimanager/annotations/ReactProp;
defaultInt = 0x0
name = "alignment"
.end annotation
iput p1, p0, Lcom/facebook/react/views/art/ARTTextShadowNode;->mTextAlignment:I
return-void
.end method
.method public setFrame(Lcom/facebook/react/bridge/ReadableMap;)V
.registers 2
.annotation runtime Lcom/facebook/react/uimanager/annotations/ReactProp;
name = "frame"
.end annotation
iput-object p1, p0, Lcom/facebook/react/views/art/ARTTextShadowNode;->mFrame:Lcom/facebook/react/bridge/ReadableMap;
return-void
.end method