Implemented name count update in player selection
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user