Implemented name count update in player selection
Some checks failed
Pull Request Pipeline / test (pull_request) Failing after 43s
Pull Request Pipeline / lint (pull_request) Successful in 49s

This commit is contained in:
2026-04-19 23:22:14 +02:00
parent 653b85d28d
commit fcf845af4d
2 changed files with 20 additions and 3 deletions

View File

@@ -5,7 +5,7 @@ class Player {
final String id; final String id;
final DateTime createdAt; final DateTime createdAt;
final String name; final String name;
final int nameCount; int nameCount;
final String description; final String description;
Player({ Player({
@@ -20,7 +20,7 @@ class Player {
@override @override
String toString() { 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. /// Creates a Player instance from a JSON object.

View File

@@ -285,7 +285,8 @@ class _PlayerSelectionState extends State<PlayerSelection> {
final loc = AppLocalizations.of(context); final loc = AppLocalizations.of(context);
final playerName = _searchBarController.text.trim(); 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); final success = await db.playerDao.addPlayer(player: createdPlayer);
if (!context.mounted) return; if (!context.mounted) return;
@@ -298,6 +299,22 @@ class _PlayerSelectionState extends State<PlayerSelection> {
} }
} }
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. /// Updates the state after successfully adding a new player.
void _handleSuccessfulPlayerCreation(Player player) { void _handleSuccessfulPlayerCreation(Player player) {
selectedPlayers.insert(0, player); selectedPlayers.insert(0, player);