You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
open-im-sdk-flutter-m/ios/Classes/Module/GroupManager.swift

198 lines
8.9 KiB

//
// GroupManager.swift
// flutter_openim_sdk
//
// Created by z1u24 on 2021/7/5.
//
import Foundation
import OpenIMCore
public class GroupManager: BaseServiceManager {
public override func registerHandlers() {
super.registerHandlers()
self["setGroupListener"] = setGroupListener
self["inviteUserToGroup"] = inviteUserToGroup
self["kickGroupMember"] = kickGroupMember
self["getGroupMembersInfo"] = getGroupMembersInfo
self["getGroupMemberList"] = getGroupMemberList
self["getJoinedGroupList"] = getJoinedGroupList
self["createGroup"] = createGroup
self["setGroupInfo"] = setGroupInfo
self["getGroupsInfo"] = getGroupsInfo
self["joinGroup"] = joinGroup
self["quitGroup"] = quitGroup
self["transferGroupOwner"] = transferGroupOwner
self["getGroupApplicationList"] = getGroupApplicationList
self["acceptGroupApplication"] = acceptGroupApplication
self["refuseGroupApplication"] = refuseGroupApplication
// self["forceSyncApplyGroupRequest"] = forceSyncApplyGroupRequest
// self["forceSyncGroupRequest"] = forceSyncGroupRequest
// self["forceSyncJoinedGroup"] = forceSyncJoinedGroup
// self["forceSyncJoinedGroupMember"] = forceSyncJoinedGroupMember
}
func setGroupListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetGroupListener(GroupListener(channel: channel))
callBack(result)
}
func inviteUserToGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkInviteUserToGroup(methodCall[string: "gid"], methodCall[string: "reason"],
methodCall[jsonString: "uidList"], BaseCallback(result: result))
}
func kickGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkKickGroupMember(methodCall[string: "gid"], methodCall[string: "reason"],
methodCall[jsonString: "uidList"], BaseCallback(result: result))
}
func getGroupMembersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupMembersInfo(methodCall[string: "gid"], methodCall[jsonString: "uidList"], BaseCallback(result: result))
}
func getGroupMemberList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupMemberList(methodCall[string: "gid"], methodCall[int32: "filter"],
methodCall[int32: "next"], BaseCallback(result: result))
}
func getJoinedGroupList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetJoinedGroupList(BaseCallback(result: result))
}
func createGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkCreateGroup(methodCall[jsonString: "gInfo"], methodCall[jsonString: "memberList"], BaseCallback(result: result))
}
func setGroupInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetGroupInfo(methodCall[jsonString: "gInfo"], BaseCallback(result: result))
}
func getGroupsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupsInfo(methodCall[jsonString: "gidList"], BaseCallback(result: result))
}
func joinGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkJoinGroup(methodCall[string: "gid"], methodCall[string: "reason"], BaseCallback(result: result))
}
func quitGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkQuitGroup(methodCall[string: "gid"], BaseCallback(result: result))
}
func transferGroupOwner(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkTransferGroupOwner(methodCall[string: "gid"], methodCall[string: "uid"], BaseCallback(result: result))
}
func getGroupApplicationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupApplicationList(BaseCallback(result: result))
}
func acceptGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAcceptGroupApplication(methodCall[jsonString: "application"], methodCall[string: "reason"], BaseCallback(result: result))
}
func refuseGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkRefuseGroupApplication(methodCall[jsonString: "application"], methodCall[string: "reason"], BaseCallback(result: result))
}
// func forceSyncApplyGroupRequest(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
// Open_im_sdkForceSyncApplyGroupRequest()
// callBack(result)
// }
//
// func forceSyncGroupRequest(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
// Open_im_sdkForceSyncGroupRequest()
// callBack(result)
// }
//
// func forceSyncJoinedGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
// Open_im_sdkForceSyncJoinedGroup()
// callBack(result)
// }
//
// func forceSyncJoinedGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
// Open_im_sdkForceSyncJoinedGroupMember()
// callBack(result)
// }
}
public class GroupListener: NSObject, Open_im_sdkOnGroupListenerProtocol {
private let channel:FlutterMethodChannel
init(channel:FlutterMethodChannel) {
self.channel = channel
}
public func onApplicationProcessed(_ groupId: String?, opUser: String?, agreeOrReject AgreeOrReject: Int32, opReason: String?) {
var values: [String: Any] = [:]
values["groupId"] = groupId
values["opUser"] = opUser
values["agreeOrReject"] = AgreeOrReject
values["opReason"] = opReason
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onApplicationProcessed", errCode: nil, errMsg: nil, data: values)
}
// 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?) {
var values: [String: Any] = [:]
values["groupId"] = s
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupCreated", errCode: nil, errMsg: nil, data: values)
}
public func onGroupInfoChanged(_ s: String?, groupInfo s1: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["groupInfo"] = s1
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupInfoChanged", errCode: nil, errMsg: nil, data: values)
}
public func onMemberEnter(_ s: String?, memberList s1: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["memberList"] = s1
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberEnter", errCode: nil, errMsg: nil, data: values)
}
public func onMemberInvited(_ s: String?,opUser s1: String?, memberList s2: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["opUser"] = s1
values["memberList"] = s2
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberInvited", errCode: nil, errMsg: nil, data: values)
}
public func onMemberKicked(_ s: String?,opUser s1: String?,memberList s2: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["opUser"] = s1
values["memberList"] = s2
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberKicked", errCode: nil, errMsg: nil, data: values)
}
public func onMemberLeave(_ s: String?,member s1: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["member"] = s1
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberLeave", errCode: nil, errMsg: nil, data: values)
}
public func onReceiveJoinApplication(_ s: String?,member s1: String?,opReason s2: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["member"] = s1
values["opReason"] = s2
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onReceiveJoinApplication", errCode: nil, errMsg: nil, data: values)
}
}