Skip to content

Commit 5c5fefa

Browse files
authored
fix: do not crash when source is invalid (DylanVann#782)
To reproduce, you can use: `source={{ uri: '/' }}`
1 parent 716c01a commit 5c5fefa

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

android/src/main/java/com/dylanvann/fastimage/FastImageViewManager.java

+21
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,27 @@ public void setSrc(FastImageViewWithUrl view, @Nullable ReadableMap source) {
7272

7373
//final GlideUrl glideUrl = FastImageViewConverter.getGlideUrl(view.getContext(), source);
7474
final FastImageSource imageSource = FastImageViewConverter.getImageSource(view.getContext(), source);
75+
if (imageSource.getUri().toString().length() == 0) {
76+
ThemedReactContext context = (ThemedReactContext) view.getContext();
77+
RCTEventEmitter eventEmitter = context.getJSModule(RCTEventEmitter.class);
78+
int viewId = view.getId();
79+
WritableMap event = new WritableNativeMap();
80+
event.putString("message", "Invalid source prop:" + source);
81+
eventEmitter.receiveEvent(viewId, REACT_ON_ERROR_EVENT, event);
82+
83+
// Cancel existing requests.
84+
if (requestManager != null) {
85+
requestManager.clear(view);
86+
}
87+
88+
if (view.glideUrl != null) {
89+
FastImageOkHttpProgressGlideModule.forget(view.glideUrl.toStringUrl());
90+
}
91+
// Clear the image.
92+
view.setImageDrawable(null);
93+
return;
94+
}
95+
7596
final GlideUrl glideUrl = imageSource.getGlideUrl();
7697

7798
// Cancel existing request.

0 commit comments

Comments
 (0)