ThemeSettings.deserialize constructor

ThemeSettings.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory ThemeSettings.deserialize(BinaryReader reader) {
  // Read [ThemeSettings] 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 WallPaperBase : null;

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

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