createMessage method

dynamic createMessage(
  1. BaseMessage copyFromMessage,
  2. User? user,
  3. Group? group
)

Implementation

createMessage(BaseMessage copyFromMessage, User? user, Group? group) async {
  if (copyFromMessage is TextMessage) {
    TextMessage message = TextMessage(
      text: copyFromMessage.text,
      receiverUid: user?.uid ?? group?.guid ?? "",
      type: MessageTypeConstants.text,
      category: MessageCategoryConstants.message,
      receiverType: user != null
          ? ReceiverTypeConstants.user
          : ReceiverTypeConstants.group,
      muid: DateTime.now().microsecondsSinceEpoch.toString(),
      sender: loggedInUser,
      parentMessageId: 0,
    );
    await CometChatUIKit.sendTextMessage(message,
        onSuccess: (BaseMessage returnedMessage) {},
        onError: (CometChatException excep) {});
  } else if (copyFromMessage is MediaMessage) {
    if (copyFromMessage.attachment == null) return;

    String fileUrl = copyFromMessage.attachment!.fileUrl;
    String fileName = copyFromMessage.attachment!.fileName;
    String fileExtension = copyFromMessage.attachment!.fileExtension;
    String fileMimeType = copyFromMessage.attachment!.fileMimeType;

    Attachment attachment =
        Attachment(fileUrl, fileName, fileExtension, fileMimeType, null);

    MediaMessage message = MediaMessage(
        receiverUid: user?.uid ?? group?.guid ?? "",
        type: copyFromMessage.type,
        category: MessageCategoryConstants.message,
        receiverType: user != null
            ? ReceiverTypeConstants.user
            : ReceiverTypeConstants.group,
        muid: DateTime.now().microsecondsSinceEpoch.toString(),
        sender: loggedInUser,
        parentMessageId: 0,
        attachment: attachment);

    await CometChatUIKit.sendMediaMessage(message,
        onSuccess: (BaseMessage returnedMessage) {},
        onError: (CometChatException excep) {});
  } else if (copyFromMessage is CustomMessage) {
    CustomMessage message = CustomMessage(
      customData: copyFromMessage.customData,
      receiverUid: user?.uid ?? group?.guid ?? "",
      type: copyFromMessage.type,
      category: MessageCategoryConstants.custom,
      receiverType: user != null
          ? ReceiverTypeConstants.user
          : ReceiverTypeConstants.group,
      muid: DateTime.now().microsecondsSinceEpoch.toString(),
      sender: loggedInUser,
      parentMessageId: 0,
    );

    await CometChatUIKit.sendCustomMessage(message,
        onSuccess: (BaseMessage returnedMessage) {},
        onError: (CometChatException excep) {});
  }
}