Skip to content

Commit

Permalink
Make RCTImageEditingManager and RCTImageStoreManager TurboModule-comp…
Browse files Browse the repository at this point in the history
…atible

Summary:
**Note:** The specs for these NativeModules live within FBInternal. I just made `fbsource//xplat/js:FBReactNativeSpec` depend on the internal specs.

Changelog: [iOS][Added] Make RCTImageEditingManager and RCTImageStoreManager TurboModule-compatible

Reviewed By: shergin

Differential Revision: D17969820

fbshipit-source-id: c02bdb2e6e62ead98c64c49956d58ca80449892f
  • Loading branch information
RSNara authored and facebook-github-bot committed Oct 22, 2019
1 parent c8701b6 commit 32b2020
Show file tree
Hide file tree
Showing 4 changed files with 319 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1140,6 +1140,51 @@ + (RCTManagedPointer *)JS_NativeFrameRateLogger_SpecSetGlobalOptionsOptions:(id)



}

} // namespace react
} // namespace facebook
@implementation RCTCxxConvert (NativeImageEditor_OptionsOffset)
+ (RCTManagedPointer *)JS_NativeImageEditor_OptionsOffset:(id)json
{
return facebook::react::managedPointer<JS::NativeImageEditor::OptionsOffset>(json);
}
@end
@implementation RCTCxxConvert (NativeImageEditor_OptionsSize)
+ (RCTManagedPointer *)JS_NativeImageEditor_OptionsSize:(id)json
{
return facebook::react::managedPointer<JS::NativeImageEditor::OptionsSize>(json);
}
@end
@implementation RCTCxxConvert (NativeImageEditor_OptionsDisplaySize)
+ (RCTManagedPointer *)JS_NativeImageEditor_OptionsDisplaySize:(id)json
{
return facebook::react::managedPointer<JS::NativeImageEditor::OptionsDisplaySize>(json);
}
@end
@implementation RCTCxxConvert (NativeImageEditor_Options)
+ (RCTManagedPointer *)JS_NativeImageEditor_Options:(id)json
{
return facebook::react::managedPointer<JS::NativeImageEditor::Options>(json);
}
@end
namespace facebook {
namespace react {


static facebook::jsi::Value __hostFunction_NativeImageEditorSpecJSI_cropImage(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "cropImage", @selector(cropImage:cropData:successCallback:errorCallback:), args, count);
}


NativeImageEditorSpecJSI::NativeImageEditorSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker)
: ObjCTurboModule("ImageEditor", instance, jsInvoker) {

methodMap_["cropImage"] = MethodMetadata {4, __hostFunction_NativeImageEditorSpecJSI_cropImage};

setMethodArgConversionSelector(@"cropImage", 1, @"JS_NativeImageEditor_Options:");


}

} // namespace react
Expand Down Expand Up @@ -1250,6 +1295,53 @@ + (RCTManagedPointer *)JS_NativeImagePickerIOS_SpecOpenSelectDialogConfig:(id)js



}

} // namespace react
} // namespace facebook
@implementation RCTCxxConvert (NativeImageStore_SpecAddImageFromBase64ErrorCallbackError)
+ (RCTManagedPointer *)JS_NativeImageStore_SpecAddImageFromBase64ErrorCallbackError:(id)json
{
return facebook::react::managedPointer<JS::NativeImageStore::SpecAddImageFromBase64ErrorCallbackError>(json);
}
@end
namespace facebook {
namespace react {


static facebook::jsi::Value __hostFunction_NativeImageStoreSpecJSI_getBase64ForTag(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "getBase64ForTag", @selector(getBase64ForTag:successCallback:errorCallback:), args, count);
}

static facebook::jsi::Value __hostFunction_NativeImageStoreSpecJSI_hasImageForTag(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "hasImageForTag", @selector(hasImageForTag:callback:), args, count);
}

static facebook::jsi::Value __hostFunction_NativeImageStoreSpecJSI_removeImageForTag(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "removeImageForTag", @selector(removeImageForTag:), args, count);
}

static facebook::jsi::Value __hostFunction_NativeImageStoreSpecJSI_addImageFromBase64(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "addImageFromBase64", @selector(addImageFromBase64:successCallback:errorCallback:), args, count);
}


NativeImageStoreSpecJSI::NativeImageStoreSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker)
: ObjCTurboModule("ImageStore", instance, jsInvoker) {

methodMap_["getBase64ForTag"] = MethodMetadata {3, __hostFunction_NativeImageStoreSpecJSI_getBase64ForTag};


methodMap_["hasImageForTag"] = MethodMetadata {2, __hostFunction_NativeImageStoreSpecJSI_hasImageForTag};


methodMap_["removeImageForTag"] = MethodMetadata {1, __hostFunction_NativeImageStoreSpecJSI_removeImageForTag};


methodMap_["addImageFromBase64"] = MethodMetadata {3, __hostFunction_NativeImageStoreSpecJSI_addImageFromBase64};



}

} // namespace react
Expand Down
188 changes: 188 additions & 0 deletions Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h
Original file line number Diff line number Diff line change
Expand Up @@ -1191,6 +1191,97 @@ namespace facebook {
};
} // namespace react
} // namespace facebook

namespace JS {
namespace NativeImageEditor {
struct OptionsOffset {
double x() const;
double y() const;

OptionsOffset(NSDictionary *const v) : _v(v) {}
private:
NSDictionary *_v;
};
}
}

@interface RCTCxxConvert (NativeImageEditor_OptionsOffset)
+ (RCTManagedPointer *)JS_NativeImageEditor_OptionsOffset:(id)json;
@end

namespace JS {
namespace NativeImageEditor {
struct OptionsSize {
double width() const;
double height() const;

OptionsSize(NSDictionary *const v) : _v(v) {}
private:
NSDictionary *_v;
};
}
}

@interface RCTCxxConvert (NativeImageEditor_OptionsSize)
+ (RCTManagedPointer *)JS_NativeImageEditor_OptionsSize:(id)json;
@end

namespace JS {
namespace NativeImageEditor {
struct OptionsDisplaySize {
double width() const;
double height() const;

OptionsDisplaySize(NSDictionary *const v) : _v(v) {}
private:
NSDictionary *_v;
};
}
}

@interface RCTCxxConvert (NativeImageEditor_OptionsDisplaySize)
+ (RCTManagedPointer *)JS_NativeImageEditor_OptionsDisplaySize:(id)json;
@end

namespace JS {
namespace NativeImageEditor {
struct Options {
JS::NativeImageEditor::OptionsOffset offset() const;
JS::NativeImageEditor::OptionsSize size() const;
folly::Optional<JS::NativeImageEditor::OptionsDisplaySize> displaySize() const;
NSString *resizeMode() const;

Options(NSDictionary *const v) : _v(v) {}
private:
NSDictionary *_v;
};
}
}

@interface RCTCxxConvert (NativeImageEditor_Options)
+ (RCTManagedPointer *)JS_NativeImageEditor_Options:(id)json;
@end
@protocol NativeImageEditorSpec <RCTBridgeModule, RCTTurboModule>

- (void)cropImage:(NSString *)uri
cropData:(JS::NativeImageEditor::Options &)cropData
successCallback:(RCTResponseSenderBlock)successCallback
errorCallback:(RCTResponseSenderBlock)errorCallback;

@end
namespace facebook {
namespace react {
/**
* ObjC++ class for module 'ImageEditor'
*/

class JSI_EXPORT NativeImageEditorSpecJSI : public ObjCTurboModule {
public:
NativeImageEditorSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker);

};
} // namespace react
} // namespace facebook
@protocol NativeImageLoaderSpec <RCTBridgeModule, RCTTurboModule>

- (void)getSize:(NSString *)uri
Expand Down Expand Up @@ -1282,6 +1373,48 @@ namespace facebook {
};
} // namespace react
} // namespace facebook

namespace JS {
namespace NativeImageStore {
struct SpecAddImageFromBase64ErrorCallbackError {
NSString *message() const;

SpecAddImageFromBase64ErrorCallbackError(NSDictionary *const v) : _v(v) {}
private:
NSDictionary *_v;
};
}
}

@interface RCTCxxConvert (NativeImageStore_SpecAddImageFromBase64ErrorCallbackError)
+ (RCTManagedPointer *)JS_NativeImageStore_SpecAddImageFromBase64ErrorCallbackError:(id)json;
@end
@protocol NativeImageStoreSpec <RCTBridgeModule, RCTTurboModule>

- (void)getBase64ForTag:(NSString *)uri
successCallback:(RCTResponseSenderBlock)successCallback
errorCallback:(RCTResponseSenderBlock)errorCallback;
- (void)hasImageForTag:(NSString *)uri
callback:(RCTResponseSenderBlock)callback;
- (void)removeImageForTag:(NSString *)uri;
- (void)addImageFromBase64:(NSString *)base64ImageData
successCallback:(RCTResponseSenderBlock)successCallback
errorCallback:(RCTResponseSenderBlock)errorCallback;

@end
namespace facebook {
namespace react {
/**
* ObjC++ class for module 'ImageStore'
*/

class JSI_EXPORT NativeImageStoreSpecJSI : public ObjCTurboModule {
public:
NativeImageStoreSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker);

};
} // namespace react
} // namespace facebook
@protocol NativeJSCSamplingProfilerSpec <RCTBridgeModule, RCTTurboModule>

- (void)operationComplete:(double)token
Expand Down Expand Up @@ -2852,6 +2985,56 @@ inline JS::NativeI18nManager::Constants::Builder::Builder(const Input i) : _fact
inline JS::NativeI18nManager::Constants::Builder::Builder(Constants i) : _factory(^{
return i.unsafeRawValue();
}) {}
inline double JS::NativeImageEditor::OptionsOffset::x() const
{
id const p = _v[@"x"];
return RCTBridgingToDouble(p);
}
inline double JS::NativeImageEditor::OptionsOffset::y() const
{
id const p = _v[@"y"];
return RCTBridgingToDouble(p);
}
inline double JS::NativeImageEditor::OptionsSize::width() const
{
id const p = _v[@"width"];
return RCTBridgingToDouble(p);
}
inline double JS::NativeImageEditor::OptionsSize::height() const
{
id const p = _v[@"height"];
return RCTBridgingToDouble(p);
}
inline double JS::NativeImageEditor::OptionsDisplaySize::width() const
{
id const p = _v[@"width"];
return RCTBridgingToDouble(p);
}
inline double JS::NativeImageEditor::OptionsDisplaySize::height() const
{
id const p = _v[@"height"];
return RCTBridgingToDouble(p);
}
inline JS::NativeImageEditor::OptionsOffset JS::NativeImageEditor::Options::offset() const
{
id const p = _v[@"offset"];
return JS::NativeImageEditor::OptionsOffset(p);
}
inline JS::NativeImageEditor::OptionsSize JS::NativeImageEditor::Options::size() const
{
id const p = _v[@"size"];
return JS::NativeImageEditor::OptionsSize(p);
}
inline folly::Optional<JS::NativeImageEditor::OptionsDisplaySize> JS::NativeImageEditor::Options::displaySize() const
{
id const p = _v[@"displaySize"];
return (p == nil ? folly::none : folly::make_optional(JS::NativeImageEditor::OptionsDisplaySize(p)));
}
inline NSString *JS::NativeImageEditor::Options::resizeMode() const
{
id const p = _v[@"resizeMode"];
return RCTBridgingToString(p);
}
inline bool JS::NativeImagePickerIOS::SpecOpenCameraDialogConfig::unmirrorFrontFacingCamera() const
{
id const p = _v[@"unmirrorFrontFacingCamera"];
Expand All @@ -2872,6 +3055,11 @@ inline bool JS::NativeImagePickerIOS::SpecOpenSelectDialogConfig::showVideos() c
id const p = _v[@"showVideos"];
return RCTBridgingToBool(p);
}
inline NSString *JS::NativeImageStore::SpecAddImageFromBase64ErrorCallbackError::message() const
{
id const p = _v[@"message"];
return RCTBridgingToString(p);
}
inline JS::NativeJSDevSupport::Constants::Builder::Builder(const Input i) : _factory(^{
NSMutableDictionary *d = [NSMutableDictionary new];
auto ERROR_CODE_EXCEPTION = i.ERROR_CODE_EXCEPTION.get();
Expand Down
Loading

0 comments on commit 32b2020

Please sign in to comment.