fix: null exception in FastImageViewManager.java (#423)

This commit is contained in:
hungvxt 2021-09-27 17:43:32 +07:00 committed by GitHub
parent 8950a38a3d
commit a7a8643ed4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 9 deletions

View File

@ -9,6 +9,7 @@ import android.os.Build;
import com.bumptech.glide.Glide;
import com.bumptech.glide.RequestManager;
import com.bumptech.glide.load.model.GlideUrl;
import com.bumptech.glide.request.Request;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.WritableNativeMap;
@ -58,9 +59,7 @@ class FastImageViewManager extends SimpleViewManager<FastImageViewWithUrl> imple
public void setSrc(FastImageViewWithUrl view, @Nullable ReadableMap source) {
if (source == null || !source.hasKey("uri") || isNullOrEmpty(source.getString("uri"))) {
// Cancel existing requests.
if (requestManager != null) {
requestManager.clear(view);
}
clearView(view);
if (view.glideUrl != null) {
FastImageOkHttpProgressGlideModule.forget(view.glideUrl.toStringUrl());
@ -97,9 +96,7 @@ class FastImageViewManager extends SimpleViewManager<FastImageViewWithUrl> imple
// Cancel existing request.
view.glideUrl = glideUrl;
if (requestManager != null) {
requestManager.clear(view);
}
clearView(view);
String key = glideUrl.toStringUrl();
FastImageOkHttpProgressGlideModule.expect(key, this);
@ -149,9 +146,7 @@ class FastImageViewManager extends SimpleViewManager<FastImageViewWithUrl> imple
@Override
public void onDropViewInstance(FastImageViewWithUrl view) {
// This will cancel existing requests.
if (requestManager != null) {
requestManager.clear(view);
}
clearView(view);
if (view.glideUrl != null) {
final String key = view.glideUrl.toString();
@ -244,4 +239,10 @@ class FastImageViewManager extends SimpleViewManager<FastImageViewWithUrl> imple
}
}
private void clearView(FastImageViewWithUrl view) {
if (requestManager != null && view != null && view.getTag() != null && view.getTag() instanceof Request) {
requestManager.clear(view);
}
}
}