GameResultView erstellen #62

Merged
flixcoo merged 31 commits from feature/48-game-result-view-erstellen into development 2025-12-06 14:06:29 +00:00
Showing only changes of commit 1ed6290628 - Show all commits

View File

@@ -82,10 +82,11 @@ class _GameResultViewState extends State<GameResultView> {
Expanded( Expanded(
child: RadioGroup<Player>( child: RadioGroup<Player>(
groupValue: _selectedPlayer, groupValue: _selectedPlayer,
sneeex marked this conversation as resolved Outdated

Macht das Sinn überhaupt zu implementieren? Gibt es Fälle in denen ein Spiel keine Spieler hat?

Macht das Sinn überhaupt zu implementieren? Gibt es Fälle in denen ein Spiel keine Spieler hat?

Eigentlich nicht, soll ich's weglassen dann?

Eigentlich nicht, soll ich's weglassen dann?
onChanged: (Player? value) { onChanged: (Player? value) async {
setState(() { setState(() {
_selectedPlayer = value; _selectedPlayer = value;
}); });
await _handleWinnerSaving();
}, },
child: ListView.builder( child: ListView.builder(
itemCount: allPlayers.length, itemCount: allPlayers.length,
@@ -95,22 +96,15 @@ class _GameResultViewState extends State<GameResultView> {
value: allPlayers[index], value: allPlayers[index],
onContainerTap: (value) async { onContainerTap: (value) async {
setState(() { setState(() {
// Check if the already selected player is the same as the newly tapped player.
if (_selectedPlayer == value) { if (_selectedPlayer == value) {
// If yes deselected the player by setting it to null.
_selectedPlayer = null; _selectedPlayer = null;
} else { } else
_selectedPlayer = value; // If no assign the newly tapped player to the selected player.
} (_selectedPlayer = value);
}); });
if (_selectedPlayer == null) { await _handleWinnerSaving();
await db.gameDao.removeWinner(
gameId: widget.game.id,
);
} else {
await db.gameDao.setWinner(
gameId: widget.game.id,
winnerId: _selectedPlayer!.id,
);
}
}, },
); );
}, },
@@ -127,6 +121,17 @@ class _GameResultViewState extends State<GameResultView> {
); );
} }
Future<void> _handleWinnerSaving() async {
if (_selectedPlayer == null) {
await db.gameDao.removeWinner(gameId: widget.game.id);
} else {
await db.gameDao.setWinner(
gameId: widget.game.id,
sneeex marked this conversation as resolved Outdated

Hier ist auch kein Punkt :)
Würde ich aber auch so lassen höhö

Hier ist auch kein Punkt :) Würde ich aber auch so lassen höhö
winnerId: _selectedPlayer!.id,
);
}
}
List<Player> getAllPlayers(Game game) { List<Player> getAllPlayers(Game game) {
if (game.group == null && game.players != null) { if (game.group == null && game.players != null) {
return [...game.players!]; return [...game.players!];