Skip to content

Commit 641e965

Browse files
Emily Janzerfacebook-github-bot
Emily Janzer
authored andcommitted
Make ImageLoaderModule TurboModule-compatible
Summary: Modifying ImageLoaderModule to be TM-compatible by extending the generated abstract class and fixing the conflicting method signatures (int -> double). Changelog: [Android] [Changed] Changing method signatures for ImageLoaderModule to accept double for requestId Reviewed By: mdvacca Differential Revision: D18435628 fbshipit-source-id: bc2a82bda49e339d1feebfe917b0862a1af15a1f
1 parent 8797a5c commit 641e965

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK

+3
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,7 @@ rn_android_library(
2121
react_native_target("java/com/facebook/react/module/annotations:annotations"),
2222
react_native_target("java/com/facebook/react/views/imagehelper:imagehelper"),
2323
],
24+
exported_deps = [
25+
react_native_target("java/com/facebook/fbreact/specs:FBReactNativeSpec"),
26+
],
2427
)

ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.java

+11-8
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import com.facebook.datasource.DataSource;
1717
import com.facebook.datasource.DataSubscriber;
1818
import com.facebook.drawee.backends.pipeline.Fresco;
19+
import com.facebook.fbreact.specs.NativeImageLoaderAndroidSpec;
1920
import com.facebook.imagepipeline.core.ImagePipeline;
2021
import com.facebook.imagepipeline.image.CloseableImage;
2122
import com.facebook.imagepipeline.request.ImageRequest;
@@ -25,7 +26,6 @@
2526
import com.facebook.react.bridge.LifecycleEventListener;
2627
import com.facebook.react.bridge.Promise;
2728
import com.facebook.react.bridge.ReactApplicationContext;
28-
import com.facebook.react.bridge.ReactContextBaseJavaModule;
2929
import com.facebook.react.bridge.ReactMethod;
3030
import com.facebook.react.bridge.ReadableArray;
3131
import com.facebook.react.bridge.ReadableMap;
@@ -35,7 +35,7 @@
3535
import com.facebook.react.views.imagehelper.ImageSource;
3636

3737
@ReactModule(name = ImageLoaderModule.NAME)
38-
public class ImageLoaderModule extends ReactContextBaseJavaModule
38+
public class ImageLoaderModule extends NativeImageLoaderAndroidSpec
3939
implements LifecycleEventListener {
4040

4141
private static final String ERROR_INVALID_URI = "E_INVALID_URI";
@@ -183,12 +183,15 @@ protected void onFailureImpl(DataSource<CloseableReference<CloseableImage>> data
183183
* Prefetches the given image to the Fresco image disk cache.
184184
*
185185
* @param uriString the URI of the remote image to prefetch
186-
* @param requestId the client-supplied request ID used to identify this request
186+
* @param requestIdAsDouble the client-supplied request ID used to identify this request
187187
* @param promise the promise that is fulfilled when the image is successfully prefetched or
188188
* rejected when there is an error
189189
*/
190-
@ReactMethod
191-
public void prefetchImage(final String uriString, final int requestId, final Promise promise) {
190+
@Override
191+
public void prefetchImage(
192+
final String uriString, final double requestIdAsDouble, final Promise promise) {
193+
final int requestId = (int) requestIdAsDouble;
194+
192195
if (uriString == null || uriString.isEmpty()) {
193196
promise.reject(ERROR_INVALID_URI, "Cannot prefetch an image for an empty URI");
194197
return;
@@ -228,9 +231,9 @@ protected void onFailureImpl(DataSource<Void> dataSource) {
228231
prefetchSource.subscribe(prefetchSubscriber, CallerThreadExecutor.getInstance());
229232
}
230233

231-
@ReactMethod
232-
public void abortRequest(final int requestId) {
233-
DataSource<Void> request = removeRequest(requestId);
234+
@Override
235+
public void abortRequest(double requestId) {
236+
DataSource<Void> request = removeRequest((int) requestId);
234237
if (request != null) {
235238
request.close();
236239
}

0 commit comments

Comments
 (0)