GroupCallParticipant.deserialize constructor

GroupCallParticipant.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory GroupCallParticipant.deserialize(BinaryReader reader) {
  // Read [GroupCallParticipant] fields.
  final flags = reader.readInt32();
  final muted = (flags & 1) != 0;
  final left = (flags & 2) != 0;
  final canSelfUnmute = (flags & 4) != 0;
  final justJoined = (flags & 16) != 0;
  final versioned = (flags & 32) != 0;
  final min = (flags & 256) != 0;
  final mutedByYou = (flags & 512) != 0;
  final volumeByAdmin = (flags & 1024) != 0;
  final self = (flags & 4096) != 0;
  final videoJoined = (flags & 32768) != 0;
  final peer = reader.readObject() as PeerBase;
  final date = reader.readDateTime();
  final hasActiveDateField = (flags & 8) != 0;
  final activeDate = hasActiveDateField ? reader.readDateTime() : null;
  final source = reader.readInt32();
  final hasVolumeField = (flags & 128) != 0;
  final volume = hasVolumeField ? reader.readInt32() : null;
  final hasAboutField = (flags & 2048) != 0;
  final about = hasAboutField ? reader.readString() : null;
  final hasRaiseHandRatingField = (flags & 8192) != 0;
  final raiseHandRating = hasRaiseHandRatingField ? reader.readInt64() : null;
  final hasVideoField = (flags & 64) != 0;
  final video = hasVideoField
      ? reader.readObject() as GroupCallParticipantVideoBase
      : null;
  final hasPresentationField = (flags & 16384) != 0;
  final presentation = hasPresentationField
      ? reader.readObject() as GroupCallParticipantVideoBase
      : null;

  // Construct [GroupCallParticipant] object.
  final returnValue = GroupCallParticipant(
    muted: muted,
    left: left,
    canSelfUnmute: canSelfUnmute,
    justJoined: justJoined,
    versioned: versioned,
    min: min,
    mutedByYou: mutedByYou,
    volumeByAdmin: volumeByAdmin,
    self: self,
    videoJoined: videoJoined,
    peer: peer,
    date: date,
    activeDate: activeDate,
    source: source,
    volume: volume,
    about: about,
    raiseHandRating: raiseHandRating,
    video: video,
    presentation: presentation,
  );

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