init
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
||||
@@ -138,11 +139,11 @@ class IMManager {
|
||||
} else if (call.method == ListenerType.advancedMsgListener) {
|
||||
var type = call.arguments['type'];
|
||||
var id = call.arguments['data']['id'];
|
||||
|
||||
var value = call.arguments['data']['message'];
|
||||
log('====================type:$type $value');
|
||||
switch (type) {
|
||||
case 'onRecvNewMessage':
|
||||
var msg = Message.fromJson(
|
||||
_formatJson(call.arguments['data']['message']));
|
||||
var msg = Message.fromJson(_formatJson(value));
|
||||
for (var listener in messageManager.advancedMsgListeners) {
|
||||
if (listener.id == id) {
|
||||
listener.onRecvNewMessage(msg);
|
||||
@@ -150,17 +151,17 @@ class IMManager {
|
||||
}
|
||||
break;
|
||||
case 'onRecvMessageRevoked':
|
||||
var msgId = call.arguments['data']['message'];
|
||||
for (var listener in messageManager.advancedMsgListeners) {
|
||||
if (listener.id == id) {
|
||||
listener.onRecvMessageRevoked(msgId);
|
||||
listener.onRecvMessageRevoked(value);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'onRecvC2CReadReceipt':
|
||||
var info = HaveReadInfo.fromJson(_formatJson(value));
|
||||
for (var listener in messageManager.advancedMsgListeners) {
|
||||
if (listener.id == id) {
|
||||
listener.onRecvC2CReadReceipt(Message());
|
||||
listener.onRecvC2CReadReceipt(info);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -36,7 +36,7 @@ class MessageManager {
|
||||
}
|
||||
|
||||
/// send a message to user or to group
|
||||
///
|
||||
/// userID: receiver's user ID
|
||||
Future<dynamic> sendMessage({
|
||||
required Message message,
|
||||
String? userID,
|
||||
@@ -55,6 +55,7 @@ class MessageManager {
|
||||
}
|
||||
|
||||
/// find all history message
|
||||
/// userID: the user id of the chat partner
|
||||
Future<List<Message>> getHistoryMessageList({
|
||||
String? userID,
|
||||
String? groupID,
|
||||
@@ -93,6 +94,8 @@ class MessageManager {
|
||||
}
|
||||
|
||||
///
|
||||
/// @params userID: receiver's user ID
|
||||
/// @params sender: current user ID
|
||||
Future insertSingleMessageToLocalStorage({
|
||||
String? userID,
|
||||
Message? message,
|
||||
@@ -117,6 +120,7 @@ class MessageManager {
|
||||
}
|
||||
|
||||
///
|
||||
/// @params userID: receiver's userID
|
||||
Future<dynamic> markSingleMessageHasRead({required String userID}) {
|
||||
return _channel.invokeMethod(
|
||||
'markSingleMessageHasRead', _buildParam({'userID': userID}));
|
||||
@@ -128,6 +132,35 @@ class MessageManager {
|
||||
'markGroupMessageHasRead', _buildParam({'groupID': groupID}));
|
||||
}
|
||||
|
||||
///
|
||||
/// @params userID: receiver's user ID
|
||||
Future markC2CMessageAsRead({
|
||||
required String userID,
|
||||
required List<String> messageIDList,
|
||||
}) {
|
||||
return _channel.invokeMethod(
|
||||
'markC2CMessageAsRead',
|
||||
_buildParam({
|
||||
"messageIDList": messageIDList,
|
||||
"userID": userID,
|
||||
}));
|
||||
}
|
||||
|
||||
///
|
||||
/// @params userID: receiver's user ID
|
||||
/// @params status: default no
|
||||
Future typingStatusUpdate({
|
||||
required String userID,
|
||||
bool typing = false,
|
||||
}) {
|
||||
return _channel.invokeMethod(
|
||||
'typingStatusUpdate',
|
||||
_buildParam({
|
||||
"typing": typing ? 'yes' : 'no',
|
||||
"userID": userID,
|
||||
}));
|
||||
}
|
||||
|
||||
///
|
||||
Future<Message> createTextMessage({required String text}) {
|
||||
return _channel
|
||||
|
||||
Reference in New Issue
Block a user