Upgrade
This commit is contained in:
parent
fcc8373560
commit
6edf9b74fa
@ -1,3 +1,12 @@
|
|||||||
|
## 2.0.0+6
|
||||||
|
|
||||||
|
1.Fix bug</br>
|
||||||
|
2.New modify group nickname</br>
|
||||||
|
3.Update at message</br>
|
||||||
|
4.ConverstaionInfo new add isNotInGroup field</br>
|
||||||
|
5.New at type</br>
|
||||||
|
6.New work moments</br>
|
||||||
|
|
||||||
## 2.0.0+5
|
## 2.0.0+5
|
||||||
|
|
||||||
1.New notification parse </br>
|
1.New notification parse </br>
|
||||||
|
@ -41,5 +41,5 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'io.openim:client-sdk:2.0.31@aar'
|
implementation 'io.openim:client-sdk:2.0.42@aar'
|
||||||
}
|
}
|
@ -20,6 +20,7 @@ import io.openim.flutter_openim_sdk.manager.IMManager;
|
|||||||
import io.openim.flutter_openim_sdk.manager.MessageManager;
|
import io.openim.flutter_openim_sdk.manager.MessageManager;
|
||||||
import io.openim.flutter_openim_sdk.manager.SignalingManager;
|
import io.openim.flutter_openim_sdk.manager.SignalingManager;
|
||||||
import io.openim.flutter_openim_sdk.manager.UserManager;
|
import io.openim.flutter_openim_sdk.manager.UserManager;
|
||||||
|
import io.openim.flutter_openim_sdk.manager.WorkMomentsManager;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -39,6 +40,7 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler
|
|||||||
private static ConversationManager conversationManager;
|
private static ConversationManager conversationManager;
|
||||||
private static GroupManager groupManager;
|
private static GroupManager groupManager;
|
||||||
private static SignalingManager signalingManager;
|
private static SignalingManager signalingManager;
|
||||||
|
private static WorkMomentsManager workMomentsManager;
|
||||||
|
|
||||||
public FlutterOpenimSdkPlugin() {
|
public FlutterOpenimSdkPlugin() {
|
||||||
}
|
}
|
||||||
@ -51,6 +53,7 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler
|
|||||||
FlutterOpenimSdkPlugin.conversationManager = new ConversationManager();
|
FlutterOpenimSdkPlugin.conversationManager = new ConversationManager();
|
||||||
FlutterOpenimSdkPlugin.groupManager = new GroupManager();
|
FlutterOpenimSdkPlugin.groupManager = new GroupManager();
|
||||||
FlutterOpenimSdkPlugin.signalingManager = new SignalingManager();
|
FlutterOpenimSdkPlugin.signalingManager = new SignalingManager();
|
||||||
|
FlutterOpenimSdkPlugin.workMomentsManager = new WorkMomentsManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package io.openim.flutter_openim_sdk.listener;
|
||||||
|
|
||||||
|
import io.openim.flutter_openim_sdk.util.CommonUtil;
|
||||||
|
|
||||||
|
public class OnWorkMomentsListener implements open_im_sdk_callback.OnWorkMomentsListener {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRecvNewNotification() {
|
||||||
|
CommonUtil.emitEvent("workMomentsListener", "OnRecvNewNotification", null);
|
||||||
|
}
|
||||||
|
}
|
@ -174,4 +174,13 @@ public class GroupManager extends BaseManager {
|
|||||||
int2long(methodCall, "seconds")
|
int2long(methodCall, "seconds")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setGroupMemberNickname(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
Open_im_sdk.setGroupMemberNickname(new OnBaseListener(result),
|
||||||
|
value(methodCall, "operationID"),
|
||||||
|
value(methodCall, "gid"),
|
||||||
|
value(methodCall, "uid"),
|
||||||
|
value(methodCall, "groupNickname")
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
@ -182,7 +182,10 @@ public class MessageManager extends BaseManager {
|
|||||||
Open_im_sdk.createTextAtMessage(
|
Open_im_sdk.createTextAtMessage(
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "text"),
|
value(methodCall, "text"),
|
||||||
jsonValue(methodCall, "atUserList")));
|
jsonValue(methodCall, "atUserIDList"),
|
||||||
|
jsonValue(methodCall, "atUserInfoList"),
|
||||||
|
jsonValue(methodCall, "quoteMessage")
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createImageMessage(MethodCall methodCall, MethodChannel.Result result) {
|
public void createImageMessage(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
package io.openim.flutter_openim_sdk.manager;
|
||||||
|
|
||||||
|
import io.flutter.plugin.common.MethodCall;
|
||||||
|
import io.flutter.plugin.common.MethodChannel;
|
||||||
|
import io.openim.flutter_openim_sdk.listener.OnBaseListener;
|
||||||
|
import io.openim.flutter_openim_sdk.listener.OnWorkMomentsListener;
|
||||||
|
import open_im_sdk.Open_im_sdk;
|
||||||
|
|
||||||
|
public class WorkMomentsManager extends BaseManager {
|
||||||
|
|
||||||
|
void setWorkMomentsListener(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
Open_im_sdk.setWorkMomentsListener(new OnWorkMomentsListener());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getWorkMomentsUnReadCount(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
Open_im_sdk.getWorkMomentsUnReadCount(new OnBaseListener(result),
|
||||||
|
value(methodCall, "operationID"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getWorkMomentsNotification(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
Open_im_sdk.getWorkMomentsNotification(new OnBaseListener(result),
|
||||||
|
value(methodCall, "operationID"),
|
||||||
|
int2long(methodCall, "offset"),
|
||||||
|
int2long(methodCall, "count"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearWorkMomentsNotification(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
Open_im_sdk.clearWorkMomentsNotification(new OnBaseListener(result),
|
||||||
|
value(methodCall, "operationID"));
|
||||||
|
}
|
||||||
|
}
|
@ -4,8 +4,9 @@ import org.json.JSONObject;
|
|||||||
|
|
||||||
public class JsonUtil {
|
public class JsonUtil {
|
||||||
public static String toString(Object o) {
|
public static String toString(Object o) {
|
||||||
|
if (o == null) return null;
|
||||||
if (o instanceof String) {
|
if (o instanceof String) {
|
||||||
StringBuffer buffer = new StringBuffer();
|
StringBuilder buffer = new StringBuilder();
|
||||||
buffer.append("\"");
|
buffer.append("\"");
|
||||||
buffer.append(o);
|
buffer.append(o);
|
||||||
buffer.append("\"");
|
buffer.append("\"");
|
||||||
|
@ -24,6 +24,7 @@ public class GroupManager: BaseServiceManager {
|
|||||||
self["dismissGroup"] = dismissGroup
|
self["dismissGroup"] = dismissGroup
|
||||||
self["changeGroupMute"] = changeGroupMute
|
self["changeGroupMute"] = changeGroupMute
|
||||||
self["changeGroupMemberMute"] = changeGroupMemberMute
|
self["changeGroupMemberMute"] = changeGroupMemberMute
|
||||||
|
self["setGroupMemberNickname"] = setGroupMemberNickname
|
||||||
}
|
}
|
||||||
|
|
||||||
func setGroupListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
func setGroupListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
@ -105,6 +106,10 @@ public class GroupManager: BaseServiceManager {
|
|||||||
func changeGroupMemberMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
func changeGroupMemberMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
Open_im_sdkChangeGroupMemberMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string:"uid"],methodCall[int:"seconds"])
|
Open_im_sdkChangeGroupMemberMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string:"uid"],methodCall[int:"seconds"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setGroupMemberNickname(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkSetGroupMemberNickname(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "gid"], methodCall[string:"uid"],methodCall[string:"groupNickname"])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GroupListener: NSObject, Open_im_sdk_callbackOnGroupListenerProtocol {
|
public class GroupListener: NSObject, Open_im_sdk_callbackOnGroupListenerProtocol {
|
||||||
|
@ -98,7 +98,8 @@ public class MessageManager: BaseServiceManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createTextAtMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
func createTextAtMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
callBack(result, Open_im_sdkCreateTextAtMessage(methodCall[string: "operationID"], methodCall[string: "text"], methodCall[jsonString: "atUserList"]))
|
callBack(result, Open_im_sdkCreateTextAtMessage(methodCall[string: "operationID"], methodCall[string: "text"],
|
||||||
|
methodCall[jsonString: "atUserIDList"], methodCall[jsonString: "atUserInfoList"], methodCall[jsonString: "quoteMessage"]))
|
||||||
}
|
}
|
||||||
|
|
||||||
func createImageMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
func createImageMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
44
ios/Classes/Module/WorkMomentsManager.swift
Normal file
44
ios/Classes/Module/WorkMomentsManager.swift
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import Foundation
|
||||||
|
import OpenIMCore
|
||||||
|
|
||||||
|
public class WorkMomentsManager: BaseServiceManager {
|
||||||
|
|
||||||
|
public override func registerHandlers() {
|
||||||
|
super.registerHandlers()
|
||||||
|
self["setWorkMomentsListener"] = setWorkMomentsListener
|
||||||
|
self["getWorkMomentsUnReadCount"] = getWorkMomentsUnReadCount
|
||||||
|
self["getWorkMomentsNotification"] = getWorkMomentsNotification
|
||||||
|
self["clearWorkMomentsNotification"] = clearWorkMomentsNotification
|
||||||
|
}
|
||||||
|
|
||||||
|
func setWorkMomentsListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkSetWorkMomentsListener(WorkMomentsListener(channel: channel))
|
||||||
|
callBack(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getWorkMomentsUnReadCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
|
Open_im_sdkGetWorkMomentsUnReadCount(BaseCallback(result: result), methodCall[string: "operationID"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func getWorkMomentsNotification(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
|
Open_im_sdkGetWorkMomentsNotification(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[int: "offset"], methodCall[int: "count"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func clearWorkMomentsNotification(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
|
Open_im_sdkClearWorkMomentsNotification(BaseCallback(result: result), methodCall[string: "operationID"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WorkMomentsListener: NSObject, Open_im_sdk_callbackOnWorkMomentsListenerProtocol {
|
||||||
|
|
||||||
|
private let channel:FlutterMethodChannel
|
||||||
|
|
||||||
|
init(channel:FlutterMethodChannel) {
|
||||||
|
self.channel = channel
|
||||||
|
}
|
||||||
|
|
||||||
|
public func onRecvNewNotification() {
|
||||||
|
CommonUtil.emitEvent(channel: self.channel, method: "workMomentsListener", type: "OnRecvNewNotification", errCode: nil, errMsg: nil, data: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -9,6 +9,7 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
|
|||||||
let groupManager: GroupManager
|
let groupManager: GroupManager
|
||||||
let userManger: UserManager
|
let userManger: UserManager
|
||||||
let signalingManager: SignalingManager
|
let signalingManager: SignalingManager
|
||||||
|
let workMomentsManager: WorkMomentsManager
|
||||||
|
|
||||||
init(channel: FlutterMethodChannel) {
|
init(channel: FlutterMethodChannel) {
|
||||||
self.imManager = IMMananger(channel: channel)
|
self.imManager = IMMananger(channel: channel)
|
||||||
@ -18,6 +19,7 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
|
|||||||
self.groupManager = GroupManager(channel: channel)
|
self.groupManager = GroupManager(channel: channel)
|
||||||
self.userManger = UserManager(channel: channel)
|
self.userManger = UserManager(channel: channel)
|
||||||
self.signalingManager = SignalingManager(channel: channel)
|
self.signalingManager = SignalingManager(channel: channel)
|
||||||
|
self.workMomentsManager = WorkMomentsManager(channel: channel)
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func register(with registrar: FlutterPluginRegistrar) {
|
public static func register(with registrar: FlutterPluginRegistrar) {
|
||||||
@ -43,6 +45,8 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
|
|||||||
userManger.handleMethod(call: call, result: result)
|
userManger.handleMethod(call: call, result: result)
|
||||||
case "signalingManager":
|
case "signalingManager":
|
||||||
signalingManager.handleMethod(call: call, result: result)
|
signalingManager.handleMethod(call: call, result: result)
|
||||||
|
case "workMomentsManager":
|
||||||
|
workMomentsManager.handleMethod(call: call, result: result)
|
||||||
default:
|
default:
|
||||||
print("Handle ManagerName Error: \(managerName) not found")
|
print("Handle ManagerName Error: \(managerName) not found")
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,8 @@ FOUNDATION_EXPORT void Open_im_sdkClearGroupHistoryMessage(id<Open_im_sdk_callba
|
|||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkClearGroupHistoryMessageFromLocalAndSvr(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID);
|
FOUNDATION_EXPORT void Open_im_sdkClearGroupHistoryMessageFromLocalAndSvr(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkClearWorkMomentsNotification(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
||||||
|
|
||||||
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateCardMessage(NSString* _Nullable operationID, NSString* _Nullable cardInfo);
|
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateCardMessage(NSString* _Nullable operationID, NSString* _Nullable cardInfo);
|
||||||
|
|
||||||
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateCustomMessage(NSString* _Nullable operationID, NSString* _Nullable data, NSString* _Nullable extension, NSString* _Nullable description);
|
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateCustomMessage(NSString* _Nullable operationID, NSString* _Nullable data, NSString* _Nullable extension, NSString* _Nullable description);
|
||||||
@ -80,7 +82,7 @@ FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateSoundMessageByURL(NSString
|
|||||||
|
|
||||||
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateSoundMessageFromFullPath(NSString* _Nullable operationID, NSString* _Nullable soundPath, int64_t duration);
|
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateSoundMessageFromFullPath(NSString* _Nullable operationID, NSString* _Nullable soundPath, int64_t duration);
|
||||||
|
|
||||||
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateTextAtMessage(NSString* _Nullable operationID, NSString* _Nullable text, NSString* _Nullable atUserList);
|
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateTextAtMessage(NSString* _Nullable operationID, NSString* _Nullable text, NSString* _Nullable atUserList, NSString* _Nullable atUsersInfo, NSString* _Nullable message);
|
||||||
|
|
||||||
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateTextMessage(NSString* _Nullable operationID, NSString* _Nullable text);
|
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateTextMessage(NSString* _Nullable operationID, NSString* _Nullable text);
|
||||||
|
|
||||||
@ -110,6 +112,8 @@ FOUNDATION_EXPORT void Open_im_sdkDismissGroup(id<Open_im_sdk_callbackBase> _Nul
|
|||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetAllConversationList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
FOUNDATION_EXPORT void Open_im_sdkGetAllConversationList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkGetAtAllTag(void);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetBlackList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
FOUNDATION_EXPORT void Open_im_sdkGetBlackList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
||||||
|
|
||||||
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkGetConversationIDBySessionType(NSString* _Nullable sourceID, long sessionType);
|
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkGetConversationIDBySessionType(NSString* _Nullable sourceID, long sessionType);
|
||||||
@ -118,6 +122,10 @@ FOUNDATION_EXPORT void Open_im_sdkGetConversationListSplit(id<Open_im_sdk_callba
|
|||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetConversationRecvMessageOpt(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationIDList);
|
FOUNDATION_EXPORT void Open_im_sdkGetConversationRecvMessageOpt(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationIDList);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkGetDepartmentMember(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable departmentID, long offset, long count);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkGetDepartmentMemberAndSubDepartment(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable departmentID, long departmentOffset, long departmentCount, long memberOffset, long memberCount);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetDesignatedFriendsInfo(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userIDList);
|
FOUNDATION_EXPORT void Open_im_sdkGetDesignatedFriendsInfo(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userIDList);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetFriendList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
FOUNDATION_EXPORT void Open_im_sdkGetFriendList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
||||||
@ -150,8 +158,12 @@ FOUNDATION_EXPORT void Open_im_sdkGetSendFriendApplicationList(id<Open_im_sdk_ca
|
|||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetSendGroupApplicationList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
FOUNDATION_EXPORT void Open_im_sdkGetSendGroupApplicationList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkGetSubDepartment(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable departmentID, long offset, long count);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetTotalUnreadMsgCount(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
FOUNDATION_EXPORT void Open_im_sdkGetTotalUnreadMsgCount(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkGetUserInDepartment(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userID);
|
||||||
|
|
||||||
// skipped function GetUserWorker with unsupported parameter or return types
|
// skipped function GetUserWorker with unsupported parameter or return types
|
||||||
|
|
||||||
|
|
||||||
@ -160,6 +172,13 @@ FOUNDATION_EXPORT void Open_im_sdkGetTotalUnreadMsgCount(id<Open_im_sdk_callback
|
|||||||
*/
|
*/
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetUsersInfo(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userIDList);
|
FOUNDATION_EXPORT void Open_im_sdkGetUsersInfo(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userIDList);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkGetWorkMomentsNotification(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, long offset, long count);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* workMomentsInterface
|
||||||
|
*/
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkGetWorkMomentsUnReadCount(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
||||||
|
|
||||||
// skipped function InitOnce with unsupported parameter or return types
|
// skipped function InitOnce with unsupported parameter or return types
|
||||||
|
|
||||||
|
|
||||||
@ -200,6 +219,8 @@ FOUNDATION_EXPORT void Open_im_sdkRefuseGroupApplication(id<Open_im_sdk_callback
|
|||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkRemoveBlack(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable removeUserID);
|
FOUNDATION_EXPORT void Open_im_sdkRemoveBlack(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable removeUserID);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkResetConversationGroupAtType(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkRevokeMessage(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable message);
|
FOUNDATION_EXPORT void Open_im_sdkRevokeMessage(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable message);
|
||||||
|
|
||||||
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkSdkVersion(void);
|
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkSdkVersion(void);
|
||||||
@ -229,12 +250,16 @@ FOUNDATION_EXPORT void Open_im_sdkSetGroupInfo(id<Open_im_sdk_callbackBase> _Nul
|
|||||||
*/
|
*/
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetGroupListener(id<Open_im_sdk_callbackOnGroupListener> _Nullable callback);
|
FOUNDATION_EXPORT void Open_im_sdkSetGroupListener(id<Open_im_sdk_callbackOnGroupListener> _Nullable callback);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSetGroupMemberNickname(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID, NSString* _Nullable userID, NSString* _Nullable groupMemberNickname);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetHeartbeatInterval(long heartbeatInterval);
|
FOUNDATION_EXPORT void Open_im_sdkSetHeartbeatInterval(long heartbeatInterval);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetOneConversationPrivateChat(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPrivate);
|
FOUNDATION_EXPORT void Open_im_sdkSetOneConversationPrivateChat(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPrivate);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetOneConversationRecvMessageOpt(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, long opt);
|
FOUNDATION_EXPORT void Open_im_sdkSetOneConversationRecvMessageOpt(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, long opt);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSetOrganizationListener(id<Open_im_sdk_callbackOnOrganizationListener> _Nullable callback);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetSelfInfo(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userInfo);
|
FOUNDATION_EXPORT void Open_im_sdkSetSelfInfo(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userInfo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -244,6 +269,8 @@ FOUNDATION_EXPORT void Open_im_sdkSetSignalingListener(id<Open_im_sdk_callbackOn
|
|||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetUserListener(id<Open_im_sdk_callbackOnUserListener> _Nullable listener);
|
FOUNDATION_EXPORT void Open_im_sdkSetUserListener(id<Open_im_sdk_callbackOnUserListener> _Nullable listener);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSetWorkMomentsListener(id<Open_im_sdk_callbackOnWorkMomentsListener> _Nullable listener);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSignalingAccept(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalAcceptReq);
|
FOUNDATION_EXPORT void Open_im_sdkSignalingAccept(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalAcceptReq);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSignalingCancel(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalCancelReq);
|
FOUNDATION_EXPORT void Open_im_sdkSignalingCancel(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalCancelReq);
|
||||||
|
@ -23,10 +23,14 @@
|
|||||||
@class Open_im_sdk_callbackOnFriendshipListener;
|
@class Open_im_sdk_callbackOnFriendshipListener;
|
||||||
@protocol Open_im_sdk_callbackOnGroupListener;
|
@protocol Open_im_sdk_callbackOnGroupListener;
|
||||||
@class Open_im_sdk_callbackOnGroupListener;
|
@class Open_im_sdk_callbackOnGroupListener;
|
||||||
|
@protocol Open_im_sdk_callbackOnOrganizationListener;
|
||||||
|
@class Open_im_sdk_callbackOnOrganizationListener;
|
||||||
@protocol Open_im_sdk_callbackOnSignalingListener;
|
@protocol Open_im_sdk_callbackOnSignalingListener;
|
||||||
@class Open_im_sdk_callbackOnSignalingListener;
|
@class Open_im_sdk_callbackOnSignalingListener;
|
||||||
@protocol Open_im_sdk_callbackOnUserListener;
|
@protocol Open_im_sdk_callbackOnUserListener;
|
||||||
@class Open_im_sdk_callbackOnUserListener;
|
@class Open_im_sdk_callbackOnUserListener;
|
||||||
|
@protocol Open_im_sdk_callbackOnWorkMomentsListener;
|
||||||
|
@class Open_im_sdk_callbackOnWorkMomentsListener;
|
||||||
@protocol Open_im_sdk_callbackSendMsgCallBack;
|
@protocol Open_im_sdk_callbackSendMsgCallBack;
|
||||||
@class Open_im_sdk_callbackSendMsgCallBack;
|
@class Open_im_sdk_callbackSendMsgCallBack;
|
||||||
|
|
||||||
@ -38,7 +42,7 @@
|
|||||||
@protocol Open_im_sdk_callbackOnAdvancedMsgListener <NSObject>
|
@protocol Open_im_sdk_callbackOnAdvancedMsgListener <NSObject>
|
||||||
- (void)onRecvC2CReadReceipt:(NSString* _Nullable)msgReceiptList;
|
- (void)onRecvC2CReadReceipt:(NSString* _Nullable)msgReceiptList;
|
||||||
- (void)onRecvGroupReadReceipt:(NSString* _Nullable)groupMsgReceiptList;
|
- (void)onRecvGroupReadReceipt:(NSString* _Nullable)groupMsgReceiptList;
|
||||||
- (void)onRecvMessageRevoked:(NSString* _Nullable)msgId;
|
- (void)onRecvMessageRevoked:(NSString* _Nullable)msgID;
|
||||||
- (void)onRecvNewMessage:(NSString* _Nullable)message;
|
- (void)onRecvNewMessage:(NSString* _Nullable)message;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@ -84,6 +88,10 @@
|
|||||||
- (void)onJoinedGroupDeleted:(NSString* _Nullable)groupInfo;
|
- (void)onJoinedGroupDeleted:(NSString* _Nullable)groupInfo;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@protocol Open_im_sdk_callbackOnOrganizationListener <NSObject>
|
||||||
|
- (void)onOrganizationUpdated;
|
||||||
|
@end
|
||||||
|
|
||||||
@protocol Open_im_sdk_callbackOnSignalingListener <NSObject>
|
@protocol Open_im_sdk_callbackOnSignalingListener <NSObject>
|
||||||
- (void)onInvitationCancelled:(NSString* _Nullable)invitationCancelledCallback;
|
- (void)onInvitationCancelled:(NSString* _Nullable)invitationCancelledCallback;
|
||||||
- (void)onInvitationTimeout:(NSString* _Nullable)invitationTimeoutCallback;
|
- (void)onInvitationTimeout:(NSString* _Nullable)invitationTimeoutCallback;
|
||||||
@ -98,6 +106,10 @@
|
|||||||
- (void)onSelfInfoUpdated:(NSString* _Nullable)userInfo;
|
- (void)onSelfInfoUpdated:(NSString* _Nullable)userInfo;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@protocol Open_im_sdk_callbackOnWorkMomentsListener <NSObject>
|
||||||
|
- (void)onRecvNewNotification;
|
||||||
|
@end
|
||||||
|
|
||||||
@protocol Open_im_sdk_callbackSendMsgCallBack <NSObject>
|
@protocol Open_im_sdk_callbackSendMsgCallBack <NSObject>
|
||||||
- (void)onError:(int32_t)errCode errMsg:(NSString* _Nullable)errMsg;
|
- (void)onError:(int32_t)errCode errMsg:(NSString* _Nullable)errMsg;
|
||||||
- (void)onProgress:(long)progress;
|
- (void)onProgress:(long)progress;
|
||||||
@ -116,10 +128,14 @@
|
|||||||
|
|
||||||
@class Open_im_sdk_callbackOnGroupListener;
|
@class Open_im_sdk_callbackOnGroupListener;
|
||||||
|
|
||||||
|
@class Open_im_sdk_callbackOnOrganizationListener;
|
||||||
|
|
||||||
@class Open_im_sdk_callbackOnSignalingListener;
|
@class Open_im_sdk_callbackOnSignalingListener;
|
||||||
|
|
||||||
@class Open_im_sdk_callbackOnUserListener;
|
@class Open_im_sdk_callbackOnUserListener;
|
||||||
|
|
||||||
|
@class Open_im_sdk_callbackOnWorkMomentsListener;
|
||||||
|
|
||||||
@class Open_im_sdk_callbackSendMsgCallBack;
|
@class Open_im_sdk_callbackSendMsgCallBack;
|
||||||
|
|
||||||
@interface Open_im_sdk_callbackBase : NSObject <goSeqRefInterface, Open_im_sdk_callbackBase> {
|
@interface Open_im_sdk_callbackBase : NSObject <goSeqRefInterface, Open_im_sdk_callbackBase> {
|
||||||
@ -138,7 +154,7 @@
|
|||||||
- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
|
- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
|
||||||
- (void)onRecvC2CReadReceipt:(NSString* _Nullable)msgReceiptList;
|
- (void)onRecvC2CReadReceipt:(NSString* _Nullable)msgReceiptList;
|
||||||
- (void)onRecvGroupReadReceipt:(NSString* _Nullable)groupMsgReceiptList;
|
- (void)onRecvGroupReadReceipt:(NSString* _Nullable)groupMsgReceiptList;
|
||||||
- (void)onRecvMessageRevoked:(NSString* _Nullable)msgId;
|
- (void)onRecvMessageRevoked:(NSString* _Nullable)msgID;
|
||||||
- (void)onRecvNewMessage:(NSString* _Nullable)message;
|
- (void)onRecvNewMessage:(NSString* _Nullable)message;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@ -200,6 +216,14 @@
|
|||||||
- (void)onJoinedGroupDeleted:(NSString* _Nullable)groupInfo;
|
- (void)onJoinedGroupDeleted:(NSString* _Nullable)groupInfo;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@interface Open_im_sdk_callbackOnOrganizationListener : NSObject <goSeqRefInterface, Open_im_sdk_callbackOnOrganizationListener> {
|
||||||
|
}
|
||||||
|
@property(strong, readonly) _Nonnull id _ref;
|
||||||
|
|
||||||
|
- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
|
||||||
|
- (void)onOrganizationUpdated;
|
||||||
|
@end
|
||||||
|
|
||||||
@interface Open_im_sdk_callbackOnSignalingListener : NSObject <goSeqRefInterface, Open_im_sdk_callbackOnSignalingListener> {
|
@interface Open_im_sdk_callbackOnSignalingListener : NSObject <goSeqRefInterface, Open_im_sdk_callbackOnSignalingListener> {
|
||||||
}
|
}
|
||||||
@property(strong, readonly) _Nonnull id _ref;
|
@property(strong, readonly) _Nonnull id _ref;
|
||||||
@ -222,6 +246,14 @@
|
|||||||
- (void)onSelfInfoUpdated:(NSString* _Nullable)userInfo;
|
- (void)onSelfInfoUpdated:(NSString* _Nullable)userInfo;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@interface Open_im_sdk_callbackOnWorkMomentsListener : NSObject <goSeqRefInterface, Open_im_sdk_callbackOnWorkMomentsListener> {
|
||||||
|
}
|
||||||
|
@property(strong, readonly) _Nonnull id _ref;
|
||||||
|
|
||||||
|
- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
|
||||||
|
- (void)onRecvNewNotification;
|
||||||
|
@end
|
||||||
|
|
||||||
@interface Open_im_sdk_callbackSendMsgCallBack : NSObject <goSeqRefInterface, Open_im_sdk_callbackSendMsgCallBack> {
|
@interface Open_im_sdk_callbackSendMsgCallBack : NSObject <goSeqRefInterface, Open_im_sdk_callbackSendMsgCallBack> {
|
||||||
}
|
}
|
||||||
@property(strong, readonly) _Nonnull id _ref;
|
@property(strong, readonly) _Nonnull id _ref;
|
||||||
|
Binary file not shown.
@ -1,6 +1,7 @@
|
|||||||
library flutter_openim_sdk;
|
library flutter_openim_sdk;
|
||||||
|
|
||||||
export 'src/enum/conversation_type.dart';
|
export 'src/enum/conversation_type.dart';
|
||||||
|
export 'src/enum/group_at_type.dart';
|
||||||
export 'src/enum/group_role_level.dart';
|
export 'src/enum/group_role_level.dart';
|
||||||
export 'src/enum/im_platform.dart';
|
export 'src/enum/im_platform.dart';
|
||||||
export 'src/enum/listener_type.dart';
|
export 'src/enum/listener_type.dart';
|
||||||
@ -14,6 +15,7 @@ export 'src/listener/group_listener.dart';
|
|||||||
export 'src/listener/msg_send_progress_listener.dart';
|
export 'src/listener/msg_send_progress_listener.dart';
|
||||||
export 'src/listener/signaling_listener.dart';
|
export 'src/listener/signaling_listener.dart';
|
||||||
export 'src/listener/user_listener.dart';
|
export 'src/listener/user_listener.dart';
|
||||||
|
export 'src/listener/workmoments_listener.dart';
|
||||||
export 'src/manager/im_conversation_manager.dart';
|
export 'src/manager/im_conversation_manager.dart';
|
||||||
export 'src/manager/im_friendship_manager.dart';
|
export 'src/manager/im_friendship_manager.dart';
|
||||||
export 'src/manager/im_group_manager.dart';
|
export 'src/manager/im_group_manager.dart';
|
||||||
@ -22,6 +24,7 @@ export 'src/manager/im_message_manager.dart';
|
|||||||
export 'src/manager/im_offline_push_manager.dart';
|
export 'src/manager/im_offline_push_manager.dart';
|
||||||
export 'src/manager/im_signaling_manager.dart';
|
export 'src/manager/im_signaling_manager.dart';
|
||||||
export 'src/manager/im_user_manager.dart';
|
export 'src/manager/im_user_manager.dart';
|
||||||
|
export 'src/manager/im_workmoments_manager.dart';
|
||||||
export 'src/models/conversation_info.dart';
|
export 'src/models/conversation_info.dart';
|
||||||
export 'src/models/group_info.dart';
|
export 'src/models/group_info.dart';
|
||||||
export 'src/models/message.dart';
|
export 'src/models/message.dart';
|
||||||
@ -29,5 +32,6 @@ export 'src/models/notification_info.dart';
|
|||||||
export 'src/models/search_info.dart';
|
export 'src/models/search_info.dart';
|
||||||
export 'src/models/signaling_info.dart';
|
export 'src/models/signaling_info.dart';
|
||||||
export 'src/models/user_info.dart';
|
export 'src/models/user_info.dart';
|
||||||
|
export 'src/models/workmoments_info.dart';
|
||||||
export 'src/openim.dart';
|
export 'src/openim.dart';
|
||||||
export 'src/utils.dart';
|
export 'src/utils.dart';
|
||||||
|
6
lib/src/enum/group_at_type.dart
Normal file
6
lib/src/enum/group_at_type.dart
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
class GroupAtType {
|
||||||
|
static const atNormal = 0;
|
||||||
|
static const atMe = 1;
|
||||||
|
static const atAll = 2;
|
||||||
|
static const atAllAtMe = 3;
|
||||||
|
}
|
@ -8,4 +8,5 @@ class ListenerType {
|
|||||||
static final friendListener = 'friendListener';
|
static final friendListener = 'friendListener';
|
||||||
static final signalingListener = 'signalingListener';
|
static final signalingListener = 'signalingListener';
|
||||||
static final msgSendProgressListener = "msgSendProgressListener";
|
static final msgSendProgressListener = "msgSendProgressListener";
|
||||||
|
static final workMomentsListener = "workMomentsListener";
|
||||||
}
|
}
|
||||||
|
@ -56,6 +56,7 @@ class MessageType {
|
|||||||
static const groupMemberCancelMutedNotification = 1513;
|
static const groupMemberCancelMutedNotification = 1513;
|
||||||
static const groupMutedNotification = 1514;
|
static const groupMutedNotification = 1514;
|
||||||
static const groupCancelMutedNotification = 1515;
|
static const groupCancelMutedNotification = 1515;
|
||||||
|
static const groupMemberInfoChangedNotification = 1516;
|
||||||
|
|
||||||
static const signalingNotificationBegin = 1600;
|
static const signalingNotificationBegin = 1600;
|
||||||
static const signalingNotification = 1601;
|
static const signalingNotification = 1601;
|
||||||
|
9
lib/src/listener/workmoments_listener.dart
Normal file
9
lib/src/listener/workmoments_listener.dart
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
class OnWorkMomentsListener {
|
||||||
|
Function()? onRecvNewNotification;
|
||||||
|
|
||||||
|
OnWorkMomentsListener({this.onRecvNewNotification});
|
||||||
|
|
||||||
|
void recvNewNotification() {
|
||||||
|
onRecvNewNotification?.call();
|
||||||
|
}
|
||||||
|
}
|
@ -365,6 +365,23 @@ class GroupManager {
|
|||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
/// Set group user nickname
|
||||||
|
/// 设置群成员昵称
|
||||||
|
Future<dynamic> setGroupMemberNickname({
|
||||||
|
required String groupID,
|
||||||
|
required String userID,
|
||||||
|
String? groupNickname,
|
||||||
|
String? operationID,
|
||||||
|
}) =>
|
||||||
|
_channel.invokeMethod(
|
||||||
|
'setGroupMemberNickname',
|
||||||
|
_buildParam({
|
||||||
|
'gid': groupID,
|
||||||
|
'uid': userID,
|
||||||
|
'groupNickname': groupNickname ?? '',
|
||||||
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
|
}));
|
||||||
|
|
||||||
static Map _buildParam(Map param) {
|
static Map _buildParam(Map param) {
|
||||||
param["ManagerName"] = "groupManager";
|
param["ManagerName"] = "groupManager";
|
||||||
return param;
|
return param;
|
||||||
|
@ -13,6 +13,7 @@ class IMManager {
|
|||||||
|
|
||||||
// late OfflinePushManager offlinePushManager;
|
// late OfflinePushManager offlinePushManager;
|
||||||
late SignalingManager signalingManager;
|
late SignalingManager signalingManager;
|
||||||
|
late WorkMomentsManager workMomentsManager;
|
||||||
|
|
||||||
late OnConnectListener _connectListener;
|
late OnConnectListener _connectListener;
|
||||||
late String uid;
|
late String uid;
|
||||||
@ -27,6 +28,7 @@ class IMManager {
|
|||||||
userManager = UserManager(_channel);
|
userManager = UserManager(_channel);
|
||||||
// offlinePushManager = OfflinePushManager(_channel);
|
// offlinePushManager = OfflinePushManager(_channel);
|
||||||
signalingManager = SignalingManager(_channel);
|
signalingManager = SignalingManager(_channel);
|
||||||
|
workMomentsManager = WorkMomentsManager(_channel);
|
||||||
_addNativeCallback(_channel);
|
_addNativeCallback(_channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,7 +214,7 @@ class IMManager {
|
|||||||
data, (map) => FriendApplicationInfo.fromJson(map));
|
data, (map) => FriendApplicationInfo.fromJson(map));
|
||||||
friendshipManager.listener.friendApplicationDeleted(u);
|
friendshipManager.listener.friendApplicationDeleted(u);
|
||||||
break;
|
break;
|
||||||
case 'onFriendApplicationListRejected':
|
case 'onFriendApplicationRejected':
|
||||||
final u = Utils.toObj(
|
final u = Utils.toObj(
|
||||||
data, (map) => FriendApplicationInfo.fromJson(map));
|
data, (map) => FriendApplicationInfo.fromJson(map));
|
||||||
friendshipManager.listener.friendApplicationRejected(u);
|
friendshipManager.listener.friendApplicationRejected(u);
|
||||||
@ -257,6 +259,13 @@ class IMManager {
|
|||||||
signalingManager.listener.inviteeRejectedByOtherDevice(u);
|
signalingManager.listener.inviteeRejectedByOtherDevice(u);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else if (call.method == ListenerType.workMomentsListener) {
|
||||||
|
String type = call.arguments['type'];
|
||||||
|
switch (type) {
|
||||||
|
case 'OnRecvNewNotification':
|
||||||
|
workMomentsManager.listener.recvNewNotification();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
print(
|
print(
|
||||||
|
@ -214,7 +214,9 @@ class MessageManager {
|
|||||||
/// 创建@消息
|
/// 创建@消息
|
||||||
Future<Message> createTextAtMessage({
|
Future<Message> createTextAtMessage({
|
||||||
required String text,
|
required String text,
|
||||||
required List<String> atUidList,
|
required List<String> atUserIDList,
|
||||||
|
List<AtUserInfo> atUserInfoList = const [],
|
||||||
|
Message? quoteMessage,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
_channel
|
_channel
|
||||||
@ -222,7 +224,9 @@ class MessageManager {
|
|||||||
'createTextAtMessage',
|
'createTextAtMessage',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
'text': text,
|
'text': text,
|
||||||
'atUserList': atUidList,
|
'atUserIDList': atUserIDList,
|
||||||
|
'atUserInfoList': atUserInfoList.map((e) => e.toJson()).toList(),
|
||||||
|
'quoteMessage': quoteMessage?.toJson(),
|
||||||
"operationID": Utils.checkOperationID(operationID),
|
"operationID": Utils.checkOperationID(operationID),
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
59
lib/src/manager/im_workmoments_manager.dart
Normal file
59
lib/src/manager/im_workmoments_manager.dart
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
||||||
|
|
||||||
|
class WorkMomentsManager {
|
||||||
|
MethodChannel _channel;
|
||||||
|
late OnWorkMomentsListener listener;
|
||||||
|
|
||||||
|
WorkMomentsManager(this._channel);
|
||||||
|
|
||||||
|
/// Observe work moments changes
|
||||||
|
Future setWorkMomentsListener(OnWorkMomentsListener listener) {
|
||||||
|
this.listener = listener;
|
||||||
|
return _channel.invokeMethod('setWorkMomentsListener', _buildParam({}));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get work moments unread count
|
||||||
|
Future<int> getWorkMomentsUnReadCount({
|
||||||
|
String? operationID,
|
||||||
|
}) =>
|
||||||
|
_channel
|
||||||
|
.invokeMethod(
|
||||||
|
'getWorkMomentsUnReadCount',
|
||||||
|
_buildParam({
|
||||||
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
|
}))
|
||||||
|
.then((value) => Utils.toObj(value, (map) => map['unread_count']));
|
||||||
|
|
||||||
|
/// Get work moments notification list
|
||||||
|
Future<List<WorkMomentsInfo>> getWorkMomentsNotification({
|
||||||
|
required int offset,
|
||||||
|
required int count,
|
||||||
|
String? operationID,
|
||||||
|
}) =>
|
||||||
|
_channel
|
||||||
|
.invokeMethod(
|
||||||
|
'getWorkMomentsNotification',
|
||||||
|
_buildParam({
|
||||||
|
'offset': offset,
|
||||||
|
'count': count,
|
||||||
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
|
}))
|
||||||
|
.then((value) =>
|
||||||
|
Utils.toList(value, (map) => WorkMomentsInfo.fromJson(map)));
|
||||||
|
|
||||||
|
/// Clear work moments notification
|
||||||
|
Future clearWorkMomentsNotification({
|
||||||
|
String? operationID,
|
||||||
|
}) =>
|
||||||
|
_channel.invokeMethod(
|
||||||
|
'clearWorkMomentsNotification',
|
||||||
|
_buildParam({
|
||||||
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
|
}));
|
||||||
|
|
||||||
|
static Map _buildParam(Map param) {
|
||||||
|
param["ManagerName"] = "workMomentsManager";
|
||||||
|
return param;
|
||||||
|
}
|
||||||
|
}
|
@ -21,22 +21,25 @@ class ConversationInfo {
|
|||||||
bool? isPinned;
|
bool? isPinned;
|
||||||
bool? isPrivateChat;
|
bool? isPrivateChat;
|
||||||
String? ext;
|
String? ext;
|
||||||
|
bool? isNotInGroup;
|
||||||
|
|
||||||
ConversationInfo(
|
ConversationInfo({
|
||||||
{required this.conversationID,
|
required this.conversationID,
|
||||||
this.conversationType,
|
this.conversationType,
|
||||||
this.userID,
|
this.userID,
|
||||||
this.groupID,
|
this.groupID,
|
||||||
this.showName,
|
this.showName,
|
||||||
this.faceURL,
|
this.faceURL,
|
||||||
this.recvMsgOpt,
|
this.recvMsgOpt,
|
||||||
this.unreadCount,
|
this.unreadCount,
|
||||||
this.latestMsg,
|
this.latestMsg,
|
||||||
this.latestMsgSendTime,
|
this.latestMsgSendTime,
|
||||||
this.draftText,
|
this.draftText,
|
||||||
this.draftTextTime,
|
this.draftTextTime,
|
||||||
this.isPrivateChat,
|
this.isPrivateChat,
|
||||||
this.isPinned});
|
this.isPinned,
|
||||||
|
this.isNotInGroup,
|
||||||
|
});
|
||||||
|
|
||||||
ConversationInfo.fromJson(Map<String, dynamic> json)
|
ConversationInfo.fromJson(Map<String, dynamic> json)
|
||||||
: conversationID = json['conversationID'] {
|
: conversationID = json['conversationID'] {
|
||||||
@ -59,6 +62,8 @@ class ConversationInfo {
|
|||||||
draftTextTime = json['draftTextTime'];
|
draftTextTime = json['draftTextTime'];
|
||||||
isPinned = json['isPinned'];
|
isPinned = json['isPinned'];
|
||||||
isPrivateChat = json['isPrivateChat'];
|
isPrivateChat = json['isPrivateChat'];
|
||||||
|
isNotInGroup = json['isNotInGroup'];
|
||||||
|
groupAtType = json['groupAtType'];
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
@ -77,6 +82,8 @@ class ConversationInfo {
|
|||||||
data['draftTextTime'] = this.draftTextTime;
|
data['draftTextTime'] = this.draftTextTime;
|
||||||
data['isPinned'] = this.isPinned;
|
data['isPinned'] = this.isPinned;
|
||||||
data['isPrivateChat'] = this.isPrivateChat;
|
data['isPrivateChat'] = this.isPrivateChat;
|
||||||
|
data['isNotInGroup'] = this.isNotInGroup;
|
||||||
|
data['groupAtType'] = this.groupAtType;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,8 +424,16 @@ class AtElem {
|
|||||||
String? text;
|
String? text;
|
||||||
List<String>? atUserList;
|
List<String>? atUserList;
|
||||||
bool? isAtSelf;
|
bool? isAtSelf;
|
||||||
|
List<AtUserInfo>? atUsersInfo;
|
||||||
|
Message? quoteMessage;
|
||||||
|
|
||||||
AtElem({this.text, this.atUserList, this.isAtSelf});
|
AtElem({
|
||||||
|
this.text,
|
||||||
|
this.atUserList,
|
||||||
|
this.isAtSelf,
|
||||||
|
this.atUsersInfo,
|
||||||
|
this.quoteMessage,
|
||||||
|
});
|
||||||
|
|
||||||
AtElem.fromJson(Map<String, dynamic> json) {
|
AtElem.fromJson(Map<String, dynamic> json) {
|
||||||
text = json['text'];
|
text = json['text'];
|
||||||
@ -433,6 +441,14 @@ class AtElem {
|
|||||||
atUserList = (json['atUserList'] as List).map((e) => '$e').toList();
|
atUserList = (json['atUserList'] as List).map((e) => '$e').toList();
|
||||||
}
|
}
|
||||||
isAtSelf = json['isAtSelf'];
|
isAtSelf = json['isAtSelf'];
|
||||||
|
if (json['atUsersInfo'] is List) {
|
||||||
|
atUsersInfo = (json['atUsersInfo'] as List)
|
||||||
|
.map((e) => AtUserInfo.fromJson(e))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
quoteMessage = null != json['quoteMessage']
|
||||||
|
? Message.fromJson(json['quoteMessage'])
|
||||||
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
@ -440,6 +456,8 @@ class AtElem {
|
|||||||
data['text'] = this.text;
|
data['text'] = this.text;
|
||||||
data['atUserList'] = this.atUserList;
|
data['atUserList'] = this.atUserList;
|
||||||
data['isAtSelf'] = this.isAtSelf;
|
data['isAtSelf'] = this.isAtSelf;
|
||||||
|
data['atUsersInfo'] = this.atUsersInfo?.map((e) => e.toJson()).toList();
|
||||||
|
data['quoteMessage'] = this.quoteMessage?.toJson();
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -705,3 +723,22 @@ class OfflinePushInfo {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class AtUserInfo {
|
||||||
|
String? atUserID;
|
||||||
|
String? groupNickname;
|
||||||
|
|
||||||
|
AtUserInfo({this.atUserID, this.groupNickname});
|
||||||
|
|
||||||
|
AtUserInfo.fromJson(Map<String, dynamic> json) {
|
||||||
|
atUserID = json['atUserID'];
|
||||||
|
groupNickname = json['groupNickname'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final data = Map<String, dynamic>();
|
||||||
|
data['atUserID'] = this.atUserID;
|
||||||
|
data['groupNickname'] = this.groupNickname;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -233,6 +233,33 @@ class QuitGroupNotification {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Enter group notification
|
||||||
|
/// 进群通知
|
||||||
|
class EnterGroupNotification {
|
||||||
|
GroupInfo? group;
|
||||||
|
GroupMembersInfo? entrantUser;
|
||||||
|
|
||||||
|
EnterGroupNotification({this.group, this.entrantUser});
|
||||||
|
|
||||||
|
EnterGroupNotification.fromJson(Map<String, dynamic> json) {
|
||||||
|
group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null;
|
||||||
|
entrantUser = json['entrantUser'] != null
|
||||||
|
? GroupMembersInfo.fromJson(json['entrantUser'])
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final data = Map<String, dynamic>();
|
||||||
|
if (this.group != null) {
|
||||||
|
data['group'] = this.group!.toJson();
|
||||||
|
}
|
||||||
|
if (this.entrantUser != null) {
|
||||||
|
data['quitUser'] = this.entrantUser!.toJson();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Group rights transfer noticication
|
/// Group rights transfer noticication
|
||||||
/// 群权转让通知
|
/// 群权转让通知
|
||||||
class GroupRightsTransferNoticication {
|
class GroupRightsTransferNoticication {
|
||||||
@ -277,11 +304,13 @@ class MuteMemberNotification {
|
|||||||
GroupInfo? group;
|
GroupInfo? group;
|
||||||
GroupMembersInfo? opUser;
|
GroupMembersInfo? opUser;
|
||||||
GroupMembersInfo? mutedUser;
|
GroupMembersInfo? mutedUser;
|
||||||
|
int? mutedSeconds;
|
||||||
|
|
||||||
MuteMemberNotification({
|
MuteMemberNotification({
|
||||||
this.group,
|
this.group,
|
||||||
this.opUser,
|
this.opUser,
|
||||||
this.mutedUser,
|
this.mutedUser,
|
||||||
|
this.mutedSeconds,
|
||||||
});
|
});
|
||||||
|
|
||||||
MuteMemberNotification.fromJson(Map<String, dynamic> json) {
|
MuteMemberNotification.fromJson(Map<String, dynamic> json) {
|
||||||
@ -292,6 +321,7 @@ class MuteMemberNotification {
|
|||||||
mutedUser = json['mutedUser'] != null
|
mutedUser = json['mutedUser'] != null
|
||||||
? GroupMembersInfo.fromJson(json['mutedUser'])
|
? GroupMembersInfo.fromJson(json['mutedUser'])
|
||||||
: null;
|
: null;
|
||||||
|
mutedSeconds = json['mutedSeconds'];
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
@ -305,6 +335,7 @@ class MuteMemberNotification {
|
|||||||
if (this.mutedUser != null) {
|
if (this.mutedUser != null) {
|
||||||
data['mutedUser'] = this.mutedUser!.toJson();
|
data['mutedUser'] = this.mutedUser!.toJson();
|
||||||
}
|
}
|
||||||
|
data['mutedSeconds'] = this.mutedSeconds;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -332,3 +363,41 @@ class BurnAfterReadingNotification {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Group member info changed notification
|
||||||
|
/// 禁言成员通知
|
||||||
|
class GroupMemberInfoChangedNotification {
|
||||||
|
GroupInfo? group;
|
||||||
|
GroupMembersInfo? opUser;
|
||||||
|
GroupMembersInfo? changedUser;
|
||||||
|
|
||||||
|
GroupMemberInfoChangedNotification({
|
||||||
|
this.group,
|
||||||
|
this.opUser,
|
||||||
|
this.changedUser,
|
||||||
|
});
|
||||||
|
|
||||||
|
GroupMemberInfoChangedNotification.fromJson(Map<String, dynamic> json) {
|
||||||
|
group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null;
|
||||||
|
opUser = json['opUser'] != null
|
||||||
|
? GroupMembersInfo.fromJson(json['opUser'])
|
||||||
|
: null;
|
||||||
|
changedUser = json['changedUser'] != null
|
||||||
|
? GroupMembersInfo.fromJson(json['changedUser'])
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final data = Map<String, dynamic>();
|
||||||
|
if (this.group != null) {
|
||||||
|
data['group'] = this.group!.toJson();
|
||||||
|
}
|
||||||
|
if (this.opUser != null) {
|
||||||
|
data['opUser'] = this.opUser!.toJson();
|
||||||
|
}
|
||||||
|
if (this.changedUser != null) {
|
||||||
|
data['changedUser'] = this.changedUser!.toJson();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
114
lib/src/models/workmoments_info.dart
Normal file
114
lib/src/models/workmoments_info.dart
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
class WorkMomentsInfo {
|
||||||
|
/// 工作圈消息类型 0为普通评论 1为被喜欢 2为AT提醒看的朋友圈
|
||||||
|
int? notificationMsgType;
|
||||||
|
Comment? comment;
|
||||||
|
|
||||||
|
/// 工作圈id
|
||||||
|
String? workMomentID;
|
||||||
|
|
||||||
|
/// 工作圈所属用户
|
||||||
|
String? userID;
|
||||||
|
|
||||||
|
/// 工作圈所属用户名字
|
||||||
|
String? userName;
|
||||||
|
|
||||||
|
/// 工作圈用户faceurl
|
||||||
|
String? faceURL;
|
||||||
|
|
||||||
|
/// 工作圈内容
|
||||||
|
String? workMomentContent;
|
||||||
|
|
||||||
|
WorkMomentsInfo(
|
||||||
|
{this.notificationMsgType,
|
||||||
|
this.comment,
|
||||||
|
this.workMomentID,
|
||||||
|
this.userID,
|
||||||
|
this.userName,
|
||||||
|
this.faceURL,
|
||||||
|
this.workMomentContent});
|
||||||
|
|
||||||
|
WorkMomentsInfo.fromJson(Map<String, dynamic> json) {
|
||||||
|
notificationMsgType = json['notificationMsgType'];
|
||||||
|
comment =
|
||||||
|
json['comment'] != null ? Comment.fromJson(json['comment']) : null;
|
||||||
|
workMomentID = json['workMomentID'];
|
||||||
|
userID = json['userID'];
|
||||||
|
userName = json['userName'];
|
||||||
|
faceURL = json['faceURL'];
|
||||||
|
workMomentContent = json['workMomentContent'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final data = Map<String, dynamic>();
|
||||||
|
data['notificationMsgType'] = this.notificationMsgType;
|
||||||
|
if (this.comment != null) {
|
||||||
|
data['comment'] = this.comment!.toJson();
|
||||||
|
}
|
||||||
|
data['workMomentID'] = this.workMomentID;
|
||||||
|
data['userID'] = this.userID;
|
||||||
|
data['userName'] = this.userName;
|
||||||
|
data['faceURL'] = this.faceURL;
|
||||||
|
data['workMomentContent'] = this.workMomentContent;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Comment {
|
||||||
|
/// 回复的用户
|
||||||
|
String? userID;
|
||||||
|
|
||||||
|
/// 回复的用户名
|
||||||
|
String? userName;
|
||||||
|
|
||||||
|
/// 回复的用户头像
|
||||||
|
String? faceURL;
|
||||||
|
|
||||||
|
/// 被回复的用户ID
|
||||||
|
String? replyUserID;
|
||||||
|
|
||||||
|
/// 被回复的用户名字
|
||||||
|
String? replyUserName;
|
||||||
|
|
||||||
|
/// 回复ID
|
||||||
|
String? contentID;
|
||||||
|
|
||||||
|
/// 回复内容
|
||||||
|
String? content;
|
||||||
|
|
||||||
|
/// 回复时间
|
||||||
|
int? createTime;
|
||||||
|
|
||||||
|
Comment(
|
||||||
|
{this.userID,
|
||||||
|
this.userName,
|
||||||
|
this.faceURL,
|
||||||
|
this.replyUserID,
|
||||||
|
this.replyUserName,
|
||||||
|
this.contentID,
|
||||||
|
this.content,
|
||||||
|
this.createTime});
|
||||||
|
|
||||||
|
Comment.fromJson(Map<String, dynamic> json) {
|
||||||
|
userID = json['userID'];
|
||||||
|
userName = json['userName'];
|
||||||
|
faceURL = json['faceURL'];
|
||||||
|
replyUserID = json['replyUserID'];
|
||||||
|
replyUserName = json['replyUserName'];
|
||||||
|
contentID = json['contentID'];
|
||||||
|
content = json['content'];
|
||||||
|
createTime = json['createTime'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['userID'] = this.userID;
|
||||||
|
data['userName'] = this.userName;
|
||||||
|
data['faceURL'] = this.faceURL;
|
||||||
|
data['replyUserID'] = this.replyUserID;
|
||||||
|
data['replyUserName'] = this.replyUserName;
|
||||||
|
data['contentID'] = this.contentID;
|
||||||
|
data['content'] = this.content;
|
||||||
|
data['createTime'] = this.createTime;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
name: flutter_openim_sdk
|
name: flutter_openim_sdk
|
||||||
description: An instant messaging plug-in that supports Android and IOS. And the server is also all open source.
|
description: An instant messaging plug-in that supports Android and IOS. And the server is also all open source.
|
||||||
version: 2.0.0+5
|
version: 2.0.0+6
|
||||||
homepage: https://www.rentsoft.cn
|
homepage: https://www.rentsoft.cn
|
||||||
repository: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter
|
repository: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user