This commit is contained in:
hrxiang
2021-07-19 18:30:34 +08:00
parent f80410929d
commit b8ebc36d29
9 changed files with 265 additions and 183 deletions

View File

@@ -16,7 +16,7 @@ public class ConversationManager:NSObject{
}
func setConversationListener(methodCall: FlutterMethodCall, result: FlutterResult){
Open_im_sdkSetConversationListener(ConversationListenerImpl(channel: channel))
Open_im_sdkSetConversationListener(ConversationListener(channel: channel))
}
func getAllConversationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@@ -24,7 +24,7 @@ public class ConversationManager:NSObject{
}
func getOneConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetOneConversation(CommonUtil.getConversationId(methodCall: methodCall), CommonUtil.getSessionType(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkGetOneConversation(CommonUtil.getConversationSourceId(methodCall: methodCall), CommonUtil.getConversationSessionType(methodCall: methodCall), BaseImpl(result: result))
}
func getMultipleConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@@ -42,15 +42,10 @@ public class ConversationManager:NSObject{
func pinConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkPinConversation(CommonUtil.getConversationId(methodCall: methodCall), CommonUtil.isPinnedConversation(methodCall: methodCall), BaseImpl(result: result))
}
func getTotalUnreadMsgCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetTotalUnreadMsgCount(BaseImpl(result: result))
}
}
public class ConversationListenerImpl:NSObject,Open_im_sdkOnConversationListenerProtocol {
public class ConversationListener:NSObject,Open_im_sdkOnConversationListenerProtocol {
private let channel:FlutterMethodChannel

View File

@@ -16,7 +16,7 @@ public class FriendshipManager:NSObject{
}
func setFriendListener(methodCall: FlutterMethodCall, result: FlutterResult){
Open_im_sdkSetFriendListener(FriendshipListenerImpl(channel: channel))
Open_im_sdkSetFriendListener(FriendshipListener(channel: channel))
}
func getFriendsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@@ -40,7 +40,7 @@ public class FriendshipManager:NSObject{
}
func addToBlackList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAddToBlackList(BaseImpl(result: result), CommonUtil.getUserUid(methodCall: methodCall))
Open_im_sdkAddToBlackList(BaseImpl(result: result), CommonUtil.getJsonUid(methodCall: methodCall))
}
func getBlackList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@@ -48,7 +48,7 @@ public class FriendshipManager:NSObject{
}
func deleteFromBlackList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteFromBlackList(BaseImpl(result: result), CommonUtil.getUserUid(methodCall: methodCall))
Open_im_sdkDeleteFromBlackList(BaseImpl(result: result), CommonUtil.getJsonUid(methodCall: methodCall))
}
func checkFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@@ -56,15 +56,15 @@ public class FriendshipManager:NSObject{
}
func deleteFromFriendList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteFromFriendList(CommonUtil.getDeleteUid(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkDeleteFromFriendList(CommonUtil.getJsonUid(methodCall: methodCall), BaseImpl(result: result))
}
func acceptFriendApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAcceptFriendApplication(BaseImpl(result: result), CommonUtil.getUid(methodCall: methodCall))
Open_im_sdkAcceptFriendApplication(BaseImpl(result: result), CommonUtil.getJsonUid(methodCall: methodCall))
}
func refuseFriendApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkRefuseFriendApplication(BaseImpl(result: result), CommonUtil.getUid(methodCall: methodCall))
Open_im_sdkRefuseFriendApplication(BaseImpl(result: result), CommonUtil.getJsonUid(methodCall: methodCall))
}
func forceSyncFriendApplication(methodCall: FlutterMethodCall, result: FlutterResult){
@@ -80,7 +80,7 @@ public class FriendshipManager:NSObject{
}
}
public class FriendshipListenerImpl:NSObject,Open_im_sdkOnFriendshipListenerProtocol {
public class FriendshipListener:NSObject,Open_im_sdkOnFriendshipListenerProtocol {
private let channel:FlutterMethodChannel
init(channel:FlutterMethodChannel) {

View File

@@ -15,20 +15,24 @@ public class GroupManager:NSObject{
self.channel = channel
}
func setGroupListener(methodCall: FlutterMethodCall, result: FlutterResult){
Open_im_sdkSetGroupListener(GroupListener(channel: channel))
}
func inviteUserToGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkInviteUserToGroup(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupReason(methodCall: methodCall), CommonUtil.getGroupUserList(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkInviteUserToGroup(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), CommonUtil.getUidList(methodCall: methodCall), BaseImpl(result: result))
}
func kickGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkKickGroupMember(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupUserList(methodCall: methodCall), CommonUtil.getGroupReason(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkKickGroupMember(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), CommonUtil.getUidList(methodCall: methodCall), BaseImpl(result: result))
}
func getGroupMembersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupMembersInfo(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupUserList(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkGetGroupMembersInfo(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getUidList(methodCall: methodCall), BaseImpl(result: result))
}
func getGroupMemberList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupMemberList(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupFilter(methodCall: methodCall), CommonUtil.getGroupNext(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkGetGroupMemberList(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getGroupListFilter(methodCall: methodCall), CommonUtil.getGroupListNext(methodCall: methodCall), BaseImpl(result: result))
}
func getJoinedGroupList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@@ -36,27 +40,27 @@ public class GroupManager:NSObject{
}
func createGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkCreateGroup(CommonUtil.getGroupInfo(methodCall: methodCall), CommonUtil.getGroupMemberList(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkCreateGroup(CommonUtil.getGroupInfo(methodCall: methodCall), CommonUtil.getGroupMemberRoleList(methodCall: methodCall), BaseImpl(result: result))
}
func setGroupInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetGroupInfo(CommonUtil.getGroupJsonInfo(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkSetGroupInfo(CommonUtil.getGroupInfo(methodCall: methodCall), BaseImpl(result: result))
}
func getGroupsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupsInfo(CommonUtil.getGroupIdList(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkGetGroupsInfo(CommonUtil.getGidList(methodCall: methodCall), BaseImpl(result: result))
}
func joinGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkJoinGroup(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupMessage(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkJoinGroup(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), BaseImpl(result: result))
}
func quitGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkQuitGroup(CommonUtil.getGroupId(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkQuitGroup(CommonUtil.getGid(methodCall: methodCall), BaseImpl(result: result))
}
func transferGroupOwner(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkTransferGroupOwner(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupUserId(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkTransferGroupOwner(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getUid(methodCall: methodCall), BaseImpl(result: result))
}
func getGroupApplicationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@@ -64,11 +68,95 @@ public class GroupManager:NSObject{
}
func acceptGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAcceptGroupApplication(CommonUtil.getGroupApplication(methodCall: methodCall), CommonUtil.getGroupReason(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkAcceptGroupApplication(CommonUtil.getGroupApplicationInfo(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), BaseImpl(result: result))
}
func refuseGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkRefuseGroupApplication(CommonUtil.getGroupApplication(methodCall: methodCall), CommonUtil.getGroupReason(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkRefuseGroupApplication(CommonUtil.getGroupApplicationInfo(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), BaseImpl(result: result))
}
func forceSyncApplyGroupRequest(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncApplyGroupRequest()
}
func forceSyncGroupRequest(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncGroupRequest()
}
func forceSyncJoinedGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncJoinedGroup()
}
func forceSyncJoinedGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncJoinedGroupMember()
}
}
public class GroupListener:NSObject,Open_im_sdkOnGroupListenerProtocol {
private let channel:FlutterMethodChannel
init(channel:FlutterMethodChannel) {
self.channel = channel
}
public func onApplicationProcessed(_ s: String?,s1: String?,i: Int?,s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "opUser")
values.setValue(i, forKey: "agreeOrReject")
values.setValue(s2, forKey: "opReason")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onApplicationProcessed", errCode: nil, errMsg: nil, data: values)
}
public func onGroupCreated(_ s: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupCreated", errCode: nil, errMsg: nil, data: values)
}
public func onGroupInfoChanged(_ s: String?,s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "groupInfo")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupInfoChanged", errCode: nil, errMsg: nil, data: values)
}
public func onMemberEnter(_ s: String?,s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "memberList")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberEnter", errCode: nil, errMsg: nil, data: values)
}
public func onMemberInvited(_ s: String?,s1: String?,s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "opUser")
values.setValue(s2, forKey: "memberList")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberInvited", errCode: nil, errMsg: nil, data: values)
}
public func onMemberKicked(_ s: String?,s1: String?,s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "opUser")
values.setValue(s2, forKey: "memberList")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberKicked", errCode: nil, errMsg: nil, data: values)
}
public func onMemberLeave(_ s: String?,s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "member")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberLeave", errCode: nil, errMsg: nil, data: values)
}
public func onReceiveJoinApplication(_ s: String?,s1: String?,s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "member")
values.setValue(s2, forKey: "opReason")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onReceiveJoinApplication", errCode: nil, errMsg: nil, data: values)
}
}

View File

@@ -17,7 +17,7 @@ public class IMMananger:NSObject{
}
func initSDK(methodCall: FlutterMethodCall, result: FlutterResult){
Open_im_sdkInitSDK(CommonUtil.getSDKJsonParam(methodCall: methodCall), SDKListenerImpl(channel: self.channel))
Open_im_sdkInitSDK(CommonUtil.getSDKJsonParam(methodCall: methodCall), SDKListener(channel: self.channel))
}
func login(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
@@ -33,7 +33,7 @@ public class IMMananger:NSObject{
}
func getLoginUid(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
DispatchQueue.main.async { result(Open_im_sdkGetLoginUser()) }
DispatchQueue.main.async { result(Open_im_sdkGetLoginUid()) }
}
func getUsersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
@@ -47,9 +47,13 @@ public class IMMananger:NSObject{
func forceSyncLoginUerInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncLoginUerInfo()
}
func forceReConn(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceReConn()
}
}
public class SDKListenerImpl:NSObject,Open_im_sdkIMSDKListenerProtocol {
public class SDKListener:NSObject,Open_im_sdkIMSDKListenerProtocol {
private let channel:FlutterMethodChannel
init(channel:FlutterMethodChannel) {

View File

@@ -12,20 +12,17 @@ public class MessageManager:NSObject{
private let KEY_ID: String = "id"
private let channel:FlutterMethodChannel
private let listeners: NSMutableDictionary = NSMutableDictionary(capacity: 0)
private var sendMsgProgressListener: SendMsgProgressListener?
init(channel:FlutterMethodChannel) {
self.channel = channel
}
func addAdvancedMsgListener(methodCall: FlutterMethodCall, result: FlutterResult){
if sendMsgProgressListener == nil {
sendMsgProgressListener = SendMsgProgressListener(channel: channel)
}
let d = methodCall.arguments as! NSDictionary
let key = d.value(forKey: KEY_ID) as! String
if !listeners.allKeys.contains(where: {($0 as! String).compare(key) == .orderedSame}) {
let lis = AdvancedMsgListenerImpl(channel: channel, id: key)
let lis = AdvancedMsgListener(channel: channel, id: key)
let k = methodCall.arguments as! NSDictionary
let s = k.value(forKey: KEY_ID) as! String
listeners.setValue(lis, forKey: s)
@@ -38,17 +35,18 @@ public class MessageManager:NSObject{
let k = methodCall.arguments as! NSDictionary
let s = k.value(forKey: KEY_ID) as! String
if listeners.allKeys.contains(where: {($0 as! String).compare(s) == .orderedSame}) {
let lis = listeners.value(forKey: s) as! AdvancedMsgListenerImpl
let lis = listeners.value(forKey: s) as! AdvancedMsgListener
listeners.removeObject(forKey: s)
Open_im_sdkRemoveAdvancedMsgListener(lis)
}
}
func sendMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
let sendMsgProgressListener: SendMsgProgressListener= SendMsgProgressListener(channel: channel)
sendMsgProgressListener?.setCall(methodCall: methodCall)
sendMsgProgressListener?.setResult(result: result)
print("===============sendMessage===============")
Open_im_sdkSendMessage(sendMsgProgressListener, CommonUtil.getSendMessageContent(methodCall: methodCall), CommonUtil.getSendMessageReceiver(methodCall: methodCall), CommonUtil.getSendMessageGroupId(methodCall: methodCall), CommonUtil.getSendMessageOnlineOnly(methodCall: methodCall))
Open_im_sdkSendMessage(sendMsgProgressListener, CommonUtil.getSendMessageContent(methodCall: methodCall), CommonUtil.getSendMessageReceiver(methodCall: methodCall), CommonUtil.geSendMessageGroupId(methodCall: methodCall), CommonUtil.getSendMessageOnlineOnly(methodCall: methodCall))
}
func getHistoryMessageList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@@ -78,7 +76,11 @@ public class MessageManager:NSObject{
func markSingleMessageHasRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkMarkSingleMessageHasRead(BaseImpl(result: result), CommonUtil.getSingleMessageUserid(methodCall: methodCall))
}
func markGroupMessageHasRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkMarkGroupMessageHasRead(BaseImpl(result: result), CommonUtil.getGroupMessageGroupid(methodCall: methodCall))
}
func createTextMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
let prama = Open_im_sdkCreateTextMessage(CommonUtil.getMessageText(methodCall: methodCall))
DispatchQueue.main.async { result(prama) }
@@ -118,7 +120,13 @@ public class MessageManager:NSObject{
let prama = Open_im_sdkCreateForwardMessage(CommonUtil.getForwardMessage(methodCall: methodCall))
DispatchQueue.main.async { result(prama) }
}
func getTotalUnreadMsgCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetTotalUnreadMsgCount(BaseImpl(result: result))
}
func forceSyncMsg(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkForceSyncMsg()
}
public class SendMsgProgressListener:NSObject, Open_im_sdkSendMsgCallBackProtocol {
@@ -149,7 +157,7 @@ public class SendMsgProgressListener:NSObject, Open_im_sdkSendMsgCallBackProtoco
print("=================onProgress============\nprogress:\(progress)");
values.setValue(CommonUtil.getSendMessageClientMsgID(methodCall: self.call!), forKey: "clientMsgID")
values.setValue(progress, forKey: "progress")
CommonUtil.emitEvent(channel: channel, method: "messageProgressListener", type: "onProgress", errCode: nil, errMsg: nil, data: values)
CommonUtil.emitEvent(channel: channel, method: "msgSendProgressListener", type: "onProgress", errCode: nil, errMsg: nil, data: values)
}
public func onSuccess(_ data: String?) {
@@ -159,7 +167,7 @@ public class SendMsgProgressListener:NSObject, Open_im_sdkSendMsgCallBackProtoco
}
public class AdvancedMsgListenerImpl: NSObject, Open_im_sdkOnAdvancedMsgListenerProtocol {
public class AdvancedMsgListener: NSObject, Open_im_sdkOnAdvancedMsgListenerProtocol {
private let channel: FlutterMethodChannel
private let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)