mirror of
https://github.com/zoriya/react-native-svg.git
synced 2026-06-05 07:59:28 +00:00
[android] Simplify dynamic property setters, handle null better
This commit is contained in:
@@ -15,7 +15,6 @@ import android.graphics.Paint;
|
||||
import android.graphics.Path;
|
||||
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
|
||||
/**
|
||||
@@ -28,31 +27,19 @@ class CircleShadowNode extends RenderableShadowNode {
|
||||
|
||||
@ReactProp(name = "cx")
|
||||
public void setCx(Dynamic cx) {
|
||||
if (cx.getType() == ReadableType.String) {
|
||||
mCx = cx.asString();
|
||||
} else {
|
||||
mCx = String.valueOf(cx.asDouble());
|
||||
}
|
||||
mCx = getStringFromDynamic(cx);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "cy")
|
||||
public void setCy(Dynamic cy) {
|
||||
if (cy.getType() == ReadableType.String) {
|
||||
mCy = cy.asString();
|
||||
} else {
|
||||
mCy = String.valueOf(cy.asDouble());
|
||||
}
|
||||
mCy = getStringFromDynamic(cy);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "r")
|
||||
public void setR(Dynamic r) {
|
||||
if (r.getType() == ReadableType.String) {
|
||||
mR = r.asString();
|
||||
} else {
|
||||
mR = String.valueOf(r.asDouble());
|
||||
}
|
||||
mR = getStringFromDynamic(r);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@ import android.graphics.Path;
|
||||
import android.graphics.RectF;
|
||||
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
|
||||
/**
|
||||
@@ -29,41 +28,25 @@ class EllipseShadowNode extends RenderableShadowNode {
|
||||
|
||||
@ReactProp(name = "cx")
|
||||
public void setCx(Dynamic cx) {
|
||||
if (cx.getType() == ReadableType.String) {
|
||||
mCx = cx.asString();
|
||||
} else {
|
||||
mCx = String.valueOf(cx.asDouble());
|
||||
}
|
||||
mCx = getStringFromDynamic(cx);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "cy")
|
||||
public void setCy(Dynamic cy) {
|
||||
if (cy.getType() == ReadableType.String) {
|
||||
mCy = cy.asString();
|
||||
} else {
|
||||
mCy = String.valueOf(cy.asDouble());
|
||||
}
|
||||
mCy = getStringFromDynamic(cy);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "rx")
|
||||
public void setRx(Dynamic rx) {
|
||||
if (rx.getType() == ReadableType.String) {
|
||||
mRx = rx.asString();
|
||||
} else {
|
||||
mRx = String.valueOf(rx.asDouble());
|
||||
}
|
||||
mRx = getStringFromDynamic(rx);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "ry")
|
||||
public void setRy(Dynamic ry) {
|
||||
if (ry.getType() == ReadableType.String) {
|
||||
mRy = ry.asString();
|
||||
} else {
|
||||
mRy = String.valueOf(ry.asDouble());
|
||||
}
|
||||
mRy = getStringFromDynamic(ry);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@ import com.facebook.imagepipeline.request.ImageRequest;
|
||||
import com.facebook.imagepipeline.request.ImageRequestBuilder;
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
import com.facebook.react.views.imagehelper.ImageSource;
|
||||
@@ -56,50 +55,27 @@ class ImageShadowNode extends RenderableShadowNode {
|
||||
private int mMeetOrSlice;
|
||||
private final AtomicBoolean mLoading = new AtomicBoolean(false);
|
||||
|
||||
private static final float[] sRawMatrix = new float[]{
|
||||
1, 0, 0,
|
||||
0, 1, 0,
|
||||
0, 0, 1
|
||||
};
|
||||
private Matrix mMatrix = null;
|
||||
|
||||
@ReactProp(name = "x")
|
||||
public void setX(Dynamic x) {
|
||||
if (x.getType() == ReadableType.String) {
|
||||
mX = x.asString();
|
||||
} else {
|
||||
mX = String.valueOf(x.asDouble());
|
||||
}
|
||||
mX = getStringFromDynamic(x);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y")
|
||||
public void setY(Dynamic y) {
|
||||
if (y.getType() == ReadableType.String) {
|
||||
mY = y.asString();
|
||||
} else {
|
||||
mY = String.valueOf(y.asDouble());
|
||||
}
|
||||
mY = getStringFromDynamic(y);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "width")
|
||||
public void setWidth(Dynamic width) {
|
||||
if (width.getType() == ReadableType.String) {
|
||||
mW = width.asString();
|
||||
} else {
|
||||
mW = String.valueOf(width.asDouble());
|
||||
}
|
||||
mW = getStringFromDynamic(width);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "height")
|
||||
public void seHeight(Dynamic height) {
|
||||
if (height.getType() == ReadableType.String) {
|
||||
mH = height.asString();
|
||||
} else {
|
||||
mH = String.valueOf(height.asDouble());
|
||||
}
|
||||
public void setHeight(Dynamic height) {
|
||||
mH = getStringFromDynamic(height);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@@ -139,27 +115,6 @@ class ImageShadowNode extends RenderableShadowNode {
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "matrix")
|
||||
public void setMatrix(Dynamic matrixArray) {
|
||||
ReadableType type = matrixArray.getType();
|
||||
if (!matrixArray.isNull() && type.equals(ReadableType.Array)) {
|
||||
int matrixSize = PropHelper.toMatrixData(matrixArray.asArray(), sRawMatrix, mScale);
|
||||
if (matrixSize == 6) {
|
||||
if (mMatrix == null) {
|
||||
mMatrix = new Matrix();
|
||||
}
|
||||
mMatrix.setValues(sRawMatrix);
|
||||
} else if (matrixSize != -1) {
|
||||
FLog.w(ReactConstants.TAG, "RNSVG: Transform matrices must be of size 6");
|
||||
}
|
||||
} else {
|
||||
mMatrix = null;
|
||||
}
|
||||
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
void draw(final Canvas canvas, final Paint paint, final float opacity) {
|
||||
if (!mLoading.get()) {
|
||||
|
||||
@@ -14,7 +14,6 @@ import android.graphics.Paint;
|
||||
import android.graphics.Path;
|
||||
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
|
||||
/**
|
||||
@@ -28,41 +27,25 @@ class LineShadowNode extends RenderableShadowNode {
|
||||
|
||||
@ReactProp(name = "x1")
|
||||
public void setX1(Dynamic x1) {
|
||||
if (x1.getType() == ReadableType.String) {
|
||||
mX1 = x1.asString();
|
||||
} else {
|
||||
mX1 = String.valueOf(x1.asDouble());
|
||||
}
|
||||
mX1 = getStringFromDynamic(x1);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y1")
|
||||
public void setY1(Dynamic y1) {
|
||||
if (y1.getType() == ReadableType.String) {
|
||||
mY1 = y1.asString();
|
||||
} else {
|
||||
mY1 = String.valueOf(y1.asDouble());
|
||||
}
|
||||
mY1 = getStringFromDynamic(y1);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "x2")
|
||||
public void setX2(Dynamic x2) {
|
||||
if (x2.getType() == ReadableType.String) {
|
||||
mX2 = x2.asString();
|
||||
} else {
|
||||
mX2 = String.valueOf(x2.asDouble());
|
||||
}
|
||||
mX2 = getStringFromDynamic(x2);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y2")
|
||||
public void setY2(Dynamic y2) {
|
||||
if (y2.getType() == ReadableType.String) {
|
||||
mY2 = y2.asString();
|
||||
} else {
|
||||
mY2 = String.valueOf(y2.asDouble());
|
||||
}
|
||||
mY2 = getStringFromDynamic(y2);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@ import com.facebook.common.logging.FLog;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
@@ -41,44 +40,27 @@ class LinearGradientShadowNode extends DefinitionShadowNode {
|
||||
};
|
||||
private Matrix mMatrix = null;
|
||||
|
||||
|
||||
@ReactProp(name = "x1")
|
||||
public void setX1(Dynamic x1) {
|
||||
if (x1.getType() == ReadableType.String) {
|
||||
mX1 = x1.asString();
|
||||
} else {
|
||||
mX1 = String.valueOf(x1.asDouble());
|
||||
}
|
||||
mX1 = getStringFromDynamic(x1);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y1")
|
||||
public void setY1(Dynamic y1) {
|
||||
if (y1.getType() == ReadableType.String) {
|
||||
mY1 = y1.asString();
|
||||
} else {
|
||||
mY1 = String.valueOf(y1.asDouble());
|
||||
}
|
||||
mY1 = getStringFromDynamic(y1);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "x2")
|
||||
public void setX2(Dynamic x2) {
|
||||
if (x2.getType() == ReadableType.String) {
|
||||
mX2 = x2.asString();
|
||||
} else {
|
||||
mX2 = String.valueOf(x2.asDouble());
|
||||
}
|
||||
mX2 = getStringFromDynamic(x2);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y2")
|
||||
public void setY2(Dynamic y2) {
|
||||
if (y2.getType() == ReadableType.String) {
|
||||
mY2 = y2.asString();
|
||||
} else {
|
||||
mY2 = String.valueOf(y2.asDouble());
|
||||
}
|
||||
mY2 = getStringFromDynamic(y2);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ import android.graphics.Matrix;
|
||||
import com.facebook.common.logging.FLog;
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
|
||||
@@ -27,8 +26,8 @@ class MaskShadowNode extends GroupShadowNode {
|
||||
|
||||
String mX;
|
||||
String mY;
|
||||
String mWidth;
|
||||
String mHeight;
|
||||
String mW;
|
||||
String mH;
|
||||
|
||||
// TODO implement proper support for units
|
||||
@SuppressWarnings({"FieldCanBeLocal", "unused"})
|
||||
@@ -45,41 +44,25 @@ class MaskShadowNode extends GroupShadowNode {
|
||||
|
||||
@ReactProp(name = "x")
|
||||
public void setX(Dynamic x) {
|
||||
if (x.getType() == ReadableType.String) {
|
||||
mX = x.asString();
|
||||
} else {
|
||||
mX = String.valueOf(x.asDouble());
|
||||
}
|
||||
mX = getStringFromDynamic(x);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y")
|
||||
public void setY(Dynamic y) {
|
||||
if (y.getType() == ReadableType.String) {
|
||||
mY = y.asString();
|
||||
} else {
|
||||
mY = String.valueOf(y.asDouble());
|
||||
}
|
||||
mY = getStringFromDynamic(y);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "width")
|
||||
public void setWidth(Dynamic width) {
|
||||
if (width.getType() == ReadableType.String) {
|
||||
mWidth = width.asString();
|
||||
} else {
|
||||
mWidth = String.valueOf(width.asDouble());
|
||||
}
|
||||
mW = getStringFromDynamic(width);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "height")
|
||||
public void setHeight(Dynamic height) {
|
||||
if (height.getType() == ReadableType.String) {
|
||||
mHeight = height.asString();
|
||||
} else {
|
||||
mHeight = String.valueOf(height.asDouble());
|
||||
}
|
||||
mH = getStringFromDynamic(height);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ import com.facebook.common.logging.FLog;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
@@ -30,8 +29,8 @@ class PatternShadowNode extends GroupShadowNode {
|
||||
|
||||
private String mX;
|
||||
private String mY;
|
||||
private String mWidth;
|
||||
private String mHeight;
|
||||
private String mW;
|
||||
private String mH;
|
||||
private Brush.BrushUnits mPatternUnits;
|
||||
private Brush.BrushUnits mPatternContentUnits;
|
||||
|
||||
@@ -51,41 +50,25 @@ class PatternShadowNode extends GroupShadowNode {
|
||||
|
||||
@ReactProp(name = "x")
|
||||
public void setX(Dynamic x) {
|
||||
if (x.getType() == ReadableType.String) {
|
||||
mX = x.asString();
|
||||
} else {
|
||||
mX = String.valueOf(x.asDouble());
|
||||
}
|
||||
mX = getStringFromDynamic(x);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y")
|
||||
public void setY(Dynamic y) {
|
||||
if (y.getType() == ReadableType.String) {
|
||||
mY = y.asString();
|
||||
} else {
|
||||
mY = String.valueOf(y.asDouble());
|
||||
}
|
||||
mY = getStringFromDynamic(y);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "width")
|
||||
public void setWidth(Dynamic width) {
|
||||
if (width.getType() == ReadableType.String) {
|
||||
mWidth = width.asString();
|
||||
} else {
|
||||
mWidth = String.valueOf(width.asDouble());
|
||||
}
|
||||
mW = getStringFromDynamic(width);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "height")
|
||||
public void setHeight(Dynamic height) {
|
||||
if (height.getType() == ReadableType.String) {
|
||||
mHeight = height.asString();
|
||||
} else {
|
||||
mHeight = String.valueOf(height.asDouble());
|
||||
}
|
||||
mH = getStringFromDynamic(height);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@@ -181,8 +164,8 @@ class PatternShadowNode extends GroupShadowNode {
|
||||
WritableArray points = Arguments.createArray();
|
||||
points.pushString(mX);
|
||||
points.pushString(mY);
|
||||
points.pushString(mWidth);
|
||||
points.pushString(mHeight);
|
||||
points.pushString(mW);
|
||||
points.pushString(mH);
|
||||
|
||||
Brush brush = new Brush(Brush.BrushType.PATTERN, points, mPatternUnits);
|
||||
brush.setContentUnits(mPatternContentUnits);
|
||||
|
||||
@@ -15,7 +15,6 @@ import com.facebook.common.logging.FLog;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
@@ -44,61 +43,37 @@ class RadialGradientShadowNode extends DefinitionShadowNode {
|
||||
|
||||
@ReactProp(name = "fx")
|
||||
public void setFx(Dynamic fx) {
|
||||
if (fx.getType() == ReadableType.String) {
|
||||
mFx = fx.asString();
|
||||
} else {
|
||||
mFx = String.valueOf(fx.asDouble());
|
||||
}
|
||||
mFx = getStringFromDynamic(fx);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "fy")
|
||||
public void setFy(Dynamic fy) {
|
||||
if (fy.getType() == ReadableType.String) {
|
||||
mFy = fy.asString();
|
||||
} else {
|
||||
mFy = String.valueOf(fy.asDouble());
|
||||
}
|
||||
mFy = getStringFromDynamic(fy);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "rx")
|
||||
public void setRx(Dynamic rx) {
|
||||
if (rx.getType() == ReadableType.String) {
|
||||
mRx = rx.asString();
|
||||
} else {
|
||||
mRx = String.valueOf(rx.asDouble());
|
||||
}
|
||||
mRx = getStringFromDynamic(rx);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "ry")
|
||||
public void setRy(Dynamic ry) {
|
||||
if (ry.getType() == ReadableType.String) {
|
||||
mRy = ry.asString();
|
||||
} else {
|
||||
mRy = String.valueOf(ry.asDouble());
|
||||
}
|
||||
mRy = getStringFromDynamic(ry);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "cx")
|
||||
public void setCx(Dynamic cx) {
|
||||
if (cx.getType() == ReadableType.String) {
|
||||
mCx = cx.asString();
|
||||
} else {
|
||||
mCx = String.valueOf(cx.asDouble());
|
||||
}
|
||||
mCx = getStringFromDynamic(cx);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "cy")
|
||||
public void setCy(Dynamic cy) {
|
||||
if (cy.getType() == ReadableType.String) {
|
||||
mCy = cy.asString();
|
||||
} else {
|
||||
mCy = String.valueOf(cy.asDouble());
|
||||
}
|
||||
mCy = getStringFromDynamic(cy);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@ import android.graphics.Path;
|
||||
import android.graphics.RectF;
|
||||
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
|
||||
/**
|
||||
@@ -29,64 +28,39 @@ class RectShadowNode extends RenderableShadowNode {
|
||||
private String mRx;
|
||||
private String mRy;
|
||||
|
||||
|
||||
@ReactProp(name = "x")
|
||||
public void setX(Dynamic x) {
|
||||
if (x.getType() == ReadableType.String) {
|
||||
mX = x.asString();
|
||||
} else {
|
||||
mX = String.valueOf(x.asDouble());
|
||||
}
|
||||
mX = getStringFromDynamic(x);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y")
|
||||
public void setY(Dynamic y) {
|
||||
if (y.getType() == ReadableType.String) {
|
||||
mY = y.asString();
|
||||
} else {
|
||||
mY = String.valueOf(y.asDouble());
|
||||
}
|
||||
mY = getStringFromDynamic(y);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "width")
|
||||
public void setWidth(Dynamic width) {
|
||||
if (width.getType() == ReadableType.String) {
|
||||
mW = width.asString();
|
||||
} else {
|
||||
mW = String.valueOf(width.asDouble());
|
||||
}
|
||||
mW = getStringFromDynamic(width);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "height")
|
||||
public void setHeight(Dynamic height) {
|
||||
if (height.getType() == ReadableType.String) {
|
||||
mH = height.asString();
|
||||
} else {
|
||||
mH = String.valueOf(height.asDouble());
|
||||
}
|
||||
mH = getStringFromDynamic(height);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "rx")
|
||||
public void setRx(Dynamic rx) {
|
||||
if (rx.getType() == ReadableType.String) {
|
||||
mRx = rx.asString();
|
||||
} else {
|
||||
mRx = String.valueOf(rx.asDouble());
|
||||
}
|
||||
mRx = getStringFromDynamic(rx);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "ry")
|
||||
public void setRy(Dynamic ry) {
|
||||
if (ry.getType() == ReadableType.String) {
|
||||
mRy = ry.asString();
|
||||
} else {
|
||||
mRy = String.valueOf(ry.asDouble());
|
||||
}
|
||||
mRy = getStringFromDynamic(ry);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -174,11 +174,7 @@ abstract public class RenderableShadowNode extends VirtualNode {
|
||||
|
||||
@ReactProp(name = "strokeWidth")
|
||||
public void setStrokeWidth(Dynamic strokeWidth) {
|
||||
if (strokeWidth.getType() == ReadableType.String) {
|
||||
mStrokeWidth = strokeWidth.asString();
|
||||
} else {
|
||||
mStrokeWidth = String.valueOf(strokeWidth.asDouble());
|
||||
}
|
||||
mStrokeWidth = getStringFromDynamic(strokeWidth);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@@ -263,8 +259,8 @@ abstract public class RenderableShadowNode extends VirtualNode {
|
||||
// Clip to mask bounds and render the mask
|
||||
float maskX = (float) relativeOnWidth(mask.mX);
|
||||
float maskY = (float) relativeOnWidth(mask.mY);
|
||||
float maskWidth = (float) relativeOnWidth(mask.mWidth);
|
||||
float maskHeight = (float) relativeOnWidth(mask.mHeight);
|
||||
float maskWidth = (float) relativeOnWidth(mask.mW);
|
||||
float maskHeight = (float) relativeOnWidth(mask.mH);
|
||||
maskCanvas.clipRect(maskX, maskY, maskWidth, maskHeight);
|
||||
|
||||
Paint maskPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
|
||||
@@ -441,12 +441,12 @@ class RenderableViewManager<T extends VirtualNode> extends ViewGroupManager<Rend
|
||||
|
||||
@ReactProp(name = "imageheight")
|
||||
public void setImageHeight(RenderableView<ImageShadowNode> node, Dynamic height) {
|
||||
node.shadowNode.seHeight(height);
|
||||
node.shadowNode.setHeight(height);
|
||||
}
|
||||
|
||||
@ReactProp(name = "height")
|
||||
public void setHeight(RenderableView<ImageShadowNode> node, Dynamic height) {
|
||||
node.shadowNode.seHeight(height);
|
||||
node.shadowNode.setHeight(height);
|
||||
}
|
||||
|
||||
@ReactProp(name = "src")
|
||||
|
||||
@@ -14,7 +14,6 @@ import android.graphics.Paint;
|
||||
import android.graphics.Path;
|
||||
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
@@ -41,11 +40,7 @@ class TextPathShadowNode extends TextShadowNode {
|
||||
|
||||
@ReactProp(name = "startOffset")
|
||||
public void setStartOffset(Dynamic startOffset) {
|
||||
if (startOffset.getType() == ReadableType.String) {
|
||||
mStartOffset = startOffset.asString();
|
||||
} else {
|
||||
mStartOffset = String.valueOf(startOffset.asDouble());
|
||||
}
|
||||
mStartOffset = getStringFromDynamic(startOffset);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,10 +15,8 @@ import android.graphics.Path;
|
||||
import android.graphics.Region;
|
||||
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.JavaOnlyArray;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.uimanager.ReactShadowNode;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
|
||||
@@ -49,11 +47,7 @@ class TextShadowNode extends GroupShadowNode {
|
||||
|
||||
@ReactProp(name = "textLength")
|
||||
public void setTextLength(Dynamic length) {
|
||||
if (length.getType() == ReadableType.String) {
|
||||
mTextLength = length.asString();
|
||||
} else {
|
||||
mTextLength = String.valueOf(length.asDouble());
|
||||
}
|
||||
mTextLength = getStringFromDynamic(length);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@@ -71,11 +65,7 @@ class TextShadowNode extends GroupShadowNode {
|
||||
|
||||
@ReactProp(name = "baselineShift")
|
||||
public void setBaselineShift(Dynamic baselineShift) {
|
||||
if (baselineShift.getType() == ReadableType.String) {
|
||||
mBaselineShift = baselineShift.asString();
|
||||
} else {
|
||||
mBaselineShift = String.valueOf(baselineShift.asDouble());
|
||||
}
|
||||
mBaselineShift = getStringFromDynamic(baselineShift);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@@ -103,116 +93,31 @@ class TextShadowNode extends GroupShadowNode {
|
||||
|
||||
@ReactProp(name = "rotate")
|
||||
public void setRotate(Dynamic rotate) {
|
||||
if (rotate.isNull()) {
|
||||
mRotate = null;
|
||||
} else {
|
||||
switch (rotate.getType()) {
|
||||
case Array: {
|
||||
mRotate = rotate.asArray();
|
||||
break;
|
||||
}
|
||||
case String: {
|
||||
mRotate = JavaOnlyArray.of(rotate.asString());
|
||||
break;
|
||||
}
|
||||
case Number: {
|
||||
mRotate = JavaOnlyArray.of(String.valueOf(rotate.asDouble()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
mRotate = getStringArrayFromDynamic(rotate);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "dx")
|
||||
public void setDeltaX(Dynamic deltaX) {
|
||||
if (deltaX.isNull()) {
|
||||
mDeltaX = null;
|
||||
} else {
|
||||
switch (deltaX.getType()) {
|
||||
case Array: {
|
||||
mDeltaX = deltaX.asArray();
|
||||
break;
|
||||
}
|
||||
case String: {
|
||||
mDeltaX = JavaOnlyArray.of(deltaX.asString());
|
||||
break;
|
||||
}
|
||||
case Number: {
|
||||
mDeltaX = JavaOnlyArray.of(String.valueOf(deltaX.asDouble()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
mDeltaX = getStringArrayFromDynamic(deltaX);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "dy")
|
||||
public void setDeltaY(Dynamic deltaY) {
|
||||
if (deltaY.isNull()) {
|
||||
mDeltaY = null;
|
||||
} else {
|
||||
switch (deltaY.getType()) {
|
||||
case Array: {
|
||||
mDeltaY = deltaY.asArray();
|
||||
break;
|
||||
}
|
||||
case String: {
|
||||
mDeltaY = JavaOnlyArray.of(deltaY.asString());
|
||||
break;
|
||||
}
|
||||
case Number: {
|
||||
mDeltaY = JavaOnlyArray.of(String.valueOf(deltaY.asDouble()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
mDeltaY = getStringArrayFromDynamic(deltaY);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "x")
|
||||
public void setPositionX(Dynamic positionX) {
|
||||
if (positionX.isNull()) {
|
||||
mPositionX = null;
|
||||
} else {
|
||||
switch (positionX.getType()) {
|
||||
case Array: {
|
||||
mPositionX = positionX.asArray();
|
||||
break;
|
||||
}
|
||||
case String: {
|
||||
mPositionX = JavaOnlyArray.of(positionX.asString());
|
||||
break;
|
||||
}
|
||||
case Number: {
|
||||
mPositionX = JavaOnlyArray.of(String.valueOf(positionX.asDouble()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
mPositionX = getStringArrayFromDynamic(positionX);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = "y")
|
||||
public void setPositionY(Dynamic positionY) {
|
||||
if (positionY.isNull()) {
|
||||
mPositionY = null;
|
||||
} else {
|
||||
switch (positionY.getType()) {
|
||||
case Array: {
|
||||
mPositionY = positionY.asArray();
|
||||
break;
|
||||
}
|
||||
case String: {
|
||||
mPositionY = JavaOnlyArray.of(positionY.asString());
|
||||
break;
|
||||
}
|
||||
case Number: {
|
||||
mPositionY = JavaOnlyArray.of(String.valueOf(positionY.asDouble()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
mPositionY = getStringArrayFromDynamic(positionY);
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@ import android.graphics.Region;
|
||||
|
||||
import com.facebook.common.logging.FLog;
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.JavaOnlyArray;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
import com.facebook.react.uimanager.DisplayMetricsHolder;
|
||||
@@ -415,4 +417,27 @@ abstract class VirtualNode<T> extends LayoutShadowNode {
|
||||
return mClientRect;
|
||||
}
|
||||
|
||||
String getStringFromDynamic(Dynamic dynamic) {
|
||||
switch (dynamic.getType()) {
|
||||
case String:
|
||||
return dynamic.asString();
|
||||
case Number:
|
||||
return String.valueOf(dynamic.asDouble());
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
ReadableArray getStringArrayFromDynamic(Dynamic dynamic) {
|
||||
switch (dynamic.getType()) {
|
||||
case Array:
|
||||
return dynamic.asArray();
|
||||
case String:
|
||||
return JavaOnlyArray.of(dynamic.asString());
|
||||
case Number:
|
||||
return JavaOnlyArray.of(String.valueOf(dynamic.asDouble()));
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user