SponsoredMessage.deserialize constructor

SponsoredMessage.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory SponsoredMessage.deserialize(BinaryReader reader) {
  // Read [SponsoredMessage] fields.
  final flags = reader.readInt32();
  final recommended = (flags & 32) != 0;
  final canReport = (flags & 4096) != 0;
  final randomId = reader.readBytes();
  final url = reader.readString();
  final title = reader.readString();
  final message = reader.readString();
  final hasEntitiesField = (flags & 2) != 0;
  final entities =
      hasEntitiesField ? reader.readVectorObject<MessageEntityBase>() : null;
  final hasPhotoField = (flags & 64) != 0;
  final photo = hasPhotoField ? reader.readObject() as PhotoBase : null;
  final hasMediaField = (flags & 16384) != 0;
  final media =
      hasMediaField ? reader.readObject() as MessageMediaBase : null;
  final hasColorField = (flags & 8192) != 0;
  final color = hasColorField ? reader.readObject() as PeerColorBase : null;
  final buttonText = reader.readString();
  final hasSponsorInfoField = (flags & 128) != 0;
  final sponsorInfo = hasSponsorInfoField ? reader.readString() : null;
  final hasAdditionalInfoField = (flags & 256) != 0;
  final additionalInfo = hasAdditionalInfoField ? reader.readString() : null;
  final hasMinDisplayDurationField = (flags & 32768) != 0;
  final minDisplayDuration =
      hasMinDisplayDurationField ? reader.readInt32() : null;
  final hasMaxDisplayDurationField = (flags & 32768) != 0;
  final maxDisplayDuration =
      hasMaxDisplayDurationField ? reader.readInt32() : null;

  // Construct [SponsoredMessage] object.
  final returnValue = SponsoredMessage(
    recommended: recommended,
    canReport: canReport,
    randomId: randomId,
    url: url,
    title: title,
    message: message,
    entities: entities?.items,
    photo: photo,
    media: media,
    color: color,
    buttonText: buttonText,
    sponsorInfo: sponsorInfo,
    additionalInfo: additionalInfo,
    minDisplayDuration: minDisplayDuration,
    maxDisplayDuration: maxDisplayDuration,
  );

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