addTextOrRefrenceMessage method

Future<void> addTextOrRefrenceMessage(
  1. String text, [
  2. RCIMIWMessage? referenceMessage,
  3. List<String>? mentionList
])

Implementation

Future<void> addTextOrRefrenceMessage(String text,
    [RCIMIWMessage? referenceMessage, List<String>? mentionList]) async {
  RCIMIWMessage? message;
  if (referenceMessage != null) {
    message = await engineProvider.engine?.createReferenceMessage(
      _con.conversationType ?? RCIMIWConversationType.invalid,
      _con.targetId ?? '',
      _con.channelId,
      referenceMessage,
      text,
    );
  } else {
    message = await engineProvider.engine?.createTextMessage(
      _con.conversationType ?? RCIMIWConversationType.invalid,
      _con.targetId ?? '',
      _con.channelId,
      text,
    );
  }

  if (mentionList != null && mentionList.isNotEmpty) {
    RCIMIWMentionedType? type;
    if (mentionList.contains('All')) {
      // 如果mentionList中包含'id'为'All'的节点,则处理@所有成员的逻辑
      type = RCIMIWMentionedType.all;
    } else {
      type = RCIMIWMentionedType.part;
    }
    RCIMIWMentionedInfo mentionedInfo =
        RCIMIWMentionedInfo.create(type: type, userIdList: mentionList);
    message?.mentionedInfo = mentionedInfo;
  }

  if (message != null) {
    sendMessage(message);
  }
}