sendMessage method Null safety

Future<ChatMessage> sendMessage(
  1. ChatMessage message
)

Sends a message.

Note For attachment messages such as voice, image, or video messages, the SDK automatically uploads the attachment. You can set whether to upload the attachment to the chat sever using {@link ChatOptions#serverTransfer(boolean)}.

To listen for the status of sending messages, call {@link ChatMessage#setMessageStatusListener(ChatMessageStatusListener)}.

Param message The message object to be sent: {@link ChatMessage}.

Throws A description of the exception. See {@link ChatError}.

Implementation

Future<ChatMessage> sendMessage(ChatMessage message) async {
  message.status = MessageStatus.PROGRESS;
  Map result = await ChatMethodChannel.ChatManager.invokeMethod(
      ChatMethodKeys.sendMessage, message.toJson());
  try {
    ChatError.hasErrorFromResult(result);
    ChatMessage msg = ChatMessage.fromJson(result[ChatMethodKeys.sendMessage]);
    message.from = msg.from;
    message.to = msg.to;
    message.status = msg.status;
    return message;
  } on ChatError catch (e) {
    throw e;
  }
}