@@ -44,22 +44,21 @@ public class ImageLoaderModule extends NativeImageLoaderAndroidSpec
44
44
private static final String ERROR_PREFETCH_FAILURE = "E_PREFETCH_FAILURE" ;
45
45
private static final String ERROR_GET_SIZE_FAILURE = "E_GET_SIZE_FAILURE" ;
46
46
public static final String NAME = "ImageLoader" ;
47
- private static final Object DEFAULT_CALLER_CONTEXT = new Object ();
48
47
49
48
private @ Nullable final Object mCallerContext ;
50
49
private final Object mEnqueuedRequestMonitor = new Object ();
51
50
private final SparseArray <DataSource <Void >> mEnqueuedRequests = new SparseArray <>();
52
- private final ImagePipeline mImagePipeline ;
51
+ private @ Nullable ImagePipeline mImagePipeline = null ;
53
52
private @ Nullable ReactCallerContextFactory mCallerContextFactory ;
54
53
55
54
public ImageLoaderModule (ReactApplicationContext reactContext ) {
56
- this (reactContext , DEFAULT_CALLER_CONTEXT );
55
+ super (reactContext );
56
+ mCallerContext = this ;
57
57
}
58
58
59
59
public ImageLoaderModule (ReactApplicationContext reactContext , Object callerContext ) {
60
60
super (reactContext );
61
61
mCallerContext = callerContext ;
62
- mImagePipeline = Fresco .getImagePipeline ();
63
62
}
64
63
65
64
public ImageLoaderModule (
@@ -84,6 +83,10 @@ public String getName() {
84
83
return NAME ;
85
84
}
86
85
86
+ private ImagePipeline getImagePipeline () {
87
+ return mImagePipeline != null ? mImagePipeline : Fresco .getImagePipeline ();
88
+ }
89
+
87
90
/**
88
91
* Fetch the width and height of the given image.
89
92
*
@@ -102,7 +105,7 @@ public void getSize(final String uriString, final Promise promise) {
102
105
ImageRequest request = ImageRequestBuilder .newBuilderWithSource (source .getUri ()).build ();
103
106
104
107
DataSource <CloseableReference <CloseableImage >> dataSource =
105
- mImagePipeline .fetchDecodedImage (request , getCallerContext ());
108
+ getImagePipeline () .fetchDecodedImage (request , getCallerContext ());
106
109
107
110
DataSubscriber <CloseableReference <CloseableImage >> dataSubscriber =
108
111
new BaseDataSubscriber <CloseableReference <CloseableImage >>() {
@@ -163,7 +166,7 @@ public void getSizeWithHeaders(
163
166
ReactNetworkImageRequest .fromBuilderWithHeaders (imageRequestBuilder , headers );
164
167
165
168
DataSource <CloseableReference <CloseableImage >> dataSource =
166
- mImagePipeline .fetchDecodedImage (request , getCallerContext ());
169
+ getImagePipeline () .fetchDecodedImage (request , getCallerContext ());
167
170
168
171
DataSubscriber <CloseableReference <CloseableImage >> dataSubscriber =
169
172
new BaseDataSubscriber <CloseableReference <CloseableImage >>() {
@@ -223,7 +226,7 @@ public void prefetchImage(
223
226
ImageRequest request = ImageRequestBuilder .newBuilderWithSource (uri ).build ();
224
227
225
228
DataSource <Void > prefetchSource =
226
- mImagePipeline .prefetchToDiskCache (request , getCallerContext ());
229
+ getImagePipeline () .prefetchToDiskCache (request , getCallerContext ());
227
230
DataSubscriber <Void > prefetchSubscriber =
228
231
new BaseDataSubscriber <Void >() {
229
232
@ Override
@@ -270,7 +273,7 @@ public void queryCache(final ReadableArray uris, final Promise promise) {
270
273
@ Override
271
274
protected void doInBackgroundGuarded (Void ... params ) {
272
275
WritableMap result = Arguments .createMap ();
273
- ImagePipeline imagePipeline = mImagePipeline ;
276
+ ImagePipeline imagePipeline = getImagePipeline () ;
274
277
for (int i = 0 ; i < uris .size (); i ++) {
275
278
String uriString = uris .getString (i );
276
279
final Uri uri = Uri .parse (uriString );
0 commit comments