sendMessage method

dynamic sendMessage(
  1. ProfileDetails profile
)

Implementation

sendMessage(ProfileDetails profile) async {
  removeUnreadSeparator();
  var busyStatus = !profile.isGroupProfile.checkNull()
      ? await Mirrorfly.isBusyStatusEnabled()
      : false;
  if (!busyStatus.checkNull()) {
    var replyMessageId = "";

    if (isReplying.value) {
      replyMessageId = replyChatMessage.messageId;
    }
    isReplying(false);
    if (messageController.text.trim().isNotEmpty) {
      //old method is deprecated Instead of use below new method
      /*Mirrorfly.sendTextMessage(messageController.text.trim(),
          profile.jid.toString(),replyMessageId,topicId: topicId)
          .then((value) {
        LogMessage.d("text message", value);
        messageController.text = "";
        isUserTyping(false);
        clearMessage();
        ChatMessageModel chatMessageModel = sendMessageModelFromJson(value);
        LogMessage.d(
            "inserting chat message",
            chatMessageModel.replyParentChatMessage?.messageType ??
                "value is null");
        // chatList.insert(0, chatMessageModel);
        scrollToBottom();
        updateLastMessage(value);
      });*/
      Mirrorfly.sendMessage(
          messageParams: MessageParams.text(
              toJid: profile.jid.checkNull(),
              replyMessageId: replyMessageId,
              topicId: topicId,
              // metaData: messageMetaData, //#metaData
              textMessageParams: TextMessageParams(
                  messageText: messageController.text.trim())),
          flyCallback: (response) {
            if (response.isSuccess) {
              LogMessage.d("text message", response.data);
              messageController.text = "";
              isUserTyping(false);
              // clearMessage();
              scrollToBottom();
              updateLastMessage(response.data);
            } else {
              LogMessage.d("sendMessage", response.errorMessage);
            }
          });
    }
  } else {
    //show busy status popup
    messageObject = MessageObject(
        toJid: profile.jid.toString(),
        replyMessageId: (isReplying.value) ? replyChatMessage.messageId : "",
        messageType: Constants.mText,
        textMessage: messageController.text.trim());
    showBusyStatusAlert(disableBusyChatAndSend);
  }
}