sendTextMessage method

dynamic sendTextMessage({
  1. Map<String, dynamic>? metadata,
})

Implementation

sendTextMessage({Map<String, dynamic>? metadata}) {
  if(textEditingController == null) return;
  String messagesText = textEditingController!.text;
  String type = MessageTypeConstants.text;

  TextMessage textMessage = TextMessage(
    sender: loggedInUser,
    text: messagesText,
    receiverUid: receiverID,
    receiverType: receiverType,
    type: type,
    metadata: metadata,
    parentMessageId: parentMessageId,
    muid: DateTime.now().microsecondsSinceEpoch.toString(),
    category: CometChatMessageCategory.message,
  );

  handlePreMessageSend(textMessage);

  oldMessage = null;
  messagePreviewTitle = '';
  messagePreviewSubtitle = '';
  previewMessageMode = PreviewMessageMode.none;
  textEditingController?.clear();
  _previousText = '';
  update();
  if (onSendButtonTap != null) {
    onSendButtonTap!(context, textMessage, previewMessageMode);
  } else {
    CometChatMessageEvents.ccMessageSent(
        textMessage, MessageStatus.inProgress);

    CometChat.sendMessage(textMessage, onSuccess: (TextMessage message) {
      debugPrint("Message sent successfully:  ${message.text}");
      if (disableSoundForMessages == false) {
        CometChatUIKit.soundManager.play(
            sound: Sound.outgoingMessage,
            customSound: customSoundForMessage,
            packageName:
                customSoundForMessage == null || customSoundForMessage == ""
                    ? UIConstants.packageName
                    : customSoundForMessagePackage);
      }
      CometChatMessageEvents.ccMessageSent(message, MessageStatus.sent);
    },
        onError: onError ??
            (CometChatException e) {
              if (textMessage.metadata != null) {
                textMessage.metadata!["error"] = e;
              } else {
                textMessage.metadata = {"error": e};
              }
              CometChatMessageEvents.ccMessageSent(
                  textMessage, MessageStatus.error);
              debugPrint(
                  "Message sending failed with exception:  ${e.message}");
            });
  }
}