diff --git a/CHANGELOG.md b/CHANGELOG.md index 080a103..7e1d6df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.3.5+2 + +- Add onRecvMessageExtensionsAdded method for OnAdvancedMsgListener +- Add addMessageReactionExtensions method for MessageManager +- Add getMessageListSomeReactionExtensions method for MessageManager + ## 2.3.5+1 - Add birthTime for UserInfo diff --git a/android/build.gradle b/android/build.gradle index 27736d3..754de74 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -34,5 +34,5 @@ android { } } dependencies { - api 'io.openim:core-sdk:2.3.5-t08@aar' + api 'io.openim:core-sdk:2.3.5-t11@aar' } \ No newline at end of file diff --git a/android/src/main/java/io/openim/flutter_openim_sdk/listener/OnAdvancedMsgListener.java b/android/src/main/java/io/openim/flutter_openim_sdk/listener/OnAdvancedMsgListener.java index a8c6aa4..98fe759 100644 --- a/android/src/main/java/io/openim/flutter_openim_sdk/listener/OnAdvancedMsgListener.java +++ b/android/src/main/java/io/openim/flutter_openim_sdk/listener/OnAdvancedMsgListener.java @@ -37,6 +37,15 @@ public class OnAdvancedMsgListener implements open_im_sdk_callback.OnAdvancedMsg CommonUtil.emitEvent("advancedMsgListener", "onRecvGroupReadReceipt", values); } + @Override + public void onRecvMessageExtensionsAdded(String s, String s1) { + final Map values = new ArrayMap<>(); + values.put("id", id); + values.put("msgID", s); + values.put("list", s1); + CommonUtil.emitEvent("advancedMsgListener", "onRecvMessageExtensionsAdded", values); + } + @Override public void onRecvMessageExtensionsChanged(String s, String s1) { final Map values = new ArrayMap<>(); diff --git a/android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java b/android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java index ba9d0ea..3767fda 100644 --- a/android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java +++ b/android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java @@ -517,4 +517,22 @@ public class MessageManager extends BaseManager { jsonValue(methodCall, "messageList") ); } + + public void addMessageReactionExtensions(MethodCall methodCall, MethodChannel.Result result) { + Open_im_sdk.addMessageReactionExtensions( + new OnBaseListener(result, methodCall), + value(methodCall, "operationID"), + jsonValue(methodCall, "message"), + jsonValue(methodCall, "list") + ); + } + + public void getMessageListSomeReactionExtensions(MethodCall methodCall, MethodChannel.Result result) { + Open_im_sdk.getMessageListSomeReactionExtensions( + new OnBaseListener(result, methodCall), + value(methodCall, "operationID"), + jsonValue(methodCall, "messageList"), + jsonValue(methodCall, "list") + ); + } } diff --git a/lib/src/listener/advanced_msg_listener.dart b/lib/src/listener/advanced_msg_listener.dart index 49c0a2a..90e5bd4 100644 --- a/lib/src/listener/advanced_msg_listener.dart +++ b/lib/src/listener/advanced_msg_listener.dart @@ -9,6 +9,7 @@ class OnAdvancedMsgListener { Function(RevokedInfo info)? onRecvMessageRevokedV2; Function(String msgID, List list)? onRecvMessageExtensionsChanged; Function(String msgID, List list)? onRecvMessageExtensionsDeleted; + Function(String msgID, List list)? onRecvMessageExtensionsAdded; /// Uniquely identifies String id; @@ -21,6 +22,7 @@ class OnAdvancedMsgListener { this.onRecvMessageRevokedV2, this.onRecvMessageExtensionsChanged, this.onRecvMessageExtensionsDeleted, + this.onRecvMessageExtensionsAdded, }) : id = "id_${DateTime.now().microsecondsSinceEpoch}"; /// C2C消息已读回执 @@ -58,4 +60,9 @@ class OnAdvancedMsgListener { void recvMessageExtensionsDeleted(String msgID, List list) { onRecvMessageExtensionsDeleted?.call(msgID, list); } + + /// 收到拓展消息kv新增 + void recvMessageExtensionsAdded(String msgID, List list) { + onRecvMessageExtensionsAdded?.call(msgID, list); + } } diff --git a/lib/src/manager/im_manager.dart b/lib/src/manager/im_manager.dart index a285b3a..61d5fa1 100644 --- a/lib/src/manager/im_manager.dart +++ b/lib/src/manager/im_manager.dart @@ -166,6 +166,13 @@ class IMManager { messageManager.msgListener .recvMessageExtensionsDeleted(msgID, list); break; + case 'onRecvMessageExtensionsAdded': + var msgID = call.arguments['data']['msgID']; + var value = call.arguments['data']['list']; + var list = Utils.toList(value, (map) => KeyValue.fromJson(map)); + messageManager.msgListener + .recvMessageExtensionsAdded(msgID, list); + break; } } else if (call.method == ListenerType.msgSendProgressListener) { String type = call.arguments['type']; diff --git a/lib/src/manager/im_message_manager.dart b/lib/src/manager/im_message_manager.dart index cfee7ca..14e5f8f 100644 --- a/lib/src/manager/im_message_manager.dart +++ b/lib/src/manager/im_message_manager.dart @@ -934,6 +934,38 @@ class MessageManager { .then((value) => Utils.toList( value, (map) => MessageTypeKeyMapping.fromJson(map))); + Future> addMessageReactionExtensions({ + required Message message, + List list = const [], + String? operationID, + }) => + _channel + .invokeMethod( + 'addMessageReactionExtensions', + _buildParam({ + 'message': message.toJson(), + 'list': list.map((e) => e.toJson()).toList(), + "operationID": Utils.checkOperationID(operationID), + })) + .then((value) => + Utils.toList(value, (map) => TypeKeySetResult.fromJson(map))); + + Future> getMessageListSomeReactionExtensions({ + List messageList = const [], + List kvList = const [], + String? operationID, + }) => + _channel + .invokeMethod( + 'getMessageListSomeReactionExtensions', + _buildParam({ + 'messageList': messageList.map((e) => e.toJson()).toList(), + 'list': kvList.map((e) => e.toJson()).toList(), + "operationID": Utils.checkOperationID(operationID), + })) + .then((value) => Utils.toList( + value, (map) => MessageTypeKeyMapping.fromJson(map))); + static Map _buildParam(Map param) { param["ManagerName"] = "messageManager"; return param; diff --git a/lib/src/openim.dart b/lib/src/openim.dart index 48dcb28..11898e0 100644 --- a/lib/src/openim.dart +++ b/lib/src/openim.dart @@ -2,7 +2,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; class OpenIM { - static const version = '2.3.5+1'; + static const version = '2.3.5+2'; static const _channel = const MethodChannel('flutter_openim_sdk'); diff --git a/pubspec.yaml b/pubspec.yaml index f43d3d5..8bfa487 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_openim_sdk description: An instant messaging plug-in that supports Android and IOS. And the server is also all open source. -version: 2.3.5+1 +version: 2.3.5+2 homepage: https://www.rentsoft.cn repository: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter