Add queryCache to ImageLoader native module

Summary:
[iOS] [Added] - Add definition for `queryCache` in ImageLoader

This diff is related to moving RCTImageViewManager's commands to a native module, ImageLoader.

Reviewed By: zackargyle, TheSavior

Differential Revision: D17714521

fbshipit-source-id: 722cc17a2ebb03e72d7c080dfc4d0aa6d7440e85
This commit is contained in:
Luna Wei 2019-10-02 14:02:59 -07:00 коммит произвёл Facebook Github Bot
Родитель 40667a8147
Коммит ea1e8bbd34
4 изменённых файлов: 19 добавлений и 0 удалений

Просмотреть файл

@ -1180,6 +1180,10 @@ namespace facebook {
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "prefetchImage", @selector(prefetchImage:resolve:reject:), args, count); return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "prefetchImage", @selector(prefetchImage:resolve:reject:), args, count);
} }
static facebook::jsi::Value __hostFunction_NativeImageLoaderSpecJSI_queryCache(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "queryCache", @selector(queryCache:resolve:reject:), args, count);
}
NativeImageLoaderSpecJSI::NativeImageLoaderSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker) NativeImageLoaderSpecJSI::NativeImageLoaderSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker)
: ObjCTurboModule("ImageLoader", instance, jsInvoker) { : ObjCTurboModule("ImageLoader", instance, jsInvoker) {
@ -1194,6 +1198,9 @@ namespace facebook {
methodMap_["prefetchImage"] = MethodMetadata {1, __hostFunction_NativeImageLoaderSpecJSI_prefetchImage}; methodMap_["prefetchImage"] = MethodMetadata {1, __hostFunction_NativeImageLoaderSpecJSI_prefetchImage};
methodMap_["queryCache"] = MethodMetadata {1, __hostFunction_NativeImageLoaderSpecJSI_queryCache};
} }

Просмотреть файл

@ -1156,6 +1156,9 @@ namespace JS {
- (void)prefetchImage:(NSString *)uri - (void)prefetchImage:(NSString *)uri
resolve:(RCTPromiseResolveBlock)resolve resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject; reject:(RCTPromiseRejectBlock)reject;
- (void)queryCache:(NSArray *)uris
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject;
@end @end
namespace facebook { namespace facebook {

Просмотреть файл

@ -22,6 +22,9 @@ export interface Spec extends TurboModule {
headers: {[string]: string}, headers: {[string]: string},
) => Promise<$ReadOnly<{width: number, height: number}>>; ) => Promise<$ReadOnly<{width: number, height: number}>>;
+prefetchImage: (uri: string) => Promise<boolean>; +prefetchImage: (uri: string) => Promise<boolean>;
+queryCache: (
uris: Array<string>,
) => Promise<{[string]: 'memory' | 'disk' | 'disk/memory'}>;
} }
export default (TurboModuleRegistry.getEnforcing<Spec>('ImageLoader'): Spec); export default (TurboModuleRegistry.getEnforcing<Spec>('ImageLoader'): Spec);

Просмотреть файл

@ -996,6 +996,12 @@ RCT_EXPORT_METHOD(prefetchImage:(NSString *)uri
}]; }];
} }
RCT_EXPORT_METHOD(queryCache:(NSArray *)uris
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject)
{
resolve([self getImageCacheStatus:uris]);
}
@end @end
/** /**