Page MenuHomePhorge

D15136.1765073009.diff
No OneTemporary

Size
6 KB
Referenced Files
None
Subscribers
None

D15136.1765073009.diff

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

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)

Event Timeline