Message.deserialize constructor
Message.deserialize(
- BinaryReader reader
Deserialize.
Implementation
factory Message.deserialize(BinaryReader reader) {
// Read [Message] fields.
final flags = reader.readInt32();
final out = (flags & 2) != 0;
final mentioned = (flags & 16) != 0;
final mediaUnread = (flags & 32) != 0;
final silent = (flags & 8192) != 0;
final post = (flags & 16384) != 0;
final fromScheduled = (flags & 262144) != 0;
final legacy = (flags & 524288) != 0;
final editHide = (flags & 2097152) != 0;
final pinned = (flags & 16777216) != 0;
final noforwards = (flags & 67108864) != 0;
final invertMedia = (flags & 134217728) != 0;
final flags2 = reader.readInt32();
final offline = (flags2 & 2) != 0;
final videoProcessingPending = (flags2 & 16) != 0;
final paidSuggestedPostStars = (flags2 & 256) != 0;
final paidSuggestedPostTon = (flags2 & 512) != 0;
final id = reader.readInt32();
final hasFromIdField = (flags & 256) != 0;
final fromId = hasFromIdField ? reader.readObject() as PeerBase : null;
final hasFromBoostsAppliedField = (flags & 536870912) != 0;
final fromBoostsApplied =
hasFromBoostsAppliedField ? reader.readInt32() : null;
final hasFromRankField = (flags2 & 4096) != 0;
final fromRank = hasFromRankField ? reader.readString() : null;
final peerId = reader.readObject() as PeerBase;
final hasSavedPeerIdField = (flags & 268435456) != 0;
final savedPeerId =
hasSavedPeerIdField ? reader.readObject() as PeerBase : null;
final hasFwdFromField = (flags & 4) != 0;
final fwdFrom =
hasFwdFromField ? reader.readObject() as MessageFwdHeaderBase : null;
final hasViaBotIdField = (flags & 2048) != 0;
final viaBotId = hasViaBotIdField ? reader.readInt64() : null;
final hasViaBusinessBotIdField = (flags2 & 1) != 0;
final viaBusinessBotId =
hasViaBusinessBotIdField ? reader.readInt64() : null;
final hasGuestchatViaFromField = (flags2 & 524288) != 0;
final guestchatViaFrom =
hasGuestchatViaFromField ? reader.readObject() as PeerBase : null;
final hasReplyToField = (flags & 8) != 0;
final replyTo =
hasReplyToField ? reader.readObject() as MessageReplyHeaderBase : null;
final date = reader.readDateTime();
final message = reader.readString();
final hasMediaField = (flags & 512) != 0;
final media =
hasMediaField ? reader.readObject() as MessageMediaBase : null;
final hasReplyMarkupField = (flags & 64) != 0;
final replyMarkup =
hasReplyMarkupField ? reader.readObject() as ReplyMarkupBase : null;
final hasEntitiesField = (flags & 128) != 0;
final entities =
hasEntitiesField ? reader.readVectorObject<MessageEntityBase>() : null;
final hasViewsField = (flags & 1024) != 0;
final views = hasViewsField ? reader.readInt32() : null;
final hasForwardsField = (flags & 1024) != 0;
final forwards = hasForwardsField ? reader.readInt32() : null;
final hasRepliesField = (flags & 8388608) != 0;
final replies =
hasRepliesField ? reader.readObject() as MessageRepliesBase : null;
final hasEditDateField = (flags & 32768) != 0;
final editDate = hasEditDateField ? reader.readDateTime() : null;
final hasPostAuthorField = (flags & 65536) != 0;
final postAuthor = hasPostAuthorField ? reader.readString() : null;
final hasGroupedIdField = (flags & 131072) != 0;
final groupedId = hasGroupedIdField ? reader.readInt64() : null;
final hasReactionsField = (flags & 1048576) != 0;
final reactions =
hasReactionsField ? reader.readObject() as MessageReactionsBase : null;
final hasRestrictionReasonField = (flags & 4194304) != 0;
final restrictionReason = hasRestrictionReasonField
? reader.readVectorObject<RestrictionReasonBase>()
: null;
final hasTtlPeriodField = (flags & 33554432) != 0;
final ttlPeriod = hasTtlPeriodField ? reader.readInt32() : null;
final hasQuickReplyShortcutIdField = (flags & 1073741824) != 0;
final quickReplyShortcutId =
hasQuickReplyShortcutIdField ? reader.readInt32() : null;
final hasEffectField = (flags2 & 4) != 0;
final effect = hasEffectField ? reader.readInt64() : null;
final hasFactcheckField = (flags2 & 8) != 0;
final factcheck =
hasFactcheckField ? reader.readObject() as FactCheckBase : null;
final hasReportDeliveryUntilDateField = (flags2 & 32) != 0;
final reportDeliveryUntilDate =
hasReportDeliveryUntilDateField ? reader.readDateTime() : null;
final hasPaidMessageStarsField = (flags2 & 64) != 0;
final paidMessageStars =
hasPaidMessageStarsField ? reader.readInt64() : null;
final hasSuggestedPostField = (flags2 & 128) != 0;
final suggestedPost =
hasSuggestedPostField ? reader.readObject() as SuggestedPostBase : null;
final hasScheduleRepeatPeriodField = (flags2 & 1024) != 0;
final scheduleRepeatPeriod =
hasScheduleRepeatPeriodField ? reader.readInt32() : null;
final hasSummaryFromLanguageField = (flags2 & 2048) != 0;
final summaryFromLanguage =
hasSummaryFromLanguageField ? reader.readString() : null;
final hasRichMessageField = (flags2 & 8192) != 0;
final richMessage =
hasRichMessageField ? reader.readObject() as RichMessageBase : null;
// Construct [Message] object.
final returnValue = Message(
out: out,
mentioned: mentioned,
mediaUnread: mediaUnread,
silent: silent,
post: post,
fromScheduled: fromScheduled,
legacy: legacy,
editHide: editHide,
pinned: pinned,
noforwards: noforwards,
invertMedia: invertMedia,
offline: offline,
videoProcessingPending: videoProcessingPending,
paidSuggestedPostStars: paidSuggestedPostStars,
paidSuggestedPostTon: paidSuggestedPostTon,
id: id,
fromId: fromId,
fromBoostsApplied: fromBoostsApplied,
fromRank: fromRank,
peerId: peerId,
savedPeerId: savedPeerId,
fwdFrom: fwdFrom,
viaBotId: viaBotId,
viaBusinessBotId: viaBusinessBotId,
guestchatViaFrom: guestchatViaFrom,
replyTo: replyTo,
date: date,
message: message,
media: media,
replyMarkup: replyMarkup,
entities: entities?.items,
views: views,
forwards: forwards,
replies: replies,
editDate: editDate,
postAuthor: postAuthor,
groupedId: groupedId,
reactions: reactions,
restrictionReason: restrictionReason?.items,
ttlPeriod: ttlPeriod,
quickReplyShortcutId: quickReplyShortcutId,
effect: effect,
factcheck: factcheck,
reportDeliveryUntilDate: reportDeliveryUntilDate,
paidMessageStars: paidMessageStars,
suggestedPost: suggestedPost,
scheduleRepeatPeriod: scheduleRepeatPeriod,
summaryFromLanguage: summaryFromLanguage,
richMessage: richMessage,
);
// Now return the deserialized [Message].
return returnValue;
}