sendAudioMessage method
Implementation
sendAudioMessage(String filePath, bool isRecorded, String duration) async {
if (!availableFeatures.value.isAudioAttachmentAvailable.checkNull()) {
DialogUtils.showFeatureUnavailable();
return;
}
var busyStatus = !profile.isGroupProfile.checkNull()
? await Mirrorfly.isBusyStatusEnabled()
: false;
if (!busyStatus.checkNull()) {
var replyMessageId = "";
if (isReplying.value) {
replyMessageId = replyChatMessage.messageId;
}
isUserTyping(messageController.text.trim().isNotEmpty);
isReplying(false);
//old method is deprecated Instead of use below new method
/*Mirrorfly.sendAudioMessage(
profile.jid!, filePath, isRecorded, duration, replyMessageId,topicId: topicId)
.then((value) {
LogMessage.d("Audio Message sent", value);
ChatMessageModel chatMessageModel = sendMessageModelFromJson(value);
// chatList.insert(0, chatMessageModel);
scrollToBottom();
updateLastMessage(value);
return chatMessageModel;
});*/
Mirrorfly.sendMessage(
messageParams: MessageParams.audio(
toJid: profile.jid.checkNull(),
isRecorded: isRecorded,
replyMessageId: replyMessageId,
topicId: topicId,
// metaData: messageMetaData, //#metaData
fileMessageParams: FileMessageParams(file: File(filePath))),
flyCallback: (response) {
if (response.isSuccess) {
LogMessage.d("audio Message", response.data);
scrollToBottom();
updateLastMessage(response.data);
} else {
LogMessage.d("sendMessage", response.errorMessage);
showError(response.exception);
}
});
} else {
//show busy status popup
messageObject = MessageObject(
toJid: profile.jid.toString(),
replyMessageId: (isReplying.value) ? replyChatMessage.messageId : "",
messageType: Constants.mAudio,
file: filePath,
isAudioRecorded: isRecorded,
audioDuration: duration);
showBusyStatusAlert(disableBusyChatAndSend);
}
}