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.
203 lines
11 KiB
203 lines
11 KiB
import Foundation
|
|
import OpenIMCore
|
|
|
|
public class GroupManager: BaseServiceManager {
|
|
|
|
public override func registerHandlers() {
|
|
super.registerHandlers()
|
|
self["acceptGroupApplication"] = acceptGroupApplication
|
|
self["changeGroupMemberMute"] = changeGroupMemberMute
|
|
self["changeGroupMute"] = changeGroupMute
|
|
self["createGroup"] = createGroup
|
|
self["dismissGroup"] = dismissGroup
|
|
self["getGroupApplicationListAsApplicant"] = getGroupApplicationListAsApplicant
|
|
self["getGroupApplicationListAsRecipient"] = getGroupApplicationListAsRecipient
|
|
self["getGroupMemberList"] = getGroupMemberList
|
|
self["getGroupMemberListByJoinTimeFilter"] = getGroupMemberListByJoinTimeFilter
|
|
self["getGroupMemberOwnerAndAdmin"] = getGroupMemberOwnerAndAdmin
|
|
self["getGroupMembersInfo"] = getGroupMembersInfo
|
|
self["getGroupsInfo"] = getGroupsInfo
|
|
self["getJoinedGroupList"] = getJoinedGroupList
|
|
self["getJoinedGroupListPage"] = getJoinedGroupListPage
|
|
self["getUsersInGroup"] = getUsersInGroup
|
|
self["inviteUserToGroup"] = inviteUserToGroup
|
|
self["isJoinGroup"] = isJoinGroup
|
|
self["joinGroup"] = joinGroup
|
|
self["kickGroupMember"] = kickGroupMember
|
|
self["quitGroup"] = quitGroup
|
|
self["refuseGroupApplication"] = refuseGroupApplication
|
|
self["searchGroupMembers"] = searchGroupMembers
|
|
self["searchGroups"] = searchGroups
|
|
self["setGroupInfo"] = setGroupInfo
|
|
self["setGroupListener"] = setGroupListener
|
|
self["setGroupMemberInfo"] = setGroupMemberInfo
|
|
self["transferGroupOwner"] = transferGroupOwner
|
|
}
|
|
|
|
func acceptGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkAcceptGroupApplication(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "userID"], methodCall[string: "handleMsg"])
|
|
}
|
|
|
|
func changeGroupMemberMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkChangeGroupMemberMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string:"userID"], methodCall[int:"seconds"])
|
|
}
|
|
|
|
func changeGroupMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkChangeGroupMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[bool: "mute"])
|
|
}
|
|
|
|
func createGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkCreateGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
|
|
}
|
|
|
|
func dismissGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkDismissGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
|
|
}
|
|
|
|
func getGroupApplicationListAsApplicant(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetGroupApplicationListAsApplicant(BaseCallback(result: result), methodCall[string: "operationID"])
|
|
}
|
|
|
|
func getGroupApplicationListAsRecipient(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetGroupApplicationListAsRecipient(BaseCallback(result: result), methodCall[string: "operationID"])
|
|
}
|
|
|
|
func getGroupMemberList(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetGroupMemberList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[int32: "filter"],
|
|
methodCall[int32: "offset"], methodCall[int32: "count"])
|
|
}
|
|
|
|
func getGroupMemberListByJoinTimeFilter(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetGroupMemberListByJoinTimeFilter(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[int32: "offset"], methodCall[int32: "count"], methodCall[int64: "joinTimeBegin"], methodCall[int64: "joinTimeEnd"], methodCall[jsonString: "excludeUserIDList"])
|
|
}
|
|
|
|
func getGroupMemberOwnerAndAdmin(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetGroupMemberOwnerAndAdmin(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
|
|
}
|
|
|
|
func getGroupMembersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetSpecifiedGroupMembersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[jsonString: "userIDList"])
|
|
}
|
|
|
|
func getGroupsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetSpecifiedGroupsInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "groupIDList"])
|
|
}
|
|
|
|
func getJoinedGroupList(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetJoinedGroupList(BaseCallback(result: result), methodCall[string: "operationID"])
|
|
}
|
|
|
|
func getJoinedGroupListPage(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetJoinedGroupListPage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[int32: "offset"], methodCall[int32: "count"])
|
|
}
|
|
|
|
func getUsersInGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetUsersInGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"],
|
|
methodCall[jsonString: "userIDs"])
|
|
}
|
|
|
|
func inviteUserToGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkInviteUserToGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "reason"],
|
|
methodCall[jsonString: "userIDList"])
|
|
}
|
|
|
|
func isJoinGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkIsJoinGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
|
|
}
|
|
|
|
func joinGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkJoinGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string:
|
|
"reason"], methodCall[int32: "joinSource"], methodCall[jsonString: "ex"])
|
|
}
|
|
|
|
func kickGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkKickGroupMember(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "reason"],
|
|
methodCall[jsonString: "userIDList"])
|
|
}
|
|
|
|
func quitGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkQuitGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"])
|
|
}
|
|
|
|
func refuseGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkRefuseGroupApplication(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "userID"], methodCall[string: "handleMsg"])
|
|
}
|
|
|
|
func searchGroupMembers(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkSearchGroupMembers(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "searchParam"])
|
|
}
|
|
|
|
func searchGroups(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkSearchGroups(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "searchParam"])
|
|
}
|
|
|
|
func setGroupInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkSetGroupInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "groupInfo"])
|
|
}
|
|
|
|
func setGroupListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkSetGroupListener(GroupListener(channel: channel))
|
|
callBack(result)
|
|
}
|
|
|
|
func setGroupMemberInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkSetGroupMemberInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "info"])
|
|
}
|
|
|
|
func transferGroupOwner(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkTransferGroupOwner(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "groupID"], methodCall[string: "userID"])
|
|
}
|
|
}
|
|
|
|
public class GroupListener: NSObject, Open_im_sdk_callbackOnGroupListenerProtocol {
|
|
|
|
private let channel: FlutterMethodChannel
|
|
|
|
init(channel: FlutterMethodChannel) {
|
|
self.channel = channel
|
|
}
|
|
|
|
public func onGroupApplicationAccepted(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupApplicationAccepted", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onGroupApplicationAdded(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupApplicationAdded", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onGroupApplicationDeleted(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupApplicationDeleted", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onGroupApplicationRejected(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupApplicationRejected", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onGroupDismissed(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupDismissed", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onGroupInfoChanged(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupInfoChanged", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onGroupMemberAdded(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupMemberAdded", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onGroupMemberDeleted(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupMemberDeleted", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onGroupMemberInfoChanged(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupMemberInfoChanged", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onJoinedGroupAdded(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onJoinedGroupAdded", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
|
|
public func onJoinedGroupDeleted(_ s: String?) {
|
|
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onJoinedGroupDeleted", errCode: nil, errMsg: nil, data: s)
|
|
}
|
|
}
|
|
|