import 'package:flutter/material.dart'; import 'package:matrix/matrix.dart'; class StoryThemeData { final Color? color1; final Color? color2; final BoxFit fit; final int alignmentX; final int alignmentY; static const String contentKey = 'msc3588.stories.design'; const StoryThemeData({ this.color1, this.color2, this.fit = BoxFit.contain, this.alignmentX = 0, this.alignmentY = 0, }); factory StoryThemeData.fromJson(Map<String, dynamic> json) { final color1Int = json.tryGet<int>('color1'); final color2Int = json.tryGet<int>('color2'); final color1 = color1Int == null ? null : Color(color1Int); final color2 = color2Int == null ? null : Color(color2Int); return StoryThemeData( color1: color1, color2: color2, fit: json.tryGet<String>('fit') == 'cover' ? BoxFit.cover : BoxFit.contain, alignmentX: json.tryGet<int>('alignment_x') ?? 0, alignmentY: json.tryGet<int>('alignment_y') ?? 0, ); } Map<String, dynamic> toJson() => { if (color1 != null) 'color1': color1?.value, if (color2 != null) 'color2': color2?.value, 'fit': fit.name, 'alignment_x': alignmentX, 'alignment_y': alignmentY, }; }