Merge pull request 'ChooseViews Speichern nicht bei Zurück gehen' (#127) from bug/126-ChooseViews-Speichern-nicht-bei-Zurück-gehen into development

Reviewed-on: #127
Reviewed-by: Felix Kirchner <felix.kirchner.fk@gmail.com>
This commit was merged in pull request #127.
This commit is contained in:
2026-01-03 12:53:51 +00:00
3 changed files with 143 additions and 100 deletions

View File

@@ -47,7 +47,17 @@ class _ChooseGameViewState extends State<ChooseGameView> {
),
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: [
Padding(
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,
),
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: [
Padding(
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,
),
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),
itemCount: widget.rulesets.length,
itemBuilder: (BuildContext context, int index) {
@@ -73,6 +87,7 @@ class _ChooseRulesetViewState extends State<ChooseRulesetView> {
},
),
),
),
);
}
}