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