sendPublicMessage method

Future<void> sendPublicMessage(
  1. String userMessage
)

Implementation

Future<void> sendPublicMessage(String userMessage) async {
  if (!Utils.isMessageSizeValid(userMessage)) {
    sendMessageToUI("Message is too long! Please shorten it and try again.");
    return;
  }
  // Create a message
  final message = SendMessageModel(
    action: MeetingActions.sendPublicMessage,
    id: const Uuid().v4(),
    // Generate a unique ID
    message: userMessage,
    timestamp: DateTime.now().millisecondsSinceEpoch,
    // Current timestamp
    isReplied: _publicReplyDraft != null,
    replyMessage: _publicReplyDraft,
  );

  // Publish the data to the LiveKit room
  await room.localParticipant?.publishData(
    utf8.encode(jsonEncode(message)), // Convert to bytes,
    reliable: true,
  );

  // Update the message list
  addMessage(
    RemoteActivityData(
        identity: null,
        id: message.id,
        message: message.message,
        timestamp: message.timestamp,
        action: MeetingActions.sendPublicMessage,
        // Assuming no action is provided
        isSender: true,
        // isSender
        replyMessage: message.replyMessage),
  );
  publicReplyDraft = null;
}