Channel.deserialize constructor

Channel.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory Channel.deserialize(BinaryReader reader) {
  // Read [Channel] fields.
  final flags = reader.readInt32();
  final creator = (flags & 1) != 0;
  final left = (flags & 4) != 0;
  final broadcast = (flags & 32) != 0;
  final verified = (flags & 128) != 0;
  final megagroup = (flags & 256) != 0;
  final restricted = (flags & 512) != 0;
  final signatures = (flags & 2048) != 0;
  final min = (flags & 4096) != 0;
  final scam = (flags & 524288) != 0;
  final hasLink = (flags & 1048576) != 0;
  final hasGeo = (flags & 2097152) != 0;
  final slowmodeEnabled = (flags & 4194304) != 0;
  final callActive = (flags & 8388608) != 0;
  final callNotEmpty = (flags & 16777216) != 0;
  final fake = (flags & 33554432) != 0;
  final gigagroup = (flags & 67108864) != 0;
  final noforwards = (flags & 134217728) != 0;
  final joinToSend = (flags & 268435456) != 0;
  final joinRequest = (flags & 536870912) != 0;
  final forum = (flags & 1073741824) != 0;
  final flags2 = reader.readInt32();
  final storiesHidden = (flags2 & 2) != 0;
  final storiesHiddenMin = (flags2 & 4) != 0;
  final storiesUnavailable = (flags2 & 8) != 0;
  final id = reader.readInt64();
  final hasAccessHashField = (flags & 8192) != 0;
  final accessHash = hasAccessHashField ? reader.readInt64() : null;
  final title = reader.readString();
  final hasUsernameField = (flags & 64) != 0;
  final username = hasUsernameField ? reader.readString() : null;
  final photo = reader.readObject() as ChatPhotoBase;
  final date = reader.readDateTime();
  final hasRestrictionReasonField = (flags & 512) != 0;
  final restrictionReason = hasRestrictionReasonField
      ? reader.readVectorObject<RestrictionReasonBase>()
      : null;
  final hasAdminRightsField = (flags & 16384) != 0;
  final adminRights =
      hasAdminRightsField ? reader.readObject() as ChatAdminRightsBase : null;
  final hasBannedRightsField = (flags & 32768) != 0;
  final bannedRights = hasBannedRightsField
      ? reader.readObject() as ChatBannedRightsBase
      : null;
  final hasDefaultBannedRightsField = (flags & 262144) != 0;
  final defaultBannedRights = hasDefaultBannedRightsField
      ? reader.readObject() as ChatBannedRightsBase
      : null;
  final hasParticipantsCountField = (flags & 131072) != 0;
  final participantsCount =
      hasParticipantsCountField ? reader.readInt32() : null;
  final hasUsernamesField = (flags2 & 1) != 0;
  final usernames =
      hasUsernamesField ? reader.readVectorObject<UsernameBase>() : null;
  final hasStoriesMaxIdField = (flags2 & 16) != 0;
  final storiesMaxId = hasStoriesMaxIdField ? reader.readInt32() : null;
  final hasColorField = (flags2 & 128) != 0;
  final color = hasColorField ? reader.readObject() as PeerColorBase : null;
  final hasProfileColorField = (flags2 & 256) != 0;
  final profileColor =
      hasProfileColorField ? reader.readObject() as PeerColorBase : null;
  final hasEmojiStatusField = (flags2 & 512) != 0;
  final emojiStatus =
      hasEmojiStatusField ? reader.readObject() as EmojiStatusBase : null;
  final hasLevelField = (flags2 & 1024) != 0;
  final level = hasLevelField ? reader.readInt32() : null;

  // Construct [Channel] object.
  final returnValue = Channel(
    creator: creator,
    left: left,
    broadcast: broadcast,
    verified: verified,
    megagroup: megagroup,
    restricted: restricted,
    signatures: signatures,
    min: min,
    scam: scam,
    hasLink: hasLink,
    hasGeo: hasGeo,
    slowmodeEnabled: slowmodeEnabled,
    callActive: callActive,
    callNotEmpty: callNotEmpty,
    fake: fake,
    gigagroup: gigagroup,
    noforwards: noforwards,
    joinToSend: joinToSend,
    joinRequest: joinRequest,
    forum: forum,
    storiesHidden: storiesHidden,
    storiesHiddenMin: storiesHiddenMin,
    storiesUnavailable: storiesUnavailable,
    id: id,
    accessHash: accessHash,
    title: title,
    username: username,
    photo: photo,
    date: date,
    restrictionReason: restrictionReason,
    adminRights: adminRights,
    bannedRights: bannedRights,
    defaultBannedRights: defaultBannedRights,
    participantsCount: participantsCount,
    usernames: usernames,
    storiesMaxId: storiesMaxId,
    color: color,
    profileColor: profileColor,
    emojiStatus: emojiStatus,
    level: level,
  );

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