sendTextMessage method

void sendTextMessage(
  1. String text, {
  2. NIMMessage? replyMsg,
  3. List<String>? pushList,
  4. AitContactsModel? aitContactsModel,
  5. String? title,
})

Implementation

void sendTextMessage(String text,
    {NIMMessage? replyMsg,
    List<String>? pushList,
    AitContactsModel? aitContactsModel,
    String? title}) async {
  var aitMap;

  if (aitContactsModel?.aitBlocks.isNotEmpty == true) {
    aitMap = aitContactsModel?.toMap();
  }

  var customData =
      ChatMessageHelper.getMultiLineMessageMap(title: title, content: text);

  var customJson = customData == null ? '' : jsonEncode(customData);

  var pushConfig = null;

  var msgBuildResult = (title?.isNotEmpty == true)
      ? (await MessageCreator.createCustomMessage("", customJson))
      : (await MessageCreator.createTextMessage(text));
  if (msgBuildResult.isSuccess && msgBuildResult.data != null) {
    if (conversationType == NIMConversationType.team && pushList != null) {
      pushConfig = NIMMessagePushConfig(
          pushContent: title ?? text,
          forcePush: true,
          forcePushContent: title ?? text,
          forcePushAccountIds: pushList);
    } else {
      pushConfig = NIMMessagePushConfig(pushContent: title ?? text);
    }
    if (aitMap != null) {
      msgBuildResult.data!.serverExtension = jsonEncode({
        ChatMessage.keyAitMsg: aitMap,
      });
    }
    sendMessage(msgBuildResult.data!,
        replyMsg: replyMsg, pushConfig: pushConfig);
  }
}