Added initial ask for gradesystem in gradeaverage
This commit is contained in:
parent
2c655e56ec
commit
22ab21ab3d
@ -27,6 +27,8 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
void reset() async {
|
void reset() async {
|
||||||
_storage = await SharedPreferences.getInstance();
|
_storage = await SharedPreferences.getInstance();
|
||||||
_storage.remove(_fieldName);
|
_storage.remove(_fieldName);
|
||||||
|
_settings = DefaultSettings.get();
|
||||||
|
await update();
|
||||||
|
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
@ -51,7 +53,7 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
void update() async {
|
Future<void> update() async {
|
||||||
await _storage.setString(_fieldName, jsonEncode(_settings.toJson()));
|
await _storage.setString(_fieldName, jsonEncode(_settings.toJson()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,9 +6,10 @@ part 'gradeAveragesSettings.g.dart';
|
|||||||
@JsonSerializable()
|
@JsonSerializable()
|
||||||
class GradeAveragesSettings {
|
class GradeAveragesSettings {
|
||||||
bool useGradeSystem;
|
bool useGradeSystem;
|
||||||
|
bool askedForPreferredGradeSystem;
|
||||||
List<int> inputs;
|
List<int> inputs;
|
||||||
|
|
||||||
GradeAveragesSettings({required this.useGradeSystem, required this.inputs});
|
GradeAveragesSettings({required this.useGradeSystem, required this.askedForPreferredGradeSystem, required this.inputs});
|
||||||
|
|
||||||
factory GradeAveragesSettings.fromJson(Map<String, dynamic> json) => _$GradeAveragesSettingsFromJson(json);
|
factory GradeAveragesSettings.fromJson(Map<String, dynamic> json) => _$GradeAveragesSettingsFromJson(json);
|
||||||
Map<String, dynamic> toJson() => _$GradeAveragesSettingsToJson(this);
|
Map<String, dynamic> toJson() => _$GradeAveragesSettingsToJson(this);
|
||||||
|
@ -10,6 +10,8 @@ GradeAveragesSettings _$GradeAveragesSettingsFromJson(
|
|||||||
Map<String, dynamic> json) =>
|
Map<String, dynamic> json) =>
|
||||||
GradeAveragesSettings(
|
GradeAveragesSettings(
|
||||||
useGradeSystem: json['useGradeSystem'] as bool,
|
useGradeSystem: json['useGradeSystem'] as bool,
|
||||||
|
askedForPreferredGradeSystem:
|
||||||
|
json['askedForPreferredGradeSystem'] as bool,
|
||||||
inputs: (json['inputs'] as List<dynamic>).map((e) => e as int).toList(),
|
inputs: (json['inputs'] as List<dynamic>).map((e) => e as int).toList(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -17,5 +19,6 @@ Map<String, dynamic> _$GradeAveragesSettingsToJson(
|
|||||||
GradeAveragesSettings instance) =>
|
GradeAveragesSettings instance) =>
|
||||||
<String, dynamic>{
|
<String, dynamic>{
|
||||||
'useGradeSystem': instance.useGradeSystem,
|
'useGradeSystem': instance.useGradeSystem,
|
||||||
|
'askedForPreferredGradeSystem': instance.askedForPreferredGradeSystem,
|
||||||
'inputs': instance.inputs,
|
'inputs': instance.inputs,
|
||||||
};
|
};
|
||||||
|
@ -30,12 +30,45 @@ class _GradeAverageState extends State<GradeAverage> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void switchSystem(bool e) => setState(() {
|
||||||
|
grades.clear();
|
||||||
|
gradeSystem = e;
|
||||||
|
settings.val(write: true).gradeAveragesSettings.useGradeSystem = e;
|
||||||
|
_persistGrades();
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
grades = settings.val().gradeAveragesSettings.inputs;
|
grades = settings.val().gradeAveragesSettings.inputs;
|
||||||
gradeSystem = settings.val().gradeAveragesSettings.useGradeSystem;
|
gradeSystem = settings.val().gradeAveragesSettings.useGradeSystem;
|
||||||
|
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
||||||
|
if(!settings.val().gradeAveragesSettings.askedForPreferredGradeSystem) {
|
||||||
|
settings.val(write: true).gradeAveragesSettings.askedForPreferredGradeSystem = true;
|
||||||
|
showDialog(context: context, builder: (context) => AlertDialog(
|
||||||
|
title: const Text("Notensystem"),
|
||||||
|
content: const Text("Wähle dein bevorzugtes Schulnotensystem"),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () {
|
||||||
|
switchSystem(true);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
child: const Text("Realschule"),
|
||||||
|
),
|
||||||
|
TextButton(
|
||||||
|
onPressed: () {
|
||||||
|
switchSystem(false);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
child: const Text("Oberstufe"),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -82,12 +115,6 @@ class _GradeAverageState extends State<GradeAverage> {
|
|||||||
)).toList(),
|
)).toList(),
|
||||||
|
|
||||||
onSelected: (e) {
|
onSelected: (e) {
|
||||||
void switchSystem() => setState(() {
|
|
||||||
grades.clear();
|
|
||||||
gradeSystem = e;
|
|
||||||
settings.val(write: true).gradeAveragesSettings.useGradeSystem = e;
|
|
||||||
_persistGrades();
|
|
||||||
});
|
|
||||||
|
|
||||||
if(grades.isNotEmpty) {
|
if(grades.isNotEmpty) {
|
||||||
showDialog(
|
showDialog(
|
||||||
@ -96,11 +123,11 @@ class _GradeAverageState extends State<GradeAverage> {
|
|||||||
title: "Notensystem wechseln",
|
title: "Notensystem wechseln",
|
||||||
content: "Beim wechsel des Notensystems werden alle Einträge zurückgesetzt.",
|
content: "Beim wechsel des Notensystems werden alle Einträge zurückgesetzt.",
|
||||||
confirmButton: "Fortfahren",
|
confirmButton: "Fortfahren",
|
||||||
onConfirm: () => switchSystem(),
|
onConfirm: () => switchSystem(e),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
switchSystem();
|
switchSystem(e);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -19,6 +19,7 @@ class DefaultSettings {
|
|||||||
devToolsEnabled: false,
|
devToolsEnabled: false,
|
||||||
gradeAveragesSettings: GradeAveragesSettings(
|
gradeAveragesSettings: GradeAveragesSettings(
|
||||||
useGradeSystem: true,
|
useGradeSystem: true,
|
||||||
|
askedForPreferredGradeSystem: false,
|
||||||
inputs: []
|
inputs: []
|
||||||
),
|
),
|
||||||
timetableSettings: TimetableSettings(
|
timetableSettings: TimetableSettings(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user