AudioMessage.create constructor

AudioMessage.create(
  1. String path,
  2. int durationInSec,
  3. List<double> waveform, {
  4. String? roomId,
  5. MessageExtra? extra,
  6. String? id,
  7. String? senderId,
  8. String? replyId,
  9. ChatValueTimestamp? createdAt,
})

Implementation

factory AudioMessage.create(
  String path,
  int durationInSec,
  List<double> waveform, {
  String? roomId,
  MessageExtra? extra,
  String? id,
  String? senderId,
  String? replyId,
  ChatValueTimestamp? createdAt,
}) {
  senderId ??= RoomManager.i.me;
  if (senderId.isEmpty) return const AudioMessage.empty();
  id ??= ChatHelper.generateMessageId();
  createdAt ??= ChatValueTimestamp.now();
  return AudioMessage._(
    id: id,
    roomId: roomId ?? '',
    senderId: senderId,
    replyId: replyId,
    createdAt: createdAt,
    updatedAt: createdAt,
    extra: extra ?? {},
    statuses: {senderId: MessageStatus.sending},
    durationInSec: durationInSec,
    url: path,
    waveform: waveform,
  );
}