Skip to content

Commit 864d761

Browse files
committed
Support useNativeDriver animation for all unit-less numbers
1 parent a2550c3 commit 864d761

28 files changed

+922
-242
lines changed

android/src/main/java/com/horcrux/svg/CircleShadowNode.java

+21-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
import android.graphics.Canvas;
1414
import android.graphics.Paint;
1515
import android.graphics.Path;
16+
17+
import com.facebook.react.bridge.Dynamic;
18+
import com.facebook.react.bridge.ReadableType;
1619
import com.facebook.react.uimanager.annotations.ReactProp;
1720

1821
/**
@@ -25,20 +28,32 @@ class CircleShadowNode extends RenderableShadowNode {
2528
private String mR;
2629

2730
@ReactProp(name = "cx")
28-
public void setCx(String cx) {
29-
mCx = cx;
31+
public void setCx(Dynamic cx) {
32+
if (cx.getType() == ReadableType.String) {
33+
mCx = cx.asString();
34+
} else {
35+
mCx = String.valueOf(cx.asDouble());
36+
}
3037
markUpdated();
3138
}
3239

3340
@ReactProp(name = "cy")
34-
public void setCy(String cy) {
35-
mCy = cy;
41+
public void setCy(Dynamic cy) {
42+
if (cy.getType() == ReadableType.String) {
43+
mCy = cy.asString();
44+
} else {
45+
mCy = String.valueOf(cy.asDouble());
46+
}
3647
markUpdated();
3748
}
3849

3950
@ReactProp(name = "r")
40-
public void setR(String r) {
41-
mR = r;
51+
public void setR(Dynamic r) {
52+
if (r.getType() == ReadableType.String) {
53+
mR = r.asString();
54+
} else {
55+
mR = String.valueOf(r.asDouble());
56+
}
4257
markUpdated();
4358
}
4459

android/src/main/java/com/horcrux/svg/EllipseShadowNode.java

+26-8
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import android.graphics.Path;
1515
import android.graphics.RectF;
1616

17+
import com.facebook.react.bridge.Dynamic;
18+
import com.facebook.react.bridge.ReadableType;
1719
import com.facebook.react.uimanager.annotations.ReactProp;
1820

1921
/**
@@ -27,26 +29,42 @@ class EllipseShadowNode extends RenderableShadowNode {
2729
private String mRy;
2830

2931
@ReactProp(name = "cx")
30-
public void setCx(String cx) {
31-
mCx = cx;
32+
public void setCx(Dynamic cx) {
33+
if (cx.getType() == ReadableType.String) {
34+
mCx = cx.asString();
35+
} else {
36+
mCx = String.valueOf(cx.asDouble());
37+
}
3238
markUpdated();
3339
}
3440

3541
@ReactProp(name = "cy")
36-
public void setCy(String cy) {
37-
mCy = cy;
42+
public void setCy(Dynamic cy) {
43+
if (cy.getType() == ReadableType.String) {
44+
mCy = cy.asString();
45+
} else {
46+
mCy = String.valueOf(cy.asDouble());
47+
}
3848
markUpdated();
3949
}
4050

4151
@ReactProp(name = "rx")
42-
public void setRx(String rx) {
43-
mRx = rx;
52+
public void setRx(Dynamic rx) {
53+
if (rx.getType() == ReadableType.String) {
54+
mRx = rx.asString();
55+
} else {
56+
mRx = String.valueOf(rx.asDouble());
57+
}
4458
markUpdated();
4559
}
4660

4761
@ReactProp(name = "ry")
48-
public void setRy(String ry) {
49-
mRy = ry;
62+
public void setRy(Dynamic ry) {
63+
if (ry.getType() == ReadableType.String) {
64+
mRy = ry.asString();
65+
} else {
66+
mRy = String.valueOf(ry.asDouble());
67+
}
5068
markUpdated();
5169
}
5270

android/src/main/java/com/horcrux/svg/ImageShadowNode.java

+26-10
Original file line numberDiff line numberDiff line change
@@ -66,26 +66,42 @@ class ImageShadowNode extends RenderableShadowNode {
6666
private Matrix mMatrix = null;
6767

6868
@ReactProp(name = "x")
69-
public void setX(String x) {
70-
mX = x;
69+
public void setX(Dynamic x) {
70+
if (x.getType() == ReadableType.String) {
71+
mX = x.asString();
72+
} else {
73+
mX = String.valueOf(x.asDouble());
74+
}
7175
markUpdated();
7276
}
7377

7478
@ReactProp(name = "y")
75-
public void setY(String y) {
76-
mY = y;
79+
public void setY(Dynamic y) {
80+
if (y.getType() == ReadableType.String) {
81+
mY = y.asString();
82+
} else {
83+
mY = String.valueOf(y.asDouble());
84+
}
7785
markUpdated();
7886
}
7987

80-
@ReactProp(name = "imagewidth")
81-
public void setWidth(String width) {
82-
mW = width;
88+
@ReactProp(name = "width")
89+
public void setWidth(Dynamic width) {
90+
if (width.getType() == ReadableType.String) {
91+
mW = width.asString();
92+
} else {
93+
mW = String.valueOf(width.asDouble());
94+
}
8395
markUpdated();
8496
}
8597

86-
@ReactProp(name = "imageheight")
87-
public void seHeight(String height) {
88-
mH = height;
98+
@ReactProp(name = "height")
99+
public void seHeight(Dynamic height) {
100+
if (height.getType() == ReadableType.String) {
101+
mH = height.asString();
102+
} else {
103+
mH = String.valueOf(height.asDouble());
104+
}
89105
markUpdated();
90106
}
91107

android/src/main/java/com/horcrux/svg/LineShadowNode.java

+27-8
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import android.graphics.Canvas;
1313
import android.graphics.Paint;
1414
import android.graphics.Path;
15+
16+
import com.facebook.react.bridge.Dynamic;
17+
import com.facebook.react.bridge.ReadableType;
1518
import com.facebook.react.uimanager.annotations.ReactProp;
1619

1720
/**
@@ -25,26 +28,42 @@ class LineShadowNode extends RenderableShadowNode {
2528
private String mY2;
2629

2730
@ReactProp(name = "x1")
28-
public void setX1(String x1) {
29-
mX1 = x1;
31+
public void setX1(Dynamic x1) {
32+
if (x1.getType() == ReadableType.String) {
33+
mX1 = x1.asString();
34+
} else {
35+
mX1 = String.valueOf(x1.asDouble());
36+
}
3037
markUpdated();
3138
}
3239

3340
@ReactProp(name = "y1")
34-
public void setY1(String y1) {
35-
mY1 = y1;
41+
public void setY1(Dynamic y1) {
42+
if (y1.getType() == ReadableType.String) {
43+
mY1 = y1.asString();
44+
} else {
45+
mY1 = String.valueOf(y1.asDouble());
46+
}
3647
markUpdated();
3748
}
3849

3950
@ReactProp(name = "x2")
40-
public void setX2(String x2) {
41-
mX2 = x2;
51+
public void setX2(Dynamic x2) {
52+
if (x2.getType() == ReadableType.String) {
53+
mX2 = x2.asString();
54+
} else {
55+
mX2 = String.valueOf(x2.asDouble());
56+
}
4257
markUpdated();
4358
}
4459

4560
@ReactProp(name = "y2")
46-
public void setY2(String y2) {
47-
mY2 = y2;
61+
public void setY2(Dynamic y2) {
62+
if (y2.getType() == ReadableType.String) {
63+
mY2 = y2.asString();
64+
} else {
65+
mY2 = String.valueOf(y2.asDouble());
66+
}
4867
markUpdated();
4968
}
5069

android/src/main/java/com/horcrux/svg/LinearGradientShadowNode.java

+27-8
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313

1414
import com.facebook.common.logging.FLog;
1515
import com.facebook.react.bridge.Arguments;
16+
import com.facebook.react.bridge.Dynamic;
1617
import com.facebook.react.bridge.ReadableArray;
18+
import com.facebook.react.bridge.ReadableType;
1719
import com.facebook.react.bridge.WritableArray;
1820
import com.facebook.react.common.ReactConstants;
1921
import com.facebook.react.uimanager.annotations.ReactProp;
@@ -39,27 +41,44 @@ class LinearGradientShadowNode extends DefinitionShadowNode {
3941
};
4042
private Matrix mMatrix = null;
4143

44+
4245
@ReactProp(name = "x1")
43-
public void setX1(String x1) {
44-
mX1 = x1;
46+
public void setX1(Dynamic x1) {
47+
if (x1.getType() == ReadableType.String) {
48+
mX1 = x1.asString();
49+
} else {
50+
mX1 = String.valueOf(x1.asDouble());
51+
}
4552
markUpdated();
4653
}
4754

4855
@ReactProp(name = "y1")
49-
public void setY1(String y1) {
50-
mY1 = y1;
56+
public void setY1(Dynamic y1) {
57+
if (y1.getType() == ReadableType.String) {
58+
mY1 = y1.asString();
59+
} else {
60+
mY1 = String.valueOf(y1.asDouble());
61+
}
5162
markUpdated();
5263
}
5364

5465
@ReactProp(name = "x2")
55-
public void setX2(String x2) {
56-
mX2 = x2;
66+
public void setX2(Dynamic x2) {
67+
if (x2.getType() == ReadableType.String) {
68+
mX2 = x2.asString();
69+
} else {
70+
mX2 = String.valueOf(x2.asDouble());
71+
}
5772
markUpdated();
5873
}
5974

6075
@ReactProp(name = "y2")
61-
public void setY2(String y2) {
62-
mY2 = y2;
76+
public void setY2(Dynamic y2) {
77+
if (y2.getType() == ReadableType.String) {
78+
mY2 = y2.asString();
79+
} else {
80+
mY2 = String.valueOf(y2.asDouble());
81+
}
6382
markUpdated();
6483
}
6584

android/src/main/java/com/horcrux/svg/MaskShadowNode.java

+28-10
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
import android.graphics.Matrix;
1313

1414
import com.facebook.common.logging.FLog;
15+
import com.facebook.react.bridge.Dynamic;
1516
import com.facebook.react.bridge.ReadableArray;
17+
import com.facebook.react.bridge.ReadableType;
1618
import com.facebook.react.common.ReactConstants;
1719
import com.facebook.react.uimanager.annotations.ReactProp;
1820

@@ -38,26 +40,42 @@ class MaskShadowNode extends GroupShadowNode {
3840
private Matrix mMatrix = null;
3941

4042
@ReactProp(name = "x")
41-
public void setX(String x) {
42-
mX = x;
43+
public void setX(Dynamic x) {
44+
if (x.getType() == ReadableType.String) {
45+
mX = x.asString();
46+
} else {
47+
mX = String.valueOf(x.asDouble());
48+
}
4349
markUpdated();
4450
}
4551

4652
@ReactProp(name = "y")
47-
public void setY(String y) {
48-
mY = y;
53+
public void setY(Dynamic y) {
54+
if (y.getType() == ReadableType.String) {
55+
mY = y.asString();
56+
} else {
57+
mY = String.valueOf(y.asDouble());
58+
}
4959
markUpdated();
5060
}
5161

52-
@ReactProp(name = "maskwidth")
53-
public void setWidth(String width) {
54-
mWidth = width;
62+
@ReactProp(name = "width")
63+
public void setWidth(Dynamic width) {
64+
if (width.getType() == ReadableType.String) {
65+
mWidth = width.asString();
66+
} else {
67+
mWidth = String.valueOf(width.asDouble());
68+
}
5569
markUpdated();
5670
}
5771

58-
@ReactProp(name = "maskheight")
59-
public void setHeight(String height) {
60-
mHeight = height;
72+
@ReactProp(name = "height")
73+
public void setHeight(Dynamic height) {
74+
if (height.getType() == ReadableType.String) {
75+
mHeight = height.asString();
76+
} else {
77+
mHeight = String.valueOf(height.asDouble());
78+
}
6179
markUpdated();
6280
}
6381

0 commit comments

Comments
 (0)