StoryItem.deserialize constructor

StoryItem.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory StoryItem.deserialize(BinaryReader reader) {
  // Read [StoryItem] fields.
  final flags = reader.readInt32();
  final pinned = (flags & 32) != 0;
  final public = (flags & 128) != 0;
  final closeFriends = (flags & 256) != 0;
  final min = (flags & 512) != 0;
  final noforwards = (flags & 1024) != 0;
  final edited = (flags & 2048) != 0;
  final contacts = (flags & 4096) != 0;
  final selectedContacts = (flags & 8192) != 0;
  final out = (flags & 65536) != 0;
  final id = reader.readInt32();
  final date = reader.readDateTime();
  final hasFwdFromField = (flags & 131072) != 0;
  final fwdFrom =
      hasFwdFromField ? reader.readObject() as StoryFwdHeaderBase : null;
  final expireDate = reader.readDateTime();
  final hasCaptionField = (flags & 1) != 0;
  final caption = hasCaptionField ? reader.readString() : null;
  final hasEntitiesField = (flags & 2) != 0;
  final entities =
      hasEntitiesField ? reader.readVectorObject<MessageEntityBase>() : null;
  final media = reader.readObject() as MessageMediaBase;
  final hasMediaAreasField = (flags & 16384) != 0;
  final mediaAreas =
      hasMediaAreasField ? reader.readVectorObject<MediaAreaBase>() : null;
  final hasPrivacyField = (flags & 4) != 0;
  final privacy =
      hasPrivacyField ? reader.readVectorObject<PrivacyRuleBase>() : null;
  final hasViewsField = (flags & 8) != 0;
  final views = hasViewsField ? reader.readObject() as StoryViewsBase : null;
  final hasSentReactionField = (flags & 32768) != 0;
  final sentReaction =
      hasSentReactionField ? reader.readObject() as ReactionBase : null;

  // Construct [StoryItem] object.
  final returnValue = StoryItem(
    pinned: pinned,
    public: public,
    closeFriends: closeFriends,
    min: min,
    noforwards: noforwards,
    edited: edited,
    contacts: contacts,
    selectedContacts: selectedContacts,
    out: out,
    id: id,
    date: date,
    fwdFrom: fwdFrom,
    expireDate: expireDate,
    caption: caption,
    entities: entities,
    media: media,
    mediaAreas: mediaAreas,
    privacy: privacy,
    views: views,
    sentReaction: sentReaction,
  );

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