sendAudioMessage method

dynamic sendAudioMessage(
  1. String filePath,
  2. bool isRecorded,
  3. String duration
)

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);
  }
}