react-native/Libraries/Image
Ben Nham 5bb5ea7135 Reload image without dispatch_async if completion handler is already on main thread
Summary:
This works with D3305161 to minimize image flashing. After D3305161, the completion handler passed to `-[RCTImageLoader loadImageWithoutClipping:size:scale:resizeMode:progressBlock:completionBlock:]` may be called back on the main queue in the case of a cached image. In this case, we want to set the image view's image property synchronously rather than on the next runloop iteration via dispatch_async. This minimizes the amount of image flashing the user sees when displaying a cached image.

The exception to this case is for blurred images. A blur can be an expensive (taking multiple ms on the CPU), so we always make sure to perform the blur off the main queue even if the image is cached and the callback came back on the main queue.

Reviewed By: nicklockwood

Differential Revision: D3310176

fbshipit-source-id: 6820782527b65e4956879cf06e8ed2c09c622a58
2016-05-17 10:43:30 -07:00
..
RCTImage.xcodeproj iOS: Enable views to be nested within <Text> 2016-05-17 10:43:30 -07:00
__tests__ Update Jest APIs on fbsource 2016-04-27 19:16:32 -07:00
AssetRegistry.js [ReactNative] Teach flow how to deal with images 2015-08-26 18:26:09 -08:00
AssetSourceResolver.js Fixes OSS build: haste module -> commonJS invariant 2016-03-16 06:57:26 -07:00
GlobalImageStub.js Removed references to isStatic from the codebase 2015-10-13 06:44:30 -07:00
Image.android.js Add a way to prefetch remote images to cache with Image.prefetch 2016-04-13 07:30:28 -07:00
Image.ios.js iOS: Enable views to be nested within <Text> 2016-05-17 10:43:30 -07:00
ImageEditor.js CHORE - Remove Trailing Spaces 2016-04-06 09:21:53 -07:00
ImageResizeMode.js Add center ImageResizeMode option 2016-03-19 11:25:24 -07:00
ImageSource.js Fix flow errors 2015-12-31 07:48:29 -08:00
ImageStore.js Open sourced <ImageEditor>, <ImageStore> for Android 2016-01-27 10:50:54 -08:00
ImageStylePropTypes.js Fix tintColor prop platform in Image 2016-05-09 15:29:24 -07:00
RCTGIFImageDecoder.h Added RCTDataRequestHandler 2015-10-19 09:07:06 -07:00
RCTGIFImageDecoder.m Generalized image decoding and resizing logic 2016-01-20 11:11:13 -08:00
RCTImageBlurUtils.h Add blur effect to RCTImageView 2016-03-17 12:25:40 -07:00
RCTImageBlurUtils.m Add blur effect to RCTImageView 2016-03-17 12:25:40 -07:00
RCTImageEditingManager.h [React Native] open source ImageEditingManager native module 2015-07-29 15:57:48 -08:00
RCTImageEditingManager.m fix an image cropping bug when displaySize is specified 2016-02-18 00:38:31 -08:00
RCTImageLoader.h Dispatch module setup asynchronously to avoid blocking main thread when bridge starts 2016-03-03 02:21:36 -08:00
RCTImageLoader.m Fixed crash due to inserting a nil object into an array 2016-05-09 08:18:47 -07:00
RCTImageStoreManager.h RTCImageStoreManager uses NSData instead of UIImage 2015-11-17 09:55:31 -08:00
RCTImageStoreManager.m Generalized image decoding and resizing logic 2016-01-20 11:11:13 -08:00
RCTImageUtils.h Removed placeholder image logic 2016-04-25 03:31:19 -07:00
RCTImageUtils.m Removed placeholder image logic 2016-04-25 03:31:19 -07:00
RCTImageView.h iOS: Enable views to be nested within <Text> 2016-05-17 10:43:30 -07:00
RCTImageView.m Reload image without dispatch_async if completion handler is already on main thread 2016-05-17 10:43:30 -07:00
RCTImageViewManager.h Merged RCTNetworkImageView functionality into RCTStaticImage 2015-07-17 07:43:16 -08:00
RCTImageViewManager.m Add blur effect to RCTImageView 2016-03-17 12:25:40 -07:00
RCTResizeMode.h Generalized image decoding and resizing logic 2016-01-20 11:11:13 -08:00
RCTResizeMode.m Generalized image decoding and resizing logic 2016-01-20 11:11:13 -08:00
RCTXCAssetImageLoader.h Unify XCAsset handling logic 2015-10-12 04:15:27 -07:00
RCTXCAssetImageLoader.m Generalized image decoding and resizing logic 2016-01-20 11:11:13 -08:00
RelativeImageStub.js [ReactNative] Teach flow how to deal with images 2015-08-26 18:26:09 -08:00
resolveAssetSource.js Introduce custom asset resolver to resolveAssetSource(..) 2016-03-15 20:20:27 -07:00