mergedMessageForward method
void
mergedMessageForward(})
合并转发
exitMultiMode
是否退出多选模式
postScript
转发后的附言
sessionId
转发的目标会话id
sessionType
转发的目标会话类型
errorToast
转发失败的提示
Implementation
void mergedMessageForward(String sessionId, NIMSessionType sessionType,
{String? postScript,
String? errorToast,
bool exitMultiMode = true}) async {
if (await haveConnectivity()) {
_selectedMessages.removeWhere((element) =>
element.status == NIMMessageStatus.fail ||
element.status == NIMMessageStatus.sending);
_selectedMessages.sort((a, b) => a.timestamp - b.timestamp);
MergeMessageHelper.createMergedMessage(
selectedMessages, sessionId, sessionType)
.then((value) async {
if (value.isSuccess && value.data != null) {
value.data!.messageAck = await ConfigRepo.getShowReadStatus();
ChatMessageRepo.sendMessage(message: value.data!).then((value) {
if (value.code == ChatMessageRepo.errorInBlackList) {
ChatMessageRepo.saveTipsMessage(sessionId, sessionType,
S.of().chatMessageSendFailedByBlackList);
}
if (postScript?.isNotEmpty == true) {
ChatMessageRepo.sendTextMessageWithMessageAck(
sessionId: sessionId,
sessionType: sessionType,
text: postScript!);
}
});
} else {
_logI(
'createMergedMessage failed, code = ${value.code}, error = ${value.errorDetails}');
if (errorToast?.isNotEmpty == true) {
Fluttertoast.showToast(msg: errorToast!);
}
}
if (exitMultiMode) {
isMultiSelected = false;
}
notifyListeners();
});
}
}