sendMessage method

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

Implementation

sendMessage(ProfileDetails 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.sendMessage(
          messageParams: MessageParams.text(
              toJid: profile.jid.checkNull(),
              replyMessageId: replyMessageId,
              topicId: topicId,
              textMessageParams: TextMessageParams(
                  messageText: messageController.text.trim())),
          flyCallback: (response) {
            if (response.isSuccess) {
              mirrorFlyLog("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
            : Constants.emptyString,
        messageType: Constants.mText,
        textMessage: messageController.text.trim());
    if (context.mounted) showBusyStatusAlert(disableBusyChatAndSend, context);
  }
}