From 6b2fb18ec095b3feeffe344f7ecdd9caabf4faa1 Mon Sep 17 00:00:00 2001 From: mathiskirchner Date: Mon, 17 Nov 2025 20:20:56 +0100 Subject: [PATCH] fixed groups not getting added & added feature to remove player from all players when selected --- .../create_group/create_group_view.dart | 67 +++++++++---------- 1 file changed, 30 insertions(+), 37 deletions(-) diff --git a/lib/presentation/views/main_menu/create_group/create_group_view.dart b/lib/presentation/views/main_menu/create_group/create_group_view.dart index 631f3ae..b27fb6a 100644 --- a/lib/presentation/views/main_menu/create_group/create_group_view.dart +++ b/lib/presentation/views/main_menu/create_group/create_group_view.dart @@ -35,6 +35,7 @@ class _CreateGroupViewState extends State { _allPlayersFuture = db.playerDao.getAllPlayers(); _allPlayersFuture.then((loadedPlayers) { setState(() { + loadedPlayers.sort((a, b) => a.name.compareTo(b.name)); allPlayers = loadedPlayers; suggestedPlayers = loadedPlayers; }); @@ -171,7 +172,11 @@ class _CreateGroupViewState extends State { child: const Icon(Icons.close, size: 20), onTap: () { setState(() { + suggestedPlayers.add(selectedPlayer); selectedPlayers.remove(selectedPlayer); + suggestedPlayers.sort( + (a, b) => a.name.compareTo(b.name), + ); }); }, ), @@ -295,6 +300,15 @@ class _CreateGroupViewState extends State { selectedPlayers.add( suggestedPlayers[index], ); + selectedPlayers.sort( + (a, b) => + a.name.compareTo( + b.name, + ), + ); + suggestedPlayers.remove( + suggestedPlayers[index], + ); } }); }, @@ -321,39 +335,34 @@ class _CreateGroupViewState extends State { onPressed: (_groupNameController.text.isEmpty || selectedPlayers.isEmpty) ? null - : () { + : () async { String id = "ID_" + _groupNameController.text; String name = _groupNameController.text; List members = selectedPlayers; - db.groupDao.addGroup( + bool success = await db.groupDao.addGroup( group: Group(id: id, name: name, members: members), ); - print(name); - print(id); - for (int i = 0; i < members.length; i++) { - print(members[i].name); - print(members[i].id); - } - if (true) { - //eigentlich wenn create group erfolgreich + if (success) { _groupNameController.clear(); _searchBarController.clear(); selectedPlayers.clear(); + Navigator.pop(context); + } else { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + backgroundColor: CustomTheme.boxColor, + content: Center( + child: Text( + "Error while creating group, please try again", + style: TextStyle(color: Colors.white), + ), + ), + ), + ); } setState(() {}); }, ), - SizedBox(height: 10), - FullWidthButton( - text: "Cancel", - infillColor: CustomTheme.boxColor, - borderColor: CustomTheme.primaryColor, - disabledInfillColor: CustomTheme.boxColor, - sizeRelativeToWidth: 0.95, - onPressed: () { - Navigator.pop(context); - }, - ), SizedBox(height: 20), ], ), @@ -363,22 +372,6 @@ class _CreateGroupViewState extends State { Future addSamplePlayers(BuildContext context) async { final db = Provider.of(context, listen: false); - /*await db.groupDao.addGroup( - group: Group( - id: "dg1", - name: "Debug Gruppe 1", - members: [ - Player(id: '1', name: 'Spieler 1'), - Player(id: '2', name: 'Spieler 2'), - Player(id: '3', name: 'Spieler 3'), - ], - ), - ); - final group = await db.groupDao.getGroupById(groupId: "dg1"); - print(group.name); - print(group.id); - print(group.members.length); - */ final playerCount = await db.playerDao.getPlayerCount(); if (playerCount == 0) { for (int i = 1; i <= 10; i++) {