Remove all calls to bridge.imageLoader [1/N]
Summary: We no longer want to access RCTImageLoader from the bridge category. Instead, let's use the `moduleForClass` API. Reviewed By: shergin Differential Revision: D16389113 fbshipit-source-id: c638f4b9851698afc53aaaa2b302d21cc19f76e7
This commit is contained in:
Родитель
42cf8a9241
Коммит
7d15a6be2c
|
@ -141,7 +141,7 @@ RCT_EXPORT_METHOD(saveToCameraRoll:(NSURLRequest *)request
|
|||
inputURI = request.URL;
|
||||
saveBlock();
|
||||
} else {
|
||||
[self.bridge.imageLoader loadImageWithURLRequest:request callback:^(NSError *error, UIImage *image) {
|
||||
[[self.bridge moduleForClass:[RCTImageLoader class]] loadImageWithURLRequest:request callback:^(NSError *error, UIImage *image) {
|
||||
if (error) {
|
||||
reject(kErrorUnableToLoad, nil, error);
|
||||
return;
|
||||
|
|
|
@ -43,7 +43,8 @@ RCT_EXPORT_METHOD(cropImage:(NSURLRequest *)imageRequest
|
|||
[RCTConvert CGSize:cropData[@"size"]]
|
||||
};
|
||||
|
||||
[_bridge.imageLoader loadImageWithURLRequest:imageRequest callback:^(NSError *error, UIImage *image) {
|
||||
[[_bridge moduleForClass:[RCTImageLoader class]]
|
||||
loadImageWithURLRequest:imageRequest callback:^(NSError *error, UIImage *image) {
|
||||
if (error) {
|
||||
errorCallback(error);
|
||||
return;
|
||||
|
|
|
@ -87,7 +87,6 @@ static NSDictionary *onLoadParamsForSource(RCTImageSource *source)
|
|||
{
|
||||
if ((self = [super initWithFrame:CGRectZero])) {
|
||||
_bridge = bridge;
|
||||
|
||||
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
|
||||
[center addObserver:self
|
||||
selector:@selector(clearImageIfDetached)
|
||||
|
@ -328,7 +327,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithFrame:(CGRect)frame)
|
|||
};
|
||||
|
||||
_reloadImageCancellationBlock =
|
||||
[_bridge.imageLoader loadImageWithURLRequest:source.request
|
||||
[[_bridge moduleForClass:[RCTImageLoader class]] loadImageWithURLRequest:source.request
|
||||
size:imageSize
|
||||
scale:imageScale
|
||||
clipped:NO
|
||||
|
|
|
@ -54,7 +54,8 @@ RCT_EXPORT_METHOD(getSize:(NSURLRequest *)request
|
|||
successBlock:(RCTResponseSenderBlock)successBlock
|
||||
errorBlock:(RCTResponseErrorBlock)errorBlock)
|
||||
{
|
||||
[self.bridge.imageLoader getImageSizeForURLRequest:request
|
||||
[[self.bridge moduleForClass:[RCTImageLoader class]]
|
||||
getImageSizeForURLRequest:request
|
||||
block:^(NSError *error, CGSize size) {
|
||||
if (error) {
|
||||
errorBlock(error);
|
||||
|
@ -68,7 +69,8 @@ RCT_EXPORT_METHOD(getSizeWithHeaders:(RCTImageSource *)source
|
|||
resolve:(RCTPromiseResolveBlock)resolve
|
||||
reject:(RCTPromiseRejectBlock)reject)
|
||||
{
|
||||
[self.bridge.imageLoader getImageSizeForURLRequest:source.request
|
||||
[[self.bridge moduleForClass:[RCTImageLoader class]]
|
||||
getImageSizeForURLRequest:source.request
|
||||
block:^(NSError *error, CGSize size) {
|
||||
if (error) {
|
||||
reject(@"E_GET_SIZE_FAILURE", nil, error);
|
||||
|
@ -87,7 +89,8 @@ RCT_EXPORT_METHOD(prefetchImage:(NSURLRequest *)request
|
|||
return;
|
||||
}
|
||||
|
||||
[self.bridge.imageLoader loadImageWithURLRequest:request
|
||||
[[self.bridge moduleForClass:[RCTImageLoader class]]
|
||||
loadImageWithURLRequest:request
|
||||
callback:^(NSError *error, UIImage *image) {
|
||||
if (error) {
|
||||
reject(@"E_PREFETCH_FAILURE", nil, error);
|
||||
|
@ -101,7 +104,7 @@ RCT_EXPORT_METHOD(queryCache:(NSArray *)requests
|
|||
resolve:(RCTPromiseResolveBlock)resolve
|
||||
reject:(RCTPromiseRejectBlock)reject)
|
||||
{
|
||||
resolve([self.bridge.imageLoader getImageCacheStatus:requests]);
|
||||
resolve([[self.bridge moduleForClass:[RCTImageLoader class]] getImageCacheStatus:requests]);
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -53,10 +53,17 @@ RCTDefineImageDecoder(RCTImageLoaderTestsDecoder2)
|
|||
NS_VALID_UNTIL_END_OF_SCOPE RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:_bundleURL moduleProvider:^{ return @[loader]; } launchOptions:nil];
|
||||
|
||||
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://facebook.github.io/react-native/img/opengraph.png"]];
|
||||
[bridge.imageLoader loadImageWithURLRequest:urlRequest size:CGSizeMake(100, 100) scale:1.0 clipped:YES resizeMode:RCTResizeModeContain progressBlock:^(int64_t progress, int64_t total) {
|
||||
[[bridge moduleForClass:[RCTImageLoader class]]
|
||||
loadImageWithURLRequest:urlRequest
|
||||
size:CGSizeMake(100, 100)
|
||||
scale:1.0
|
||||
clipped:YES
|
||||
resizeMode:RCTResizeModeContain
|
||||
progressBlock:^(int64_t progress, int64_t total) {
|
||||
XCTAssertEqual(progress, 1);
|
||||
XCTAssertEqual(total, 1);
|
||||
} partialLoadBlock:nil completionBlock:^(NSError *loadError, id loadedImage) {
|
||||
}
|
||||
partialLoadBlock:nil completionBlock:^(NSError *loadError, id loadedImage) {
|
||||
XCTAssertEqualObjects(loadedImage, image);
|
||||
XCTAssertNil(loadError);
|
||||
}];
|
||||
|
@ -84,10 +91,17 @@ RCTDefineImageDecoder(RCTImageLoaderTestsDecoder2)
|
|||
NS_VALID_UNTIL_END_OF_SCOPE RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:_bundleURL moduleProvider:^{ return @[loader1, loader2]; } launchOptions:nil];
|
||||
|
||||
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://facebook.github.io/react-native/img/opengraph.png"]];
|
||||
[bridge.imageLoader loadImageWithURLRequest:urlRequest size:CGSizeMake(100, 100) scale:1.0 clipped:YES resizeMode:RCTResizeModeContain progressBlock:^(int64_t progress, int64_t total) {
|
||||
[[bridge moduleForClass:[RCTImageLoader class]]
|
||||
loadImageWithURLRequest:urlRequest
|
||||
size:CGSizeMake(100, 100)
|
||||
scale:1.0
|
||||
clipped:YES
|
||||
resizeMode:RCTResizeModeContain
|
||||
progressBlock:^(int64_t progress, int64_t total) {
|
||||
XCTAssertEqual(progress, 1);
|
||||
XCTAssertEqual(total, 1);
|
||||
} partialLoadBlock:nil completionBlock:^(NSError *loadError, id loadedImage) {
|
||||
}
|
||||
partialLoadBlock:nil completionBlock:^(NSError *loadError, id loadedImage) {
|
||||
XCTAssertEqualObjects(loadedImage, image);
|
||||
XCTAssertNil(loadError);
|
||||
}];
|
||||
|
@ -108,7 +122,14 @@ RCTDefineImageDecoder(RCTImageLoaderTestsDecoder2)
|
|||
|
||||
NS_VALID_UNTIL_END_OF_SCOPE RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:_bundleURL moduleProvider:^{ return @[decoder]; } launchOptions:nil];
|
||||
|
||||
RCTImageLoaderCancellationBlock cancelBlock = [bridge.imageLoader decodeImageData:data size:CGSizeMake(1, 1) scale:1.0 clipped:NO resizeMode:RCTResizeModeStretch completionBlock:^(NSError *decodeError, id decodedImage) {
|
||||
RCTImageLoaderCancellationBlock cancelBlock =
|
||||
[[bridge moduleForClass:[RCTImageLoader class]]
|
||||
decodeImageData:data
|
||||
size:CGSizeMake(1, 1)
|
||||
scale:1.0
|
||||
clipped:NO
|
||||
resizeMode:RCTResizeModeStretch
|
||||
completionBlock:^(NSError *decodeError, id decodedImage) {
|
||||
XCTAssertEqualObjects(decodedImage, image);
|
||||
XCTAssertNil(decodeError);
|
||||
}];
|
||||
|
@ -137,7 +158,14 @@ RCTDefineImageDecoder(RCTImageLoaderTestsDecoder2)
|
|||
|
||||
NS_VALID_UNTIL_END_OF_SCOPE RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:_bundleURL moduleProvider:^{ return @[decoder1, decoder2]; } launchOptions:nil];
|
||||
|
||||
RCTImageLoaderCancellationBlock cancelBlock = [bridge.imageLoader decodeImageData:data size:CGSizeMake(1, 1) scale:1.0 clipped:NO resizeMode:RCTResizeModeStretch completionBlock:^(NSError *decodeError, id decodedImage) {
|
||||
RCTImageLoaderCancellationBlock cancelBlock =
|
||||
[[bridge moduleForClass:[RCTImageLoader class]]
|
||||
decodeImageData:data
|
||||
size:CGSizeMake(1, 1)
|
||||
scale:1.0
|
||||
clipped:NO
|
||||
resizeMode:RCTResizeModeStretch
|
||||
completionBlock:^(NSError *decodeError, id decodedImage) {
|
||||
XCTAssertEqualObjects(decodedImage, image);
|
||||
XCTAssertNil(decodeError);
|
||||
}];
|
||||
|
|
|
@ -251,7 +251,7 @@ using namespace facebook::react;
|
|||
// * `RCTImageLoader` should be moved to `RNImageComponentView`.
|
||||
// * `ReactNativeConfig` should be set by outside product code.
|
||||
_contextContainer->insert("ReactNativeConfig", _reactNativeConfig);
|
||||
_contextContainer->insert("RCTImageLoader", wrapManagedObject([_bridge imageLoader]));
|
||||
_contextContainer->insert("RCTImageLoader", wrapManagedObject([_bridge moduleForClass:[RCTImageLoader class]]));
|
||||
|
||||
return _contextContainer;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче