RNSVGRenderableManager.smali
.class Lcom/horcrux/svg/RNSVGRenderableManager;
.super Lcom/facebook/react/bridge/ReactContextBaseJavaModule;
.source "SourceFile"
# direct methods
.method public constructor <init>(Lcom/facebook/react/bridge/ReactApplicationContext;)V
.registers 2
invoke-direct {p0, p1}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;-><init>(Lcom/facebook/react/bridge/ReactApplicationContext;)V
return-void
.end method
# virtual methods
.method public getBBox(ILcom/facebook/react/bridge/ReadableMap;)Lcom/facebook/react/bridge/WritableMap;
.registers 8
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
isBlockingSynchronousMethod = true
.end annotation
.line 1
invoke-static {p1}, Lcom/horcrux/svg/RenderableViewManager;->getRenderableViewByTag(I)Lcom/horcrux/svg/RenderableView;
move-result-object p1
const/4 v0, 0x0
if-nez p1, :cond_8
return-object v0
:cond_8
const-string v1, "fill"
.line 2
invoke-interface {p2, v1}, Lcom/facebook/react/bridge/ReadableMap;->getBoolean(Ljava/lang/String;)Z
move-result v1
const-string v2, "stroke"
.line 3
invoke-interface {p2, v2}, Lcom/facebook/react/bridge/ReadableMap;->getBoolean(Ljava/lang/String;)Z
move-result v2
const-string v3, "markers"
.line 4
invoke-interface {p2, v3}, Lcom/facebook/react/bridge/ReadableMap;->getBoolean(Ljava/lang/String;)Z
move-result v3
const-string v4, "clipped"
.line 5
invoke-interface {p2, v4}, Lcom/facebook/react/bridge/ReadableMap;->getBoolean(Ljava/lang/String;)Z
move-result p2
.line 6
invoke-virtual {p1, v0, v0}, Lcom/horcrux/svg/RenderableView;->getPath(Landroid/graphics/Canvas;Landroid/graphics/Paint;)Landroid/graphics/Path;
.line 7
iget v0, p1, Lcom/horcrux/svg/VirtualView;->mScale:F
.line 8
invoke-virtual {p1}, Lcom/horcrux/svg/RenderableView;->initBounds()V
.line 9
new-instance v4, Landroid/graphics/RectF;
invoke-direct {v4}, Landroid/graphics/RectF;-><init>()V
if-eqz v1, :cond_34
.line 10
iget-object v1, p1, Lcom/horcrux/svg/VirtualView;->mFillBounds:Landroid/graphics/RectF;
invoke-virtual {v4, v1}, Landroid/graphics/RectF;->union(Landroid/graphics/RectF;)V
:cond_34
if-eqz v2, :cond_3b
.line 11
iget-object v1, p1, Lcom/horcrux/svg/VirtualView;->mStrokeBounds:Landroid/graphics/RectF;
invoke-virtual {v4, v1}, Landroid/graphics/RectF;->union(Landroid/graphics/RectF;)V
:cond_3b
if-eqz v3, :cond_42
.line 12
iget-object v1, p1, Lcom/horcrux/svg/VirtualView;->mMarkerBounds:Landroid/graphics/RectF;
invoke-virtual {v4, v1}, Landroid/graphics/RectF;->union(Landroid/graphics/RectF;)V
:cond_42
if-eqz p2, :cond_4b
.line 13
iget-object p1, p1, Lcom/horcrux/svg/VirtualView;->mClipBounds:Landroid/graphics/RectF;
if-eqz p1, :cond_4b
.line 14
invoke-virtual {v4, p1}, Landroid/graphics/RectF;->intersect(Landroid/graphics/RectF;)Z
.line 15
:cond_4b
invoke-static {}, Lcom/facebook/react/bridge/Arguments;->createMap()Lcom/facebook/react/bridge/WritableMap;
move-result-object p1
.line 16
iget p2, v4, Landroid/graphics/RectF;->left:F
div-float/2addr p2, v0
float-to-double v1, p2
const-string p2, "x"
invoke-interface {p1, p2, v1, v2}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
.line 17
iget p2, v4, Landroid/graphics/RectF;->top:F
div-float/2addr p2, v0
float-to-double v1, p2
const-string p2, "y"
invoke-interface {p1, p2, v1, v2}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
.line 18
invoke-virtual {v4}, Landroid/graphics/RectF;->width()F
move-result p2
div-float/2addr p2, v0
float-to-double v1, p2
const-string p2, "width"
invoke-interface {p1, p2, v1, v2}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
.line 19
invoke-virtual {v4}, Landroid/graphics/RectF;->height()F
move-result p2
div-float/2addr p2, v0
float-to-double v0, p2
const-string p2, "height"
invoke-interface {p1, p2, v0, v1}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
return-object p1
.end method
.method public getCTM(I)Lcom/facebook/react/bridge/WritableMap;
.registers 7
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
isBlockingSynchronousMethod = true
.end annotation
.line 1
invoke-static {p1}, Lcom/horcrux/svg/RenderableViewManager;->getRenderableViewByTag(I)Lcom/horcrux/svg/RenderableView;
move-result-object p1
if-nez p1, :cond_8
const/4 p1, 0x0
return-object p1
.line 2
:cond_8
iget v0, p1, Lcom/horcrux/svg/VirtualView;->mScale:F
.line 3
new-instance v1, Landroid/graphics/Matrix;
iget-object v2, p1, Lcom/horcrux/svg/VirtualView;->mCTM:Landroid/graphics/Matrix;
invoke-direct {v1, v2}, Landroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V
.line 4
invoke-virtual {p1}, Lcom/horcrux/svg/VirtualView;->getSvgView()Lcom/horcrux/svg/SvgView;
move-result-object p1
iget-object p1, p1, Lcom/horcrux/svg/SvgView;->mInvViewBoxMatrix:Landroid/graphics/Matrix;
.line 5
invoke-virtual {v1, p1}, Landroid/graphics/Matrix;->preConcat(Landroid/graphics/Matrix;)Z
const/16 p1, 0x9
new-array p1, p1, [F
.line 6
invoke-virtual {v1, p1}, Landroid/graphics/Matrix;->getValues([F)V
.line 7
invoke-static {}, Lcom/facebook/react/bridge/Arguments;->createMap()Lcom/facebook/react/bridge/WritableMap;
move-result-object v1
const/4 v2, 0x0
aget v2, p1, v2
float-to-double v2, v2
const-string v4, "a"
.line 8
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x3
aget v2, p1, v2
float-to-double v2, v2
const-string v4, "b"
.line 9
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x1
aget v2, p1, v2
float-to-double v2, v2
const-string v4, "c"
.line 10
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x4
aget v2, p1, v2
float-to-double v2, v2
const-string v4, "d"
.line 11
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x2
aget v2, p1, v2
div-float/2addr v2, v0
float-to-double v2, v2
const-string v4, "e"
.line 12
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x5
aget p1, p1, v2
div-float/2addr p1, v0
float-to-double v2, p1
const-string p1, "f"
.line 13
invoke-interface {v1, p1, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
return-object v1
.end method
.method public getName()Ljava/lang/String;
.registers 2
const-string v0, "RNSVGRenderableManager"
return-object v0
.end method
.method public getPointAtLength(ILcom/facebook/react/bridge/ReadableMap;)Lcom/facebook/react/bridge/WritableMap;
.registers 10
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
isBlockingSynchronousMethod = true
.end annotation
.line 1
invoke-static {p1}, Lcom/horcrux/svg/RenderableViewManager;->getRenderableViewByTag(I)Lcom/horcrux/svg/RenderableView;
move-result-object p1
const/4 v0, 0x0
if-nez p1, :cond_8
return-object v0
.line 2
:cond_8
invoke-virtual {p1, v0, v0}, Lcom/horcrux/svg/RenderableView;->getPath(Landroid/graphics/Canvas;Landroid/graphics/Paint;)Landroid/graphics/Path;
move-result-object v0
.line 3
new-instance v1, Landroid/graphics/PathMeasure;
const/4 v2, 0x0
invoke-direct {v1, v0, v2}, Landroid/graphics/PathMeasure;-><init>(Landroid/graphics/Path;Z)V
const-string v0, "length"
.line 4
invoke-interface {p2, v0}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v3
double-to-float p2, v3
.line 5
iget p1, p1, Lcom/horcrux/svg/VirtualView;->mScale:F
const/4 v0, 0x2
new-array v3, v0, [F
new-array v0, v0, [F
const/4 v4, 0x0
.line 6
invoke-virtual {v1}, Landroid/graphics/PathMeasure;->getLength()F
move-result v5
invoke-static {p2, v5}, Ljava/lang/Math;->min(FF)F
move-result p2
invoke-static {v4, p2}, Ljava/lang/Math;->max(FF)F
move-result p2
.line 7
invoke-virtual {v1, p2, v3, v0}, Landroid/graphics/PathMeasure;->getPosTan(F[F[F)Z
const/4 p2, 0x1
aget v1, v0, p2
float-to-double v4, v1
aget v0, v0, v2
float-to-double v0, v0
.line 8
invoke-static {v4, v5, v0, v1}, Ljava/lang/Math;->atan2(DD)D
move-result-wide v0
.line 9
invoke-static {}, Lcom/facebook/react/bridge/Arguments;->createMap()Lcom/facebook/react/bridge/WritableMap;
move-result-object v4
aget v2, v3, v2
div-float/2addr v2, p1
float-to-double v5, v2
const-string v2, "x"
.line 10
invoke-interface {v4, v2, v5, v6}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
aget p2, v3, p2
div-float/2addr p2, p1
float-to-double p1, p2
const-string v2, "y"
.line 11
invoke-interface {v4, v2, p1, p2}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const-string p1, "angle"
.line 12
invoke-interface {v4, p1, v0, v1}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
return-object v4
.end method
.method public getScreenCTM(I)Lcom/facebook/react/bridge/WritableMap;
.registers 7
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
isBlockingSynchronousMethod = true
.end annotation
.line 1
invoke-static {p1}, Lcom/horcrux/svg/RenderableViewManager;->getRenderableViewByTag(I)Lcom/horcrux/svg/RenderableView;
move-result-object p1
if-nez p1, :cond_8
const/4 p1, 0x0
return-object p1
:cond_8
const/16 v0, 0x9
new-array v0, v0, [F
.line 2
iget-object v1, p1, Lcom/horcrux/svg/VirtualView;->mCTM:Landroid/graphics/Matrix;
invoke-virtual {v1, v0}, Landroid/graphics/Matrix;->getValues([F)V
.line 3
iget p1, p1, Lcom/horcrux/svg/VirtualView;->mScale:F
.line 4
invoke-static {}, Lcom/facebook/react/bridge/Arguments;->createMap()Lcom/facebook/react/bridge/WritableMap;
move-result-object v1
const/4 v2, 0x0
aget v2, v0, v2
float-to-double v2, v2
const-string v4, "a"
.line 5
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x3
aget v2, v0, v2
float-to-double v2, v2
const-string v4, "b"
.line 6
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x1
aget v2, v0, v2
float-to-double v2, v2
const-string v4, "c"
.line 7
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x4
aget v2, v0, v2
float-to-double v2, v2
const-string v4, "d"
.line 8
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x2
aget v2, v0, v2
div-float/2addr v2, p1
float-to-double v2, v2
const-string v4, "e"
.line 9
invoke-interface {v1, v4, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
const/4 v2, 0x5
aget v0, v0, v2
div-float/2addr v0, p1
float-to-double v2, v0
const-string p1, "f"
.line 10
invoke-interface {v1, p1, v2, v3}, Lcom/facebook/react/bridge/WritableMap;->putDouble(Ljava/lang/String;D)V
return-object v1
.end method
.method public getTotalLength(I)F
.registers 5
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
isBlockingSynchronousMethod = true
.end annotation
.line 1
invoke-static {p1}, Lcom/horcrux/svg/RenderableViewManager;->getRenderableViewByTag(I)Lcom/horcrux/svg/RenderableView;
move-result-object p1
if-nez p1, :cond_8
const/4 p1, 0x0
return p1
:cond_8
const/4 v0, 0x0
.line 2
invoke-virtual {p1, v0, v0}, Lcom/horcrux/svg/RenderableView;->getPath(Landroid/graphics/Canvas;Landroid/graphics/Paint;)Landroid/graphics/Path;
move-result-object v0
.line 3
new-instance v1, Landroid/graphics/PathMeasure;
const/4 v2, 0x0
invoke-direct {v1, v0, v2}, Landroid/graphics/PathMeasure;-><init>(Landroid/graphics/Path;Z)V
.line 4
invoke-virtual {v1}, Landroid/graphics/PathMeasure;->getLength()F
move-result v0
iget p1, p1, Lcom/horcrux/svg/VirtualView;->mScale:F
div-float/2addr v0, p1
return v0
.end method
.method public isPointInFill(ILcom/facebook/react/bridge/ReadableMap;)Z
.registers 8
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
isBlockingSynchronousMethod = true
.end annotation
.line 1
invoke-static {p1}, Lcom/horcrux/svg/RenderableViewManager;->getRenderableViewByTag(I)Lcom/horcrux/svg/RenderableView;
move-result-object p1
const/4 v0, 0x0
if-nez p1, :cond_8
return v0
.line 2
:cond_8
iget v1, p1, Lcom/horcrux/svg/VirtualView;->mScale:F
const-string v2, "x"
.line 3
invoke-interface {p2, v2}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v2
double-to-float v2, v2
mul-float v2, v2, v1
const-string v3, "y"
.line 4
invoke-interface {p2, v3}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v3
double-to-float p2, v3
mul-float p2, p2, v1
const/4 v1, 0x2
new-array v1, v1, [F
aput v2, v1, v0
const/4 v2, 0x1
aput p2, v1, v2
.line 5
invoke-virtual {p1, v1}, Lcom/horcrux/svg/RenderableView;->hitTest([F)I
move-result p1
const/4 p2, -0x1
if-eq p1, p2, :cond_2c
const/4 v0, 0x1
:cond_2c
return v0
.end method
.method public isPointInStroke(ILcom/facebook/react/bridge/ReadableMap;)Z
.registers 9
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
isBlockingSynchronousMethod = true
.end annotation
.line 1
invoke-static {p1}, Lcom/horcrux/svg/RenderableViewManager;->getRenderableViewByTag(I)Lcom/horcrux/svg/RenderableView;
move-result-object p1
const/4 v0, 0x0
if-nez p1, :cond_8
return v0
:cond_8
const/4 v1, 0x0
.line 2
invoke-virtual {p1, v1, v1}, Lcom/horcrux/svg/RenderableView;->getPath(Landroid/graphics/Canvas;Landroid/graphics/Paint;)Landroid/graphics/Path;
.line 3
invoke-virtual {p1}, Lcom/horcrux/svg/RenderableView;->initBounds()V
.line 4
iget v1, p1, Lcom/horcrux/svg/VirtualView;->mScale:F
const-string v2, "x"
.line 5
invoke-interface {p2, v2}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v2
float-to-double v4, v1
mul-double v2, v2, v4
double-to-int v1, v2
const-string v2, "y"
.line 6
invoke-interface {p2, v2}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v2
mul-double v2, v2, v4
double-to-int p2, v2
.line 7
iget-object p1, p1, Lcom/horcrux/svg/VirtualView;->mStrokeRegion:Landroid/graphics/Region;
if-eqz p1, :cond_2f
.line 8
invoke-virtual {p1, v1, p2}, Landroid/graphics/Region;->contains(II)Z
move-result p1
if-eqz p1, :cond_2f
const/4 v0, 0x1
:cond_2f
return v0
.end method