Made GradeAverage persistent
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
import '../gradeAverages/gradeAveragesSettings.dart';
|
||||
|
||||
part 'settings.g.dart';
|
||||
|
||||
@JsonSerializable(explicitToJson: true)
|
||||
@ -12,7 +14,13 @@ class Settings {
|
||||
ThemeMode appTheme;
|
||||
bool devToolsEnabled;
|
||||
|
||||
Settings(this.appTheme, this.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);
|
@ -7,11 +7,14 @@ part of 'settings.dart';
|
||||
// **************************************************************************
|
||||
|
||||
Settings _$SettingsFromJson(Map<String, dynamic> json) => Settings(
|
||||
Settings._themeFromJson(json['appTheme'] as String),
|
||||
json['devToolsEnabled'] as bool,
|
||||
appTheme: Settings._themeFromJson(json['appTheme'] as String),
|
||||
devToolsEnabled: json['devToolsEnabled'] as bool,
|
||||
gradeAveragesSettings: GradeAveragesSettings.fromJson(
|
||||
json['gradeAveragesSettings'] as Map<String, dynamic>),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$SettingsToJson(Settings instance) => <String, dynamic>{
|
||||
'appTheme': Settings._themeToJson(instance.appTheme),
|
||||
'devToolsEnabled': instance.devToolsEnabled,
|
||||
'gradeAveragesSettings': instance.gradeAveragesSettings.toJson(),
|
||||
};
|
@ -1,6 +1,7 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:developer';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:marianum_mobile/storage/gradeAverages/gradeAveragesSettings.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'settings.dart';
|
||||
@ -42,8 +43,12 @@ class SettingsProvider extends ChangeNotifier {
|
||||
|
||||
Settings _defaults() {
|
||||
return Settings(
|
||||
ThemeMode.system,
|
||||
false,
|
||||
appTheme: ThemeMode.system,
|
||||
devToolsEnabled: false,
|
||||
gradeAveragesSettings: GradeAveragesSettings(
|
||||
useGradeSystem: true,
|
||||
inputs: []
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
15
lib/storage/gradeAverages/gradeAveragesSettings.dart
Normal file
15
lib/storage/gradeAverages/gradeAveragesSettings.dart
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'gradeAveragesSettings.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class GradeAveragesSettings {
|
||||
bool useGradeSystem;
|
||||
List<int> inputs;
|
||||
|
||||
GradeAveragesSettings({required this.useGradeSystem, required this.inputs});
|
||||
|
||||
factory GradeAveragesSettings.fromJson(Map<String, dynamic> json) => _$GradeAveragesSettingsFromJson(json);
|
||||
Map<String, dynamic> toJson() => _$GradeAveragesSettingsToJson(this);
|
||||
}
|
21
lib/storage/gradeAverages/gradeAveragesSettings.g.dart
Normal file
21
lib/storage/gradeAverages/gradeAveragesSettings.g.dart
Normal file
@ -0,0 +1,21 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'gradeAveragesSettings.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
GradeAveragesSettings _$GradeAveragesSettingsFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
GradeAveragesSettings(
|
||||
useGradeSystem: json['useGradeSystem'] as bool,
|
||||
inputs: (json['inputs'] as List<dynamic>).map((e) => e as int).toList(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$GradeAveragesSettingsToJson(
|
||||
GradeAveragesSettings instance) =>
|
||||
<String, dynamic>{
|
||||
'useGradeSystem': instance.useGradeSystem,
|
||||
'inputs': instance.inputs,
|
||||
};
|
Reference in New Issue
Block a user