main
hrxiang 2 years ago
parent c6d9815e64
commit fc6fd3dd93
  1. 6
      CHANGELOG.md
  2. 2
      android/build.gradle
  3. 9
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnAdvancedMsgListener.java
  4. 18
      android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java
  5. 7
      lib/src/listener/advanced_msg_listener.dart
  6. 7
      lib/src/manager/im_manager.dart
  7. 32
      lib/src/manager/im_message_manager.dart
  8. 2
      lib/src/openim.dart
  9. 2
      pubspec.yaml

@ -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

@ -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'
}

@ -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<String, String> 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<String, String> values = new ArrayMap<>();

@ -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")
);
}
}

@ -9,6 +9,7 @@ class OnAdvancedMsgListener {
Function(RevokedInfo info)? onRecvMessageRevokedV2;
Function(String msgID, List<KeyValue> list)? onRecvMessageExtensionsChanged;
Function(String msgID, List<String> list)? onRecvMessageExtensionsDeleted;
Function(String msgID, List<KeyValue> 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<String> list) {
onRecvMessageExtensionsDeleted?.call(msgID, list);
}
/// kv新增
void recvMessageExtensionsAdded(String msgID, List<KeyValue> list) {
onRecvMessageExtensionsAdded?.call(msgID, list);
}
}

@ -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'];

@ -934,6 +934,38 @@ class MessageManager {
.then((value) => Utils.toList(
value, (map) => MessageTypeKeyMapping.fromJson(map)));
Future<List<TypeKeySetResult>> addMessageReactionExtensions({
required Message message,
List<KeyValue> 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<List<MessageTypeKeyMapping>> getMessageListSomeReactionExtensions({
List<Message> messageList = const [],
List<KeyValue> 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;

@ -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');

@ -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

Loading…
Cancel
Save