InputThemeSettings.deserialize constructor

InputThemeSettings.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory InputThemeSettings.deserialize(BinaryReader reader) {
  // Read [InputThemeSettings] fields.
  final flags = reader.readInt32();
  final messageColorsAnimated = (flags & 4) != 0;
  final baseTheme = reader.readObject() as BaseThemeBase;
  final accentColor = reader.readInt32();
  final hasOutboxAccentColorField = (flags & 8) != 0;
  final outboxAccentColor =
      hasOutboxAccentColorField ? reader.readInt32() : null;
  final hasMessageColorsField = (flags & 1) != 0;
  final messageColors =
      hasMessageColorsField ? reader.readVectorInt32() : null;
  final hasWallpaperField = (flags & 2) != 0;
  final wallpaper =
      hasWallpaperField ? reader.readObject() as InputWallPaperBase : null;
  final hasWallpaperSettingsField = (flags & 2) != 0;
  final wallpaperSettings = hasWallpaperSettingsField
      ? reader.readObject() as WallPaperSettingsBase
      : null;

  // Construct [InputThemeSettings] object.
  final returnValue = InputThemeSettings(
    messageColorsAnimated: messageColorsAnimated,
    baseTheme: baseTheme,
    accentColor: accentColor,
    outboxAccentColor: outboxAccentColor,
    messageColors: messageColors,
    wallpaper: wallpaper,
    wallpaperSettings: wallpaperSettings,
  );

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