Skip to content

Commit

Permalink
feat(bridge): binded iOS and Go Invoke method, removed obsolete methods
Browse files Browse the repository at this point in the history
  • Loading branch information
aeddi authored and gfanton committed Apr 17, 2019
1 parent 6f9de8b commit c0ab03d
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 238 deletions.
1 change: 0 additions & 1 deletion client/react-native/ios/Berty.xcodeproj/project.pbxproj
Expand Up @@ -5,7 +5,6 @@
};
objectVersion = 46;
objects = {

/* Begin PBXBuildFile section */
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
Expand Down
48 changes: 2 additions & 46 deletions client/react-native/ios/modules/core/CoreModule.m
Expand Up @@ -26,60 +26,16 @@ @implementation objc_name (RCTExternModule) \

@interface RCT_EXTERN_REMAP_MODULE_2(CoreModule, CoreModule, NSObject)

RCT_EXTERN_METHOD(initialize:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(listAccounts:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(start:(NSString)nickname
RCT_EXTERN_METHOD(invoke:(NSString)method
message:(NSString)message
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(restart:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(panic:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXPORT_METHOD(throwException)
{
@throw [NSException exceptionWithName:@"throw exception" reason:@"throw native exception" userInfo:nil];
}

RCT_EXTERN_METHOD(dropDatabase:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(getPort:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(getNetworkConfig:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(updateNetworkConfig:(NSString *)config
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(isBotRunning:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(startBot:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(stopBot:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(getLocalGRPCInfos:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(startLocalGRPC:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(stopLocalGRPC:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(setCurrentRoute:(NSString)route);

RCT_EXTERN_METHOD(getNotificationStatus:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject);

Expand Down
194 changes: 3 additions & 191 deletions client/react-native/ios/modules/core/CoreModule.swift
Expand Up @@ -20,212 +20,24 @@ var logger = Logger("chat.berty.io", "CoreModule")
class CoreModule: NSObject {
let connectivity = ConnectivityUpdateHandler()
let serialCoreQueue = DispatchQueue(label: "BertyCore")
let daemon: CoreNativeBridge = NewCoreNativeBridge()
let daemon = CoreNewNativeBridge()

@objc func invoke(_ method: string, message: string, resolve: RCTPromiseResolveBlock!, reject: RCTPromiseRejectBlock!) {
@objc func invoke(_ method: NSString, message: NSString, resolve: RCTPromiseResolveBlock!, reject: RCTPromiseRejectBlock!) {
self.serialCoreQueue.sync {
var err: NSError?

do {
let ret = self.daemon.Invoke(method, message, &err)
let ret = self.daemon?.invoke(method as String, msgIn: message as String, error: &err)
if let error = err {
throw error
}

resolve(ret)
} catch let error as NSError {
reject("\(String(describing: error.code))", error.userInfo.description, error)
}
}
}

@objc func initialize(_ resolve: RCTPromiseResolveBlock!, reject: RCTPromiseRejectBlock!) {
var err: NSError?

do {
CoreInitialize(logger, Core.deviceInfo()?.getStoragePath(), &err)
if let error = err {
throw error
}
resolve(nil)
} catch let error as NSError {
logger.format("unable to init core: %@", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.userInfo.description, error)
}
}

@objc func listAccounts(_ resolve: RCTPromiseResolveBlock!, reject: RCTPromiseRejectBlock!) {
var err: NSError?

do {
let list = CoreListAccounts(&err)
if let error = err {
throw error
}
resolve(list)
} catch let error as NSError {
logger.format("unable to list accounts: %@", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.userInfo.description, error)
}
}

@objc func start(_ nickname: NSString, resolve: RCTPromiseResolveBlock!, reject: RCTPromiseRejectBlock!) {
var err: NSError?

do {

guard let coreOptions = CoreMobileOptions()
.withLoggerDriver(logger)?
.withNickname(nickname as String)
else {
throw CoreError.invalidOptions
}

CoreStart(coreOptions, &err)
if let error = err {
throw error
}
resolve(nil)
} catch let error as NSError {
logger.format("unable to start core: %@", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
}
}

@objc func restart(_ resolve: RCTPromiseResolveBlock!, reject: RCTPromiseRejectBlock!) {
var err: NSError?

do {
CoreRestart(&err)
if let error = err {
throw error
}
resolve(nil)
} catch let error as NSError {
logger.format("unable to restart core: %@", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
}
}

@objc func panic(_ resolve: RCTPromiseResolveBlock!, reject: RCTPromiseRejectBlock!) {
CorePanic()
resolve(nil)
}

@objc func dropDatabase(_ resolve: RCTPromiseResolveBlock!, reject: RCTPromiseRejectBlock!) {

var err: NSError?

do {
CoreDropDatabase(&err)
if let error = err {
throw error
}
resolve(nil)
} catch let error as NSError {
logger.format("unable to drop database: %@", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
}
}

@objc func getPort(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
var err: NSError?
var port: Int = 0

CoreGetPort(&port, &err)
if let error = err {
logger.format("unable to get port: ", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
} else {
resolve(port)
}
}

@objc func getNetworkConfig(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
var err: NSError?
var config: String!

config = CoreGetNetworkConfig(&err)
if let error = err {
logger.format("get network config error: ", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
} else {
resolve(config)
}
}

@objc func updateNetworkConfig(_ config: String, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
var err: NSError?

CoreUpdateNetworkConfig(config, &err)
if let error = err {
logger.format("update network config error: ", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
} else {
resolve(nil)
}
}

@objc func isBotRunning(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
resolve(CoreIsBotRunning())
}

@objc func startBot(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
var err: NSError?

CoreStartBot(&err)
if let error = err {
logger.format("start bot error: ", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
} else {
resolve(nil)
}
}

@objc func stopBot(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
var err: NSError?

CoreStopBot(&err)
if let error = err {
logger.format("stop bot error: ", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
} else {
resolve(nil)
}
}

@objc func getLocalGRPCInfos(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
resolve(CoreGetLocalGRPCInfos())
}

@objc func startLocalGRPC(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
var err: NSError?

CoreStartLocalGRPC(&err)
if let error = err {
logger.format("start local gRPC error: ", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
} else {
resolve(nil)
}
}

@objc func stopLocalGRPC(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
var err: NSError?

CoreStopLocalGRPC(&err)
if let error = err {
logger.format("stop local gRPC error: ", level: .error, error.userInfo.description)
reject("\(String(describing: error.code))", error.localizedDescription, error)
} else {
resolve(nil)
}
}

@objc func setCurrentRoute(_ route: String!) {
Core.deviceInfo()?.setAppRoute(route)
}

@objc static func requiresMainQueueSetup() -> Bool {
return false
}
Expand Down

0 comments on commit c0ab03d

Please sign in to comment.