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