This commit is contained in:
hrxiang
2021-12-15 14:55:47 +08:00
parent 603188d98a
commit 0fbfc70ef1
15 changed files with 509 additions and 541 deletions

View File

@@ -43,16 +43,15 @@ class MessageManager {
String? userID,
String? groupID,
bool onlineUserOnly = false,
}) {
return _channel.invokeMethod(
'sendMessage',
_buildParam({
'message': message.toJson(),
'receiver': userID ?? '',
'groupID': groupID ?? '',
'onlineUserOnly': onlineUserOnly,
})) /*.then((value) => _toObj(value))*/;
}
}) =>
_channel.invokeMethod(
'sendMessage',
_buildParam({
'message': message.toJson(),
'receiver': userID ?? '',
'groupID': groupID ?? '',
'onlineUserOnly': onlineUserOnly,
})) /*.then((value) => _toObj(value))*/;
/// Find all history message
Future<List<Message>> getHistoryMessageList({
@@ -60,157 +59,139 @@ class MessageManager {
String? groupID,
Message? startMsg,
int? count,
}) {
return _channel
.invokeMethod(
'getHistoryMessageList',
_buildParam({
'userID': userID ?? '',
'startMsg': startMsg?.toJson() /*?? {}*/,
'groupID': groupID ?? '',
'count': count ?? 10,
}))
.then((value) => _toList(value));
}
}) =>
_channel
.invokeMethod(
'getHistoryMessageList',
_buildParam({
'userID': userID ?? '',
'startMsg': startMsg?.toJson() /*?? {}*/,
'groupID': groupID ?? '',
'count': count ?? 10,
}))
.then((value) => _toList(value));
/// Revoke the sent information
Future revokeMessage({required Message message}) {
return _channel.invokeMethod(
'revokeMessage', _buildParam(message.toJson()));
}
Future revokeMessage({required Message message}) =>
_channel.invokeMethod('revokeMessage', _buildParam(message.toJson()));
/// Delete message
Future deleteMessageFromLocalStorage({required Message message}) {
return _channel.invokeMethod(
'deleteMessageFromLocalStorage', _buildParam(message.toJson()));
}
Future deleteMessageFromLocalStorage({required Message message}) =>
_channel.invokeMethod(
'deleteMessageFromLocalStorage', _buildParam(message.toJson()));
///
@deprecated
Future deleteMessages({required List<Message> msgList}) {
return _channel.invokeMethod('deleteMessages',
_buildParam({"msgList": msgList.map((e) => e.toJson()).toList()}));
}
Future deleteMessages({required List<Message> msgList}) =>
_channel.invokeMethod('deleteMessages',
_buildParam({"msgList": msgList.map((e) => e.toJson()).toList()}));
///
Future insertSingleMessageToLocalStorage({
String? receiver,
String? sender,
Message? message,
}) {
return _channel.invokeMethod(
'insertSingleMessageToLocalStorage',
_buildParam({
"userID": receiver,
"message": message?.toJson(),
"sender": sender,
}));
}
}) =>
_channel.invokeMethod(
'insertSingleMessageToLocalStorage',
_buildParam({
"userID": receiver,
"message": message?.toJson(),
"sender": sender,
}));
/// Query the message according to the message id
Future findMessages({required List<String> messageIDList}) {
return _channel.invokeMethod(
'findMessages',
_buildParam({
"messageIDList": messageIDList,
}));
}
Future findMessages({required List<String> messageIDList}) =>
_channel.invokeMethod(
'findMessages',
_buildParam({
"messageIDList": messageIDList,
}));
/// Mark c2c message as read
Future markC2CMessageAsRead({
required String userID,
required List<String> messageIDList,
}) {
return _channel.invokeMethod(
'markC2CMessageAsRead',
_buildParam({
"messageIDList": messageIDList,
"userID": userID,
}));
}
}) =>
_channel.invokeMethod(
'markC2CMessageAsRead',
_buildParam({
"messageIDList": messageIDList,
"userID": userID,
}));
/// Typing
Future typingStatusUpdate({
required String userID,
bool typing = false,
}) {
return _channel.invokeMethod(
'typingStatusUpdate',
_buildParam({
"typing": typing ? 'yes' : 'no',
"userID": userID,
}));
}
}) =>
_channel.invokeMethod(
'typingStatusUpdate',
_buildParam({
"typing": typing ? 'yes' : 'no',
"userID": userID,
}));
/// Create text message
Future<Message> createTextMessage({required String text}) {
return _channel
.invokeMethod('createTextMessage', _buildParam({'text': text}))
.then((value) => _toObj(value));
}
Future<Message> createTextMessage({required String text}) => _channel
.invokeMethod('createTextMessage', _buildParam({'text': text}))
.then((value) => _toObj(value));
/// Create @ message
Future<Message> createTextAtMessage({
required String text,
required List<String> atUidList,
}) {
return _channel
.invokeMethod(
'createTextAtMessage',
_buildParam({
'text': text,
'atUserList': atUidList,
}),
)
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createTextAtMessage',
_buildParam({
'text': text,
'atUserList': atUidList,
}),
)
.then((value) => _toObj(value));
/// Create picture message
Future<Message> createImageMessage({required String imagePath}) {
return _channel
.invokeMethod(
'createImageMessage',
_buildParam({'imagePath': imagePath}),
)
.then((value) => _toObj(value));
}
Future<Message> createImageMessage({required String imagePath}) => _channel
.invokeMethod(
'createImageMessage',
_buildParam({'imagePath': imagePath}),
)
.then((value) => _toObj(value));
/// Create picture message
Future<Message> createImageMessageFromFullPath({required String imagePath}) {
return _channel
.invokeMethod(
'createImageMessageFromFullPath',
_buildParam({'imagePath': imagePath}),
)
.then((value) => _toObj(value));
}
Future<Message> createImageMessageFromFullPath({required String imagePath}) =>
_channel
.invokeMethod(
'createImageMessageFromFullPath',
_buildParam({'imagePath': imagePath}),
)
.then((value) => _toObj(value));
/// Create sound message
Future<Message> createSoundMessage({
required String soundPath,
required int duration,
}) {
return _channel
.invokeMethod(
'createSoundMessage',
_buildParam({'soundPath': soundPath, "duration": duration}),
)
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createSoundMessage',
_buildParam({'soundPath': soundPath, "duration": duration}),
)
.then((value) => _toObj(value));
/// Create sound message
Future<Message> createSoundMessageFromFullPath({
required String soundPath,
required int duration,
}) {
return _channel
.invokeMethod(
'createSoundMessageFromFullPath',
_buildParam({'soundPath': soundPath, "duration": duration}),
)
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createSoundMessageFromFullPath',
_buildParam({'soundPath': soundPath, "duration": duration}),
)
.then((value) => _toObj(value));
/// Create video message
Future<Message> createVideoMessage({
@@ -218,18 +199,17 @@ class MessageManager {
required String videoType,
required int duration,
required String snapshotPath,
}) {
return _channel
.invokeMethod(
'createVideoMessage',
_buildParam({
'videoPath': videoPath,
'videoType': videoType,
'duration': duration,
'snapshotPath': snapshotPath,
}))
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createVideoMessage',
_buildParam({
'videoPath': videoPath,
'videoType': videoType,
'duration': duration,
'snapshotPath': snapshotPath,
}))
.then((value) => _toObj(value));
/// Create video message
Future<Message> createVideoMessageFromFullPath({
@@ -237,18 +217,17 @@ class MessageManager {
required String videoType,
required int duration,
required String snapshotPath,
}) {
return _channel
.invokeMethod(
'createVideoMessageFromFullPath',
_buildParam({
'videoPath': videoPath,
'videoType': videoType,
'duration': duration,
'snapshotPath': snapshotPath,
}))
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createVideoMessageFromFullPath',
_buildParam({
'videoPath': videoPath,
'videoType': videoType,
'duration': duration,
'snapshotPath': snapshotPath,
}))
.then((value) => _toObj(value));
/// Create file message
Future<Message> createFileMessage({
@@ -269,33 +248,31 @@ class MessageManager {
Future<Message> createFileMessageFromFullPath({
required String filePath,
required String fileName,
}) {
return _channel
.invokeMethod(
'createFileMessageFromFullPath',
_buildParam({
'filePath': filePath,
'fileName': fileName,
}))
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createFileMessageFromFullPath',
_buildParam({
'filePath': filePath,
'fileName': fileName,
}))
.then((value) => _toObj(value));
/// Create merger message
Future<Message> createMergerMessage({
required List<Message> messageList,
required String title,
required List<String> summaryList,
}) {
return _channel
.invokeMethod(
'createMergerMessage',
_buildParam({
'messageList': messageList.map((e) => e.toJson()).toList(),
'title': title,
'summaryList': summaryList,
}))
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createMergerMessage',
_buildParam({
'messageList': messageList.map((e) => e.toJson()).toList(),
'title': title,
'summaryList': summaryList,
}))
.then((value) => _toObj(value));
/// Create forward message
Future<Message> createForwardMessage({required Message message}) {
@@ -313,79 +290,71 @@ class MessageManager {
required double latitude,
required double longitude,
required String description,
}) {
return _channel
.invokeMethod(
'createLocationMessage',
_buildParam({
'latitude': latitude,
'longitude': longitude,
'description': description,
}))
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createLocationMessage',
_buildParam({
'latitude': latitude,
'longitude': longitude,
'description': description,
}))
.then((value) => _toObj(value));
/// Create custom message
Future<Message> createCustomMessage({
required String data,
required String extension,
required String description,
}) {
return _channel
.invokeMethod(
'createCustomMessage',
_buildParam({
'data': data,
'extension': extension,
'description': description,
}))
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createCustomMessage',
_buildParam({
'data': data,
'extension': extension,
'description': description,
}))
.then((value) => _toObj(value));
/// Create quote message
Future<Message> createQuoteMessage({
required String text,
required Message quoteMsg,
}) {
return _channel
.invokeMethod(
'createQuoteMessage',
_buildParam({
'quoteText': text,
'quoteMessage': quoteMsg.toJson(),
}))
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createQuoteMessage',
_buildParam({
'quoteText': text,
'quoteMessage': quoteMsg.toJson(),
}))
.then((value) => _toObj(value));
/// Create card message
Future<Message> createCardMessage({
required Map<String, dynamic> data,
}) {
return _channel
.invokeMethod(
'createCardMessage',
_buildParam({
'cardMessage': data,
}))
.then((value) => _toObj(value));
}
}) =>
_channel
.invokeMethod(
'createCardMessage',
_buildParam({
'cardMessage': data,
}))
.then((value) => _toObj(value));
///
Future<dynamic> clearC2CHistoryMessage({required String uid}) {
return _channel.invokeMethod(
'clearC2CHistoryMessage', _buildParam({"userID": uid}));
}
Future<dynamic> clearC2CHistoryMessage({required String uid}) => _channel
.invokeMethod('clearC2CHistoryMessage', _buildParam({"userID": uid}));
///
Future<dynamic> clearGroupHistoryMessage({required String gid}) {
return _channel.invokeMethod(
'clearGroupHistoryMessage', _buildParam({"groupID": gid}));
}
Future<dynamic> clearGroupHistoryMessage({required String gid}) => _channel
.invokeMethod('clearGroupHistoryMessage', _buildParam({"groupID": gid}));
///
void forceSyncMsg() {
_channel.invokeMethod('forceSyncMsg', _buildParam({}));
}
// void forceSyncMsg() {
// _channel.invokeMethod('forceSyncMsg', _buildParam({}));
// }
static Map _buildParam(Map param) {
param["ManagerName"] = "messageManager";
@@ -397,9 +366,7 @@ class MessageManager {
static Message _toObj(String value) => Message.fromJson(_formatJson(value));
static dynamic _formatJson(value) {
return jsonDecode(_printValue(value));
}
static dynamic _formatJson(value) => jsonDecode(_printValue(value));
static String _printValue(value) {
return value;