import Foundation import OpenIMCore public class UserManager: BaseServiceManager { public override func registerHandlers() { super.registerHandlers() self["setUserListener"] = setUserListener self["getUsersInfo"] = getUsersInfo self["setSelfInfo"] = setSelfInfo self["getSelfUserInfo"] = getSelfUserInfo self["subscribeUsersStatus"] = subscribeUsersStatus self["unsubscribeUsersStatus"] = unsubscribeUsersStatus self["getSubscribeUsersStatus"] = getSubscribeUsersStatus self["getUserStatus"] = getUserStatus self["getUsersInfoWithCache"] = getUsersInfoWithCache /* self["setSelfInfoEx"] = setSelfInfoEx */ } func setUserListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ Open_im_sdkSetUserListener(UserListener(channel: channel)) callBack(result) } func getUsersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { Open_im_sdkGetUsersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDList"]) } func setSelfInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { Open_im_sdkSetSelfInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString()) } func getSelfUserInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) { Open_im_sdkGetSelfUserInfo(BaseCallback(result: result), methodCall[string: "operationID"]) } func subscribeUsersStatus(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ Open_im_sdkSubscribeUsersStatus(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDs"]) } func unsubscribeUsersStatus(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ Open_im_sdkUnsubscribeUsersStatus(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDs"]) } func getSubscribeUsersStatus(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ Open_im_sdkGetSubscribeUsersStatus(BaseCallback(result: result), methodCall[string: "operationID"]) } func getUserStatus(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ Open_im_sdkGetUserStatus(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDs"]) } func getUsersInfoWithCache(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ Open_im_sdkGetUsersInfoWithCache(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDs"], methodCall[string: "groupID"]) } /* func setSelfInfoEx(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ Open_im_sdkSetSelfInfoEx(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString()) } */ } public class UserListener: NSObject, Open_im_sdk_callbackOnUserListenerProtocol { public func onUserCommandAdd(_ userCommand: String?) { CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onUserCommandAdd", errCode: nil, errMsg: nil, data: userCommand) } public func onUserCommandDelete(_ userCommand: String?) { CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onUserCommandDelete", errCode: nil, errMsg: nil, data: userCommand) } public func onUserCommandUpdate(_ userCommand: String?) { CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onUserCommandUpdate", errCode: nil, errMsg: nil, data: userCommand) } private let channel:FlutterMethodChannel init(channel:FlutterMethodChannel) { self.channel = channel } public func onSelfInfoUpdated(_ userInfo: String?) { CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onSelfInfoUpdated", errCode: nil, errMsg: nil, data: userInfo) } public func onUserStatusChanged(_ statusInfo: String?) { CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onUserStatusChanged", errCode: nil, errMsg: nil, data: statusInfo) } }