Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32179465
D15136.1765073009.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D15136.1765073009.diff
View Options
diff --git a/native/ios/Comm.xcodeproj/project.pbxproj b/native/ios/Comm.xcodeproj/project.pbxproj
--- a/native/ios/Comm.xcodeproj/project.pbxproj
+++ b/native/ios/Comm.xcodeproj/project.pbxproj
@@ -18,6 +18,7 @@
34FF25BA2BB757870075EC40 /* AuxUserStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 34FF25B92BB757860075EC40 /* AuxUserStore.cpp */; };
443650412E21F3F200026241 /* StringUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 443650402E21F3F200026241 /* StringUtils.cpp */; };
443650422E21F3F200026241 /* StringUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 443650402E21F3F200026241 /* StringUtils.cpp */; };
+ 443650452E21F47600026241 /* CommInitializerModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = 443650442E21F47600026241 /* CommInitializerModule.mm */; };
71142A7726C2650B0039DCBD /* CommSecureStoreIOSWrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71142A7626C2650A0039DCBD /* CommSecureStoreIOSWrapper.mm */; };
711B408425DA97F9005F8F06 /* dummy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F26E81B24440D87004049C6 /* dummy.swift */; };
71762A75270D8AAE00F565ED /* PlatformSpecificTools.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71762A74270D8AAE00F565ED /* PlatformSpecificTools.mm */; };
@@ -186,6 +187,8 @@
3EEB3E70587B0ADAD05237B0 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-Comm/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
4436503F2E21F3F200026241 /* StringUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StringUtils.h; sourceTree = "<group>"; };
443650402E21F3F200026241 /* StringUtils.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = StringUtils.cpp; sourceTree = "<group>"; };
+ 443650432E21F47600026241 /* CommInitializerModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommInitializerModule.h; sourceTree = "<group>"; };
+ 443650442E21F47600026241 /* CommInitializerModule.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CommInitializerModule.mm; sourceTree = "<group>"; };
71142A7526C2650A0039DCBD /* CommSecureStoreIOSWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommSecureStoreIOSWrapper.h; path = Comm/CommSecureStoreIOSWrapper.h; sourceTree = "<group>"; };
71142A7626C2650A0039DCBD /* CommSecureStoreIOSWrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CommSecureStoreIOSWrapper.mm; path = Comm/CommSecureStoreIOSWrapper.mm; sourceTree = "<group>"; };
711CF80E25DC096000A00FBD /* libFolly.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFolly.a; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -489,6 +492,8 @@
71762A74270D8AAE00F565ED /* PlatformSpecificTools.mm */,
71D4D7CB26C50B1000FCDBCD /* CommSecureStore.mm */,
71142A7526C2650A0039DCBD /* CommSecureStoreIOSWrapper.h */,
+ 443650432E21F47600026241 /* CommInitializerModule.h */,
+ 443650442E21F47600026241 /* CommInitializerModule.mm */,
71142A7626C2650A0039DCBD /* CommSecureStoreIOSWrapper.mm */,
71CA4AEA262F230A00835C89 /* Tools.h */,
71CA4AEB262F236100835C89 /* Tools.mm */,
@@ -1325,6 +1330,7 @@
8E86A6D329537EBB000BBE7D /* DatabaseManager.cpp in Sources */,
CBDEC69B28ED867000C17588 /* GlobalDBSingleton.mm in Sources */,
8E18055A2DA95E7C00B772A4 /* SQLiteSchemaMigrations.cpp in Sources */,
+ 443650452E21F47600026241 /* CommInitializerModule.mm in Sources */,
DFD5E77E2B05264000C32B6A /* AESCrypto.mm in Sources */,
8EA59BD62A6E8E0400EB4F53 /* DraftStore.cpp in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
diff --git a/native/ios/CommInitializerModule.h b/native/ios/CommInitializerModule.h
new file mode 100644
--- /dev/null
+++ b/native/ios/CommInitializerModule.h
@@ -0,0 +1,4 @@
+#import <React/React-Core-umbrella.h>
+
+@interface CommInitializerModule : NSObject <RCTBridgeModule>
+@end
diff --git a/native/ios/CommInitializerModule.mm b/native/ios/CommInitializerModule.mm
new file mode 100644
--- /dev/null
+++ b/native/ios/CommInitializerModule.mm
@@ -0,0 +1,72 @@
+#import "CommInitializerModule.h"
+#import "CommConstants.h"
+#import "CommCoreModule.h"
+#import "CommRustModule.h"
+#import "CommUtilsModule.h"
+#import <ReactCommon/RCTTurboModule.h>
+
+@interface RCTBridge (JSIRuntime)
+- (void *)runtime;
+@end
+
+@implementation CommInitializerModule
+
+@synthesize bridge = _bridge;
+
+RCT_EXPORT_MODULE(CommInitializerModule);
+
+
++ (BOOL)requiresMainQueueSetup
+{
+ // We do want to run the initialization (`setBridge`) on the JS thread.
+ return NO;
+}
+
+- (void)setBridge:(RCTBridge *)bridge
+{
+ // As of React Native 0.74 with the New Architecture enabled,
+ // it's actually an instance of `RCTBridgeProxy` that provides backwards compatibility.
+ // Also, hold on with initializing the runtime until `setRuntimeExecutor` is called.
+ _bridge = bridge;
+}
+
+/**
+ A synchronous method that is called from JS before requiring
+ any module to ensure that all necessary bindings are installed.
+ */
+RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(initializeComm)
+{
+ RCTBridge* bridge = self.bridge;
+ facebook::jsi::Runtime &rt = *reinterpret_cast<facebook::jsi::Runtime *>(bridge.runtime);
+
+ auto jsCallInvoker = bridge.jsCallInvoker;
+
+ std::shared_ptr<comm::CommCoreModule> coreNativeModule =
+ std::make_shared<comm::CommCoreModule>(jsCallInvoker);
+ std::shared_ptr<comm::CommUtilsModule> utilsNativeModule =
+ std::make_shared<comm::CommUtilsModule>(jsCallInvoker);
+ std::shared_ptr<comm::CommRustModule> rustNativeModule =
+ std::make_shared<comm::CommRustModule>(jsCallInvoker);
+ std::shared_ptr<comm::CommConstants> nativeConstants =
+ std::make_shared<comm::CommConstants>();
+
+ rt.global().setProperty(
+ rt,
+ facebook::jsi::PropNameID::forAscii(rt, "CommCoreModule"),
+ facebook::jsi::Object::createFromHostObject(rt, coreNativeModule));
+ rt.global().setProperty(
+ rt,
+ facebook::jsi::PropNameID::forAscii(rt, "CommUtilsModule"),
+ facebook::jsi::Object::createFromHostObject(rt, utilsNativeModule));
+ rt.global().setProperty(
+ rt,
+ facebook::jsi::PropNameID::forAscii(rt, "CommRustModule"),
+ facebook::jsi::Object::createFromHostObject(rt, rustNativeModule));
+ rt.global().setProperty(
+ rt,
+ facebook::jsi::PropNameID::forAscii(rt, "CommConstants"),
+ facebook::jsi::Object::createFromHostObject(rt, nativeConstants));
+ return nil;
+}
+
+@end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 7, 2:03 AM (12 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5841078
Default Alt Text
D15136.1765073009.diff (6 KB)
Attached To
Mode
D15136: [native][RN79][skip-ci] Add CommInitializerModule [ios]
Attached
Detach File
Event Timeline
Log In to Comment