From fcf845af4d775006088cd56c66baed12d1fc971c Mon Sep 17 00:00:00 2001 From: Felix Kirchner Date: Sun, 19 Apr 2026 23:22:14 +0200 Subject: [PATCH] Implemented name count update in player selection --- lib/data/models/player.dart | 4 ++-- .../widgets/player_selection.dart | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/data/models/player.dart b/lib/data/models/player.dart index b7de429..12d17f0 100644 --- a/lib/data/models/player.dart +++ b/lib/data/models/player.dart @@ -5,7 +5,7 @@ class Player { final String id; final DateTime createdAt; final String name; - final int nameCount; + int nameCount; final String description; Player({ @@ -20,7 +20,7 @@ class Player { @override String toString() { - return 'Player{id: $id, name: $name, description: $description}'; + return 'Player{id: $id, createdAt: $createdAt, name: $name, nameCount: $nameCount, description: $description}'; } /// Creates a Player instance from a JSON object. diff --git a/lib/presentation/widgets/player_selection.dart b/lib/presentation/widgets/player_selection.dart index 31bf942..0aa6653 100644 --- a/lib/presentation/widgets/player_selection.dart +++ b/lib/presentation/widgets/player_selection.dart @@ -285,7 +285,8 @@ class _PlayerSelectionState extends State { final loc = AppLocalizations.of(context); final playerName = _searchBarController.text.trim(); - final createdPlayer = Player(name: playerName, description: ''); + int nameCount = _calculateNameCount(playerName); + final createdPlayer = Player(name: playerName, nameCount: nameCount); final success = await db.playerDao.addPlayer(player: createdPlayer); if (!context.mounted) return; @@ -298,6 +299,22 @@ class _PlayerSelectionState extends State { } } + int _calculateNameCount(String playerName) { + final playersWithSameName = + allPlayers.where((player) => player.name == playerName).toList() + ..sort((a, b) => a.nameCount.compareTo(b.nameCount)); + + if (playersWithSameName.isEmpty) { + return 0; + } else if (playersWithSameName.length == 1) { + // Initialize nameCount + playersWithSameName[0].nameCount = 1; + } + + // Return following count + return playersWithSameName.length + 1; + } + /// Updates the state after successfully adding a new player. void _handleSuccessfulPlayerCreation(Player player) { selectedPlayers.insert(0, player);