Konsistenzfehler im JSON Vermeiden #125

Merged
flixcoo merged 12 commits from enhancement/70-konsistenzfehler-im-json-vermeiden into development 2026-01-07 11:27:44 +00:00
3 changed files with 143 additions and 100 deletions
Showing only changes of commit 2fea3597fe - Show all commits

View File

@@ -47,7 +47,17 @@ class _ChooseGameViewState extends State<ChooseGameView> {
), ),
centerTitle: true, centerTitle: true,
), ),
body: Column( body: PopScope(
// This fixes that the Android Back Gesture didn't return the
// selectedGameIndex and therefore the selected Game wasn't saved
canPop: false,
onPopInvokedWithResult: (bool didPop, Object? result) {
if (didPop) {
return;
}
Navigator.of(context).pop(selectedGameIndex);
},
child: Column(
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.symmetric(horizontal: 10), padding: const EdgeInsets.symmetric(horizontal: 10),
@@ -81,6 +91,7 @@ class _ChooseGameViewState extends State<ChooseGameView> {
), ),
], ],
), ),
),
); );
} }
} }

View File

@@ -57,7 +57,23 @@ class _ChooseGroupViewState extends State<ChooseGroupView> {
), ),
centerTitle: true, centerTitle: true,
), ),
body: Column( body: PopScope(
// This fixes that the Android Back Gesture didn't return the
// selectedGroupId and therefore the selected Group wasn't saved
canPop: false,
onPopInvokedWithResult: (bool didPop, Object? result) {
if (didPop) {
return;
}
Navigator.of(context).pop(
selectedGroupId == ''
? null
: widget.groups.firstWhere(
(group) => group.id == selectedGroupId,
),
);
},
child: Column(
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.symmetric(horizontal: 10), padding: const EdgeInsets.symmetric(horizontal: 10),
@@ -113,6 +129,7 @@ class _ChooseGroupViewState extends State<ChooseGroupView> {
), ),
], ],
), ),
),
); );
} }

View File

@@ -52,7 +52,21 @@ class _ChooseRulesetViewState extends State<ChooseRulesetView> {
), ),
centerTitle: true, centerTitle: true,
), ),
body: ListView.builder( body: PopScope(
// This fixes that the Android Back Gesture didn't return the
// selectedRulesetIndex and therefore the selected Ruleset wasn't saved
canPop: false,
onPopInvokedWithResult: (bool didPop, Object? result) {
if (didPop) {
return;
}
Navigator.of(context).pop(
selectedRulesetIndex == -1
? null
: widget.rulesets[selectedRulesetIndex].$1,
);
},
child: ListView.builder(
padding: const EdgeInsets.only(bottom: 85), padding: const EdgeInsets.only(bottom: 85),
itemCount: widget.rulesets.length, itemCount: widget.rulesets.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
@@ -73,6 +87,7 @@ class _ChooseRulesetViewState extends State<ChooseRulesetView> {
}, },
), ),
), ),
),
); );
} }
} }