Skip to content
Source
Sign inSign up
Open History to see the last commit

react-native-svg@15.16.1.patch

40 lines1.6 KB

1diff --git a/android/src/main/java/com/horcrux/svg/MarkerView.java b/android/src/main/java/com/horcrux/svg/MarkerView.java
2index 8c796236f9f4b58717ac3fbab65e33d11ba032f2..d886e13d2cd1390a396716ecf4a379205e6a8aeb 100644
3--- a/android/src/main/java/com/horcrux/svg/MarkerView.java
4+++ b/android/src/main/java/com/horcrux/svg/MarkerView.java
5@@ -114,6 +114,17 @@ class MarkerView extends GroupView {
6 }
7 }
8
9+ private static double parseOrientAngle(String orient) {
10+ if (orient == null) {
11+ return 0;
12+ }
13+ try {
14+ return Double.parseDouble(orient);
15+ } catch (NumberFormatException e) {
16+ return 0;
17+ }
18+ }
20 void renderMarker(
21 Canvas canvas, Paint paint, float opacity, RNSVGMarkerPosition position, float strokeWidth) {
22 int count = saveAndSetupCanvas(canvas, mCTM);
23@@ -122,8 +133,15 @@ class MarkerView extends GroupView {
24 Point origin = position.origin;
25 markerTransform.setTranslate((float) origin.x, (float) origin.y);
27- double markerAngle = "auto".equals(mOrient) ? -1 : Double.parseDouble(mOrient);
28- float degrees = 180 + (float) (markerAngle == -1 ? position.angle : markerAngle);
29+ double markerAngle = position.angle;
30+ if ("auto-start-reverse".equals(mOrient)) {
31+ if (position.type == RNSVGMarkerType.kStartMarker) {
32+ markerAngle += 180;
33+ }
34+ } else if (!"auto".equals(mOrient)) {
35+ markerAngle = parseOrientAngle(mOrient);
36+ }
37+ float degrees = 180 + (float) markerAngle;
38 markerTransform.preRotate(degrees);
40 boolean useStrokeWidth = "strokeWidth".equals(mMarkerUnits);