createMergerMessageWithMessageList method

V2TimMsgCreateInfoResult? createMergerMessageWithMessageList(
  1. {required List<V2TimMessage> msgList,
  2. required String title,
  3. required List<String> abstractList,
  4. required String compatibleText}
)

Implementation

V2TimMsgCreateInfoResult? createMergerMessageWithMessageList({required List<V2TimMessage> msgList, required String title, required List<String> abstractList, required String compatibleText}) {
  List<String> abstractListAdjust = abstractList.take(_MAX_ABSTRACT_COUNT).map((e) => _safeSubstring(e, _MAX_ABSTRACT_LENGTH)).toList();

  for (var msg in msgList) {
    if (msg.status != MessageStatus.V2TIM_MSG_STATUS_SEND_SUCC) {
      print("createMergerMessageWithMessageList, message status must be V2TIM_MSG_STATUS_SEND_SUCC");
      return null;
    }

    if (msg.elemType == MessageElemType.V2TIM_ELEM_TYPE_GROUP_TIPS) {
      print("createMergerMessageWithMessageList, group tips message is not support");
      return null;
    }
  }

  V2TimMergerElem mergerElem = V2TimMergerElem(title: title);
  int elemType = MessageElemType.V2TIM_ELEM_TYPE_MERGER;
  mergerElem.title = title;
  mergerElem.abstractList = abstractListAdjust;
  mergerElem.compatibleText = compatibleText;
  mergerElem.messageList = msgList;
  V2TimMessage v2timMessage = V2TimMessage(elemType: elemType);
  v2timMessage.mergerElem = mergerElem;
  v2timMessage.elemList.add(mergerElem);
  v2timMessage.isForwardMessage = true;

  String tempID = _createMessageTempID();
  v2timMessage.id = tempID;
  messageIDMap.addAll({tempID: v2timMessage});

  V2TimMsgCreateInfoResult result = V2TimMsgCreateInfoResult(id: tempID, messageInfo: v2timMessage);
  return result;
}