MessageMediaDocument.deserialize constructor

MessageMediaDocument.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory MessageMediaDocument.deserialize(BinaryReader reader) {
  // Read [MessageMediaDocument] fields.
  final flags = reader.readInt32();
  final nopremium = (flags & 8) != 0;
  final spoiler = (flags & 16) != 0;
  final video = (flags & 64) != 0;
  final round = (flags & 128) != 0;
  final voice = (flags & 256) != 0;
  final hasDocumentField = (flags & 1) != 0;
  final document =
      hasDocumentField ? reader.readObject() as DocumentBase : null;
  final hasAltDocumentsField = (flags & 32) != 0;
  final altDocuments =
      hasAltDocumentsField ? reader.readVectorObject<DocumentBase>() : null;
  final hasVideoCoverField = (flags & 512) != 0;
  final videoCover =
      hasVideoCoverField ? reader.readObject() as PhotoBase : null;
  final hasVideoTimestampField = (flags & 1024) != 0;
  final videoTimestamp = hasVideoTimestampField ? reader.readInt32() : null;
  final hasTtlSecondsField = (flags & 4) != 0;
  final ttlSeconds = hasTtlSecondsField ? reader.readInt32() : null;

  // Construct [MessageMediaDocument] object.
  final returnValue = MessageMediaDocument(
    nopremium: nopremium,
    spoiler: spoiler,
    video: video,
    round: round,
    voice: voice,
    document: document,
    altDocuments: altDocuments?.items,
    videoCover: videoCover,
    videoTimestamp: videoTimestamp,
    ttlSeconds: ttlSeconds,
  );

  // Now return the deserialized [MessageMediaDocument].
  return returnValue;
}