do not suppress prop errors on Android

This commit is contained in:
Dmitry Gladkov 2016-01-19 12:16:15 +02:00
parent c41e14aa47
commit d5961d4cdf
2 changed files with 26 additions and 50 deletions

View File

@ -1,18 +1,11 @@
package com.BV.LinearGradient; package com.BV.LinearGradient;
import android.view.View;
import android.widget.FrameLayout;
import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.uimanager.BaseViewPropertyApplicator;
import com.facebook.react.uimanager.CatalystStylesDiffMap;
import com.facebook.react.uimanager.ReactProp; import com.facebook.react.uimanager.ReactProp;
import com.facebook.react.uimanager.SimpleViewManager; import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap; import android.view.View;
import com.facebook.react.bridge.WritableNativeArray;
import com.facebook.react.bridge.WritableNativeMap;
public class LinearGradientManager extends SimpleViewManager<LinearGradientView> { public class LinearGradientManager extends SimpleViewManager<LinearGradientView> {
@ -33,22 +26,22 @@ public class LinearGradientManager extends SimpleViewManager<LinearGradientView>
} }
@ReactProp(name=PROP_COLORS) @ReactProp(name=PROP_COLORS)
public void setColors(LinearGradientView gradientView, ReadableArray colors){ public void setColors(LinearGradientView gradientView, ReadableArray colors) {
gradientView.setColors(colors); gradientView.setColors(colors);
} }
@ReactProp(name=PROP_LOCATIONS) @ReactProp(name=PROP_LOCATIONS)
public void setLocations(LinearGradientView gradientView, ReadableArray locations){ public void setLocations(LinearGradientView gradientView, ReadableArray locations) {
gradientView.setLocations(locations); gradientView.setLocations(locations);
} }
@ReactProp(name=PROP_START_POS) @ReactProp(name=PROP_START_POS)
public void setStartPosition(LinearGradientView gradientView, ReadableArray startPos){ public void setStartPosition(LinearGradientView gradientView, ReadableArray startPos) {
gradientView.setStartPosition(startPos); gradientView.setStartPosition(startPos);
} }
@ReactProp(name=PROP_END_POS) @ReactProp(name=PROP_END_POS)
public void setEndPosition(LinearGradientView gradientView, ReadableArray endPos){ public void setEndPosition(LinearGradientView gradientView, ReadableArray endPos) {
gradientView.setEndPosition(endPos); gradientView.setEndPosition(endPos);
} }
} }

View File

@ -1,17 +1,14 @@
package com.BV.LinearGradient; package com.BV.LinearGradient;
import com.facebook.react.bridge.ReadableArray;
import android.content.Context; import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.LinearGradient; import android.graphics.LinearGradient;
import android.graphics.Paint; import android.graphics.Paint;
import android.graphics.Shader; import android.graphics.Shader;
import android.util.Log;
import android.view.View; import android.view.View;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.uimanager.CatalystStylesDiffMap;
public class LinearGradientView extends View { public class LinearGradientView extends View {
private Paint mPaint = new Paint(); private Paint mPaint = new Paint();
@ -27,31 +24,16 @@ public class LinearGradientView extends View {
} }
public void setStartPosition(ReadableArray startPos) { public void setStartPosition(ReadableArray startPos) {
float[] _startPos; mStartPos = new float[]{(float) startPos.getDouble(0), (float) startPos.getDouble(1)};
try { drawGradient();
assert startPos != null;
_startPos= new float[]{(float) startPos.getDouble(0), (float) startPos.getDouble(1)};
} catch (Exception e) {
_startPos = new float[]{0, 0};
}
mStartPos = _startPos;
drawGradient();
} }
public void setEndPosition(ReadableArray endPos) { public void setEndPosition(ReadableArray endPos) {
float[] _endPos; mEndPos = new float[]{(float) endPos.getDouble(0), (float) endPos.getDouble(1)};
try { drawGradient();
assert endPos != null;
_endPos= new float[]{(float) endPos.getDouble(0), (float) endPos.getDouble(1)};
} catch (Exception e) {
_endPos = new float[]{0, 0};
}
mEndPos = _endPos;
drawGradient();
} }
public void setColors(ReadableArray colors) {
public void setColors(ReadableArray colors){
int[] _colors = new int[colors.size()]; int[] _colors = new int[colors.size()];
for (int i=0; i < _colors.length; i++) for (int i=0; i < _colors.length; i++)
{ {
@ -61,17 +43,11 @@ public class LinearGradientView extends View {
drawGradient(); drawGradient();
} }
public void setLocations(ReadableArray locations){ public void setLocations(ReadableArray locations) {
float[] _locations; float[] _locations = new float[locations.size()];
try { for (int i=0; i < _locations.length; i++)
assert locations != null; {
_locations = new float[locations.size()]; _locations[i] = (float) locations.getDouble(i);
for (int i=0; i < _locations.length; i++)
{
_locations[i] = (float) locations.getDouble(i);
}
} catch (Exception e) {
_locations = null;
} }
mLocations = _locations; mLocations = _locations;
drawGradient(); drawGradient();
@ -84,7 +60,14 @@ public class LinearGradientView extends View {
} }
private void drawGradient() { private void drawGradient() {
mShader = new LinearGradient(mStartPos[0] * mSize[0], mStartPos[1] * mSize[1], mEndPos[0] * mSize[0], mEndPos[1] * mSize[1], mColors, mLocations, Shader.TileMode.MIRROR); mShader = new LinearGradient(
mStartPos[0] * mSize[0],
mStartPos[1] * mSize[1],
mEndPos[0] * mSize[0],
mEndPos[1] * mSize[1],
mColors,
mLocations,
Shader.TileMode.MIRROR);
mPaint.setShader(mShader); mPaint.setShader(mShader);
invalidate(); invalidate();
} }