import 'package:flutter/material.dart'; import 'package:json_annotation/json_annotation.dart'; import '../gradeAverages/gradeAveragesSettings.dart'; part 'settings.g.dart'; @JsonSerializable(explicitToJson: true) class Settings { @JsonKey( toJson: _themeToJson, fromJson: _themeFromJson, ) ThemeMode appTheme; bool devToolsEnabled; GradeAveragesSettings gradeAveragesSettings; Settings({ required this.appTheme, required this.devToolsEnabled, required this.gradeAveragesSettings }); static String _themeToJson(ThemeMode m) => m.name; static ThemeMode _themeFromJson(String m) => ThemeMode.values.firstWhere((element) => element.name == m); factory Settings.fromJson(Map<String, dynamic> json) => _$SettingsFromJson(json); Map<String, dynamic> toJson() => _$SettingsToJson(this); }