sendMessage method
dynamic
sendMessage(
- Profile profile,
- 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);
}
}