Added initial ask for gradesystem in gradeaverage

This commit is contained in:
2023-09-18 21:42:17 +02:00
parent 2c655e56ec
commit 22ab21ab3d
5 changed files with 44 additions and 10 deletions

View File

@ -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
void initState() {
super.initState();
grades = settings.val().gradeAveragesSettings.inputs;
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
@ -82,12 +115,6 @@ class _GradeAverageState extends State<GradeAverage> {
)).toList(),
onSelected: (e) {
void switchSystem() => setState(() {
grades.clear();
gradeSystem = e;
settings.val(write: true).gradeAveragesSettings.useGradeSystem = e;
_persistGrades();
});
if(grades.isNotEmpty) {
showDialog(
@ -96,11 +123,11 @@ class _GradeAverageState extends State<GradeAverage> {
title: "Notensystem wechseln",
content: "Beim wechsel des Notensystems werden alle Einträge zurückgesetzt.",
confirmButton: "Fortfahren",
onConfirm: () => switchSystem(),
onConfirm: () => switchSystem(e),
),
);
} else {
switchSystem();
switchSystem(e);
}
},
),