mergedMessageForward method

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

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