mergedMessageForward method

void mergedMessageForward(
  1. String conversationId, {
  2. String? postScript,
  3. String? errorToast,
  4. bool exitMultiMode = true,
})

合并转发 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();
    });
  }
}