Config.deserialize constructor

Config.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory Config.deserialize(BinaryReader reader) {
  // Read [Config] fields.
  final flags = reader.readInt32();
  final defaultP2pContacts = (flags & 8) != 0;
  final preloadFeaturedStickers = (flags & 16) != 0;
  final revokePmInbox = (flags & 64) != 0;
  final blockedMode = (flags & 256) != 0;
  final forceTryIpv6 = (flags & 16384) != 0;
  final date = reader.readDateTime();
  final expires = reader.readDateTime();
  final testMode = reader.readBool();
  final thisDc = reader.readInt32();
  final dcOptions = reader.readVectorObject<DcOptionBase>();
  final dcTxtDomainName = reader.readString();
  final chatSizeMax = reader.readInt32();
  final megagroupSizeMax = reader.readInt32();
  final forwardedCountMax = reader.readInt32();
  final onlineUpdatePeriodMs = reader.readInt32();
  final offlineBlurTimeoutMs = reader.readInt32();
  final offlineIdleTimeoutMs = reader.readInt32();
  final onlineCloudTimeoutMs = reader.readInt32();
  final notifyCloudDelayMs = reader.readInt32();
  final notifyDefaultDelayMs = reader.readInt32();
  final pushChatPeriodMs = reader.readInt32();
  final pushChatLimit = reader.readInt32();
  final editTimeLimit = reader.readInt32();
  final revokeTimeLimit = reader.readInt32();
  final revokePmTimeLimit = reader.readInt32();
  final ratingEDecay = reader.readInt32();
  final stickersRecentLimit = reader.readInt32();
  final channelsReadMediaPeriod = reader.readInt32();
  final hasTmpSessionsField = (flags & 1) != 0;
  final tmpSessions = hasTmpSessionsField ? reader.readInt32() : null;
  final callReceiveTimeoutMs = reader.readInt32();
  final callRingTimeoutMs = reader.readInt32();
  final callConnectTimeoutMs = reader.readInt32();
  final callPacketTimeoutMs = reader.readInt32();
  final meUrlPrefix = reader.readString();
  final hasAutoupdateUrlPrefixField = (flags & 128) != 0;
  final autoupdateUrlPrefix =
      hasAutoupdateUrlPrefixField ? reader.readString() : null;
  final hasGifSearchUsernameField = (flags & 512) != 0;
  final gifSearchUsername =
      hasGifSearchUsernameField ? reader.readString() : null;
  final hasVenueSearchUsernameField = (flags & 1024) != 0;
  final venueSearchUsername =
      hasVenueSearchUsernameField ? reader.readString() : null;
  final hasImgSearchUsernameField = (flags & 2048) != 0;
  final imgSearchUsername =
      hasImgSearchUsernameField ? reader.readString() : null;
  final hasStaticMapsProviderField = (flags & 4096) != 0;
  final staticMapsProvider =
      hasStaticMapsProviderField ? reader.readString() : null;
  final captionLengthMax = reader.readInt32();
  final messageLengthMax = reader.readInt32();
  final webfileDcId = reader.readInt32();
  final hasSuggestedLangCodeField = (flags & 4) != 0;
  final suggestedLangCode =
      hasSuggestedLangCodeField ? reader.readString() : null;
  final hasLangPackVersionField = (flags & 4) != 0;
  final langPackVersion = hasLangPackVersionField ? reader.readInt32() : null;
  final hasBaseLangPackVersionField = (flags & 4) != 0;
  final baseLangPackVersion =
      hasBaseLangPackVersionField ? reader.readInt32() : null;
  final hasReactionsDefaultField = (flags & 32768) != 0;
  final reactionsDefault =
      hasReactionsDefaultField ? reader.readObject() as ReactionBase : null;
  final hasAutologinTokenField = (flags & 65536) != 0;
  final autologinToken = hasAutologinTokenField ? reader.readString() : null;

  // Construct [Config] object.
  final returnValue = Config(
    defaultP2pContacts: defaultP2pContacts,
    preloadFeaturedStickers: preloadFeaturedStickers,
    revokePmInbox: revokePmInbox,
    blockedMode: blockedMode,
    forceTryIpv6: forceTryIpv6,
    date: date,
    expires: expires,
    testMode: testMode,
    thisDc: thisDc,
    dcOptions: dcOptions,
    dcTxtDomainName: dcTxtDomainName,
    chatSizeMax: chatSizeMax,
    megagroupSizeMax: megagroupSizeMax,
    forwardedCountMax: forwardedCountMax,
    onlineUpdatePeriodMs: onlineUpdatePeriodMs,
    offlineBlurTimeoutMs: offlineBlurTimeoutMs,
    offlineIdleTimeoutMs: offlineIdleTimeoutMs,
    onlineCloudTimeoutMs: onlineCloudTimeoutMs,
    notifyCloudDelayMs: notifyCloudDelayMs,
    notifyDefaultDelayMs: notifyDefaultDelayMs,
    pushChatPeriodMs: pushChatPeriodMs,
    pushChatLimit: pushChatLimit,
    editTimeLimit: editTimeLimit,
    revokeTimeLimit: revokeTimeLimit,
    revokePmTimeLimit: revokePmTimeLimit,
    ratingEDecay: ratingEDecay,
    stickersRecentLimit: stickersRecentLimit,
    channelsReadMediaPeriod: channelsReadMediaPeriod,
    tmpSessions: tmpSessions,
    callReceiveTimeoutMs: callReceiveTimeoutMs,
    callRingTimeoutMs: callRingTimeoutMs,
    callConnectTimeoutMs: callConnectTimeoutMs,
    callPacketTimeoutMs: callPacketTimeoutMs,
    meUrlPrefix: meUrlPrefix,
    autoupdateUrlPrefix: autoupdateUrlPrefix,
    gifSearchUsername: gifSearchUsername,
    venueSearchUsername: venueSearchUsername,
    imgSearchUsername: imgSearchUsername,
    staticMapsProvider: staticMapsProvider,
    captionLengthMax: captionLengthMax,
    messageLengthMax: messageLengthMax,
    webfileDcId: webfileDcId,
    suggestedLangCode: suggestedLangCode,
    langPackVersion: langPackVersion,
    baseLangPackVersion: baseLangPackVersion,
    reactionsDefault: reactionsDefault,
    autologinToken: autologinToken,
  );

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