sendMessage method

dynamic sendMessage(
  1. Profile profile,
  2. BuildContext context
)

Implementation

sendMessage(Profile profile, BuildContext context) async {
  removeUnreadSeparator();
  var busyStatus = !profile.isGroupProfile.checkNull()
      ? await Mirrorfly.isBusyStatusEnabled()
      : false;
  if (!busyStatus.checkNull()) {
    var replyMessageId = Constants.emptyString;

    if (isReplying.value) {
      replyMessageId = replyChatMessage.messageId;
    }
    isReplying(false);
    if (messageController.text.trim().isNotEmpty) {
      Mirrorfly.sendTextMessage(
              messageController.text.trim(), profile.jid.toString(), replyMessageId)
          .then((value) {
        mirrorFlyLog("text message", value);
        messageController.text = Constants.emptyString;
        isUserTyping(false);
        clearMessage();
        ChatMessageModel chatMessageModel = sendMessageModelFromJson(value);
        mirrorFlyLog(
            "inserting chat message",
            chatMessageModel.replyParentChatMessage?.messageType ??
                "value is null");
        chatList.insert(0, chatMessageModel);
        scrollToBottom();
      });
    }
  } else {
    //show busy status popup
    messageObject = MessageObject(
        toJid: profile.jid.toString(),
        replyMessageId: (isReplying.value) ? replyChatMessage.messageId : Constants.emptyString,
        messageType: Constants.mText,
        textMessage: messageController.text.trim());
    if (context.mounted) showBusyStatusAlert(disableBusyChatAndSend, context);
  }
}