New add fuc

This commit is contained in:
hrxiang
2022-03-18 18:39:34 +08:00
parent 40b65f52a5
commit 8ea08f9ce6
19 changed files with 276 additions and 41 deletions

View File

@@ -191,18 +191,18 @@ class ConversationManager {
/// Message Do Not Disturb
/// [{"conversationId":"single_13922222222","result":0}]
/// 查询免打扰状态
// Future<List<dynamic>> getConversationRecvMessageOpt({
// required List<String> conversationIDList,
// String? operationID,
// }) =>
// _channel
// .invokeMethod(
// 'getConversationRecvMessageOpt',
// _buildParam({
// "conversationIDList": conversationIDList,
// "operationID": Utils.checkOperationID(operationID),
// }))
// .then((value) => Utils.toListMap(value));
Future<List<dynamic>> getConversationRecvMessageOpt({
required List<String> conversationIDList,
String? operationID,
}) =>
_channel
.invokeMethod(
'getConversationRecvMessageOpt',
_buildParam({
"conversationIDList": conversationIDList,
"operationID": Utils.checkOperationID(operationID),
}))
.then((value) => Utils.toListMap(value));
/// Custom sort for conversation list
/// 会话列表自定义排序规则。

View File

@@ -123,17 +123,23 @@ class IMManager {
case 'onRecvNewMessage':
var value = call.arguments['data']['newMessage'];
final msg = Utils.toObj(value, (map) => Message.fromJson(map));
messageManager.advancedMsgListener.recvNewMessage(msg);
messageManager.msgListener.recvNewMessage(msg);
break;
case 'onRecvMessageRevoked':
var value = call.arguments['data']['revokedMessage'];
messageManager.advancedMsgListener.recvMessageRevoked(value);
var msgID = call.arguments['data']['revokedMessage'];
messageManager.msgListener.recvMessageRevoked(msgID);
break;
case 'onRecvC2CReadReceipt':
var value = call.arguments['data']['haveReadMessage'];
var value = call.arguments['data']['c2cMessageReadReceipt'];
var list =
Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
messageManager.advancedMsgListener.recvC2CReadReceipt(list);
messageManager.msgListener.recvC2CMessageReadReceipt(list);
break;
case 'onRecvGroupReadReceipt':
var value = call.arguments['data']['groupMessageReadReceipt'];
var list =
Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
messageManager.msgListener.recvGroupMessageReadReceipt(list);
break;
}
} else if (call.method == ListenerType.msgSendProgressListener) {
@@ -244,6 +250,12 @@ class IMManager {
case 'onReceiveNewInvitation':
signalingManager.listener.receiveNewInvitation(u);
break;
case 'onInviteeAcceptedByOtherDevice':
signalingManager.listener.inviteeAcceptedByOtherDevice(u);
break;
case 'onInviteeRejectedByOtherDevice':
signalingManager.listener.inviteeRejectedByOtherDevice(u);
break;
}
}
} catch (err) {

View File

@@ -6,14 +6,14 @@ class MessageManager {
// List<AdvancedMsgListener> advancedMsgListeners = List.empty(growable: true);
OnMsgSendProgressListener? msgSendProgressListener;
late OnAdvancedMsgListener advancedMsgListener;
late OnAdvancedMsgListener msgListener;
MessageManager(this._channel);
/// Set a message listener
/// 消息监听
Future setAdvancedMsgListener(OnAdvancedMsgListener listener) {
this.advancedMsgListener = listener;
this.msgListener = listener;
// advancedMsgListeners.add(listener);
return _channel.invokeMethod(
'setAdvancedMsgListener',
@@ -123,6 +123,22 @@ class MessageManager {
"operationID": Utils.checkOperationID(operationID),
}));
///
Future insertGroupMessageToLocalStorage({
String? groupID,
String? senderID,
Message? message,
String? operationID,
}) =>
_channel.invokeMethod(
'insertGroupMessageToLocalStorage',
_buildParam({
"message": message?.toJson(),
"groupID": groupID,
"senderID": senderID,
"operationID": Utils.checkOperationID(operationID),
}));
/// Query the message according to the message id
// Future findMessages({required List<String> messageIDList}) =>
// _channel.invokeMethod(