Renamed GameColor to AppColor
This commit is contained in:
@@ -24,62 +24,62 @@ String translateRulesetToString(Ruleset ruleset, BuildContext context) {
|
||||
}
|
||||
}
|
||||
|
||||
// Returns a [GameColor] enum value based on the provided team [index].
|
||||
GameColor getTeamColor(int index) {
|
||||
// Returns a AppColor enum value based on the provided team [index].
|
||||
AppColor getTeamColor(int index) {
|
||||
final colors = [
|
||||
GameColor.red,
|
||||
GameColor.blue,
|
||||
GameColor.green,
|
||||
GameColor.yellow,
|
||||
GameColor.purple,
|
||||
GameColor.orange,
|
||||
GameColor.pink,
|
||||
GameColor.teal,
|
||||
AppColor.red,
|
||||
AppColor.blue,
|
||||
AppColor.green,
|
||||
AppColor.yellow,
|
||||
AppColor.purple,
|
||||
AppColor.orange,
|
||||
AppColor.pink,
|
||||
AppColor.teal,
|
||||
];
|
||||
return colors[index % colors.length];
|
||||
}
|
||||
|
||||
/// Translates a [GameColor] enum value to its corresponding localized string.
|
||||
String translateGameColorToString(GameColor color, BuildContext context) {
|
||||
/// Translates a [AppColor] enum value to its corresponding localized string.
|
||||
String translateGameColorToString(AppColor color, BuildContext context) {
|
||||
final loc = AppLocalizations.of(context);
|
||||
switch (color) {
|
||||
case GameColor.red:
|
||||
case AppColor.red:
|
||||
return loc.color_red;
|
||||
case GameColor.blue:
|
||||
case AppColor.blue:
|
||||
return loc.color_blue;
|
||||
case GameColor.green:
|
||||
case AppColor.green:
|
||||
return loc.color_green;
|
||||
case GameColor.yellow:
|
||||
case AppColor.yellow:
|
||||
return loc.color_yellow;
|
||||
case GameColor.purple:
|
||||
case AppColor.purple:
|
||||
return loc.color_purple;
|
||||
case GameColor.orange:
|
||||
case AppColor.orange:
|
||||
return loc.color_orange;
|
||||
case GameColor.pink:
|
||||
case AppColor.pink:
|
||||
return loc.color_pink;
|
||||
case GameColor.teal:
|
||||
case AppColor.teal:
|
||||
return loc.color_teal;
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the [Color] object corresponding to a [GameColor] enum value.
|
||||
Color getColorFromGameColor(GameColor color) {
|
||||
/// Returns the [Color] object corresponding to a [AppColor] enum value.
|
||||
Color getColorFromGameColor(AppColor color) {
|
||||
switch (color) {
|
||||
case GameColor.red:
|
||||
case AppColor.red:
|
||||
return Colors.red;
|
||||
case GameColor.blue:
|
||||
case AppColor.blue:
|
||||
return Colors.blue;
|
||||
case GameColor.green:
|
||||
case AppColor.green:
|
||||
return Colors.green;
|
||||
case GameColor.yellow:
|
||||
case AppColor.yellow:
|
||||
return const Color(0xFFF7CA28);
|
||||
case GameColor.purple:
|
||||
case AppColor.purple:
|
||||
return Colors.purple;
|
||||
case GameColor.orange:
|
||||
case AppColor.orange:
|
||||
return const Color(0xFFef681f);
|
||||
case GameColor.pink:
|
||||
case AppColor.pink:
|
||||
return Colors.pink;
|
||||
case GameColor.teal:
|
||||
case AppColor.teal:
|
||||
return Colors.teal;
|
||||
}
|
||||
}
|
||||
@@ -127,6 +127,7 @@ String getExtraPlayerCount(Match match) {
|
||||
return ' + ${count.toString()}';
|
||||
}
|
||||
|
||||
/// Returns the player name count if greater 0 in the format " #2", otherwise an empty string
|
||||
String getNameCountText(Player player) {
|
||||
if (player.nameCount >= 1) {
|
||||
return ' #${player.nameCount}';
|
||||
@@ -134,6 +135,7 @@ String getNameCountText(Player player) {
|
||||
return '';
|
||||
}
|
||||
|
||||
/// Returns the correct singular or plural form of "point(s)" based on the [points] value.
|
||||
String getPointLabel(AppLocalizations loc, int points) {
|
||||
if (points == 1) {
|
||||
return '$points ${loc.point}';
|
||||
|
||||
@@ -42,5 +42,5 @@ enum Ruleset {
|
||||
singleLoser,
|
||||
}
|
||||
|
||||
/// Different colors for highlighting games
|
||||
enum GameColor { red, orange, yellow, green, teal, blue, purple, pink }
|
||||
/// Different colors for highlighting content
|
||||
enum AppColor { red, orange, yellow, green, teal, blue, purple, pink }
|
||||
|
||||
@@ -92,7 +92,7 @@ class GameDao extends DatabaseAccessor<AppDatabase> with _$GameDaoMixin {
|
||||
name: row.name,
|
||||
ruleset: Ruleset.values.firstWhere((e) => e.name == row.ruleset),
|
||||
description: row.description,
|
||||
color: GameColor.values.firstWhere((e) => e.name == row.color),
|
||||
color: AppColor.values.firstWhere((e) => e.name == row.color),
|
||||
icon: row.icon,
|
||||
createdAt: row.createdAt,
|
||||
),
|
||||
@@ -109,7 +109,7 @@ class GameDao extends DatabaseAccessor<AppDatabase> with _$GameDaoMixin {
|
||||
name: result.name,
|
||||
ruleset: Ruleset.values.firstWhere((e) => e.name == result.ruleset),
|
||||
description: result.description,
|
||||
color: GameColor.values.firstWhere((e) => e.name == result.color),
|
||||
color: AppColor.values.firstWhere((e) => e.name == result.color),
|
||||
icon: result.icon,
|
||||
createdAt: result.createdAt,
|
||||
);
|
||||
@@ -156,7 +156,7 @@ class GameDao extends DatabaseAccessor<AppDatabase> with _$GameDaoMixin {
|
||||
/// Updates the color of the game with the given [gameId].
|
||||
Future<bool> updateGameColor({
|
||||
required String gameId,
|
||||
required GameColor color,
|
||||
required AppColor color,
|
||||
}) async {
|
||||
final rowsAffected =
|
||||
await (update(gameTable)..where((g) => g.id.equals(gameId))).write(
|
||||
|
||||
@@ -116,7 +116,7 @@ class TeamDao extends DatabaseAccessor<AppDatabase> with _$TeamDaoMixin {
|
||||
id: row.id,
|
||||
name: row.name,
|
||||
createdAt: row.createdAt,
|
||||
color: GameColor.values.byName(row.color),
|
||||
color: AppColor.values.byName(row.color),
|
||||
score: row.score,
|
||||
members: members,
|
||||
);
|
||||
@@ -151,7 +151,7 @@ class TeamDao extends DatabaseAccessor<AppDatabase> with _$TeamDaoMixin {
|
||||
id: result.id,
|
||||
name: result.name,
|
||||
createdAt: result.createdAt,
|
||||
color: GameColor.values.byName(result.color),
|
||||
color: AppColor.values.byName(result.color),
|
||||
score: result.score,
|
||||
members: members,
|
||||
);
|
||||
@@ -193,7 +193,7 @@ class TeamDao extends DatabaseAccessor<AppDatabase> with _$TeamDaoMixin {
|
||||
/// Updates the color of the team with the given [teamId].
|
||||
Future<bool> updateTeamColor({
|
||||
required String teamId,
|
||||
required GameColor color,
|
||||
required AppColor color,
|
||||
}) async {
|
||||
final rowsAffected =
|
||||
await (update(teamTable)..where((t) => t.id.equals(teamId))).write(
|
||||
|
||||
@@ -8,13 +8,13 @@ class Game {
|
||||
final String name;
|
||||
final Ruleset ruleset;
|
||||
final String description;
|
||||
final GameColor color;
|
||||
final AppColor color;
|
||||
final String icon;
|
||||
|
||||
Game({
|
||||
required this.name,
|
||||
required this.ruleset,
|
||||
this.color = GameColor.orange,
|
||||
this.color = AppColor.orange,
|
||||
this.description = '',
|
||||
this.icon = '',
|
||||
String? id,
|
||||
@@ -33,7 +33,7 @@ class Game {
|
||||
String? name,
|
||||
Ruleset? ruleset,
|
||||
String? description,
|
||||
GameColor? color,
|
||||
AppColor? color,
|
||||
String? icon,
|
||||
}) {
|
||||
return Game(
|
||||
@@ -73,7 +73,7 @@ class Game {
|
||||
orElse: () => Ruleset.singleWinner,
|
||||
),
|
||||
description = json['description'],
|
||||
color = GameColor.values.firstWhere((e) => e.name == json['color']),
|
||||
color = AppColor.values.firstWhere((e) => e.name == json['color']),
|
||||
icon = json['icon'];
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
|
||||
@@ -113,7 +113,7 @@ class Match {
|
||||
name: '',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
description: '',
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: '',
|
||||
),
|
||||
group = null,
|
||||
|
||||
@@ -8,7 +8,7 @@ class Team {
|
||||
final String id;
|
||||
final String name;
|
||||
final DateTime createdAt;
|
||||
final GameColor color;
|
||||
final AppColor color;
|
||||
final int? score;
|
||||
final List<Player> members;
|
||||
|
||||
@@ -16,7 +16,7 @@ class Team {
|
||||
String? id,
|
||||
required this.name,
|
||||
DateTime? createdAt,
|
||||
this.color = GameColor.blue,
|
||||
this.color = AppColor.blue,
|
||||
this.score,
|
||||
required this.members,
|
||||
}) : id = id ?? const Uuid().v4(),
|
||||
@@ -31,7 +31,7 @@ class Team {
|
||||
String? id,
|
||||
String? name,
|
||||
DateTime? createdAt,
|
||||
GameColor? color,
|
||||
AppColor? color,
|
||||
int? score,
|
||||
List<Player>? members,
|
||||
}) {
|
||||
@@ -71,7 +71,7 @@ class Team {
|
||||
: id = json['id'],
|
||||
name = json['name'],
|
||||
createdAt = DateTime.parse(json['createdAt']),
|
||||
color = GameColor.values.byName(json['color'] ?? GameColor.blue.name),
|
||||
color = AppColor.values.byName(json['color'] ?? AppColor.blue.name),
|
||||
score = json['score'] ?? 0,
|
||||
members = []; // Populated during import via DataTransferService
|
||||
|
||||
|
||||
@@ -49,10 +49,10 @@ class _CreateGameViewState extends State<CreateGameView> {
|
||||
late final AppDatabase db;
|
||||
|
||||
late List<(Ruleset, String)> _rulesets;
|
||||
late List<(GameColor, String)> _colors;
|
||||
late List<(AppColor, String)> _colors;
|
||||
|
||||
Ruleset? selectedRuleset = Ruleset.singleWinner;
|
||||
GameColor? selectedColor = GameColor.orange;
|
||||
AppColor? selectedColor = AppColor.orange;
|
||||
|
||||
/// Controller for the game name input field.
|
||||
final _gameNameController = TextEditingController();
|
||||
@@ -87,10 +87,10 @@ class _CreateGameViewState extends State<CreateGameView> {
|
||||
),
|
||||
);
|
||||
_colors = List.generate(
|
||||
GameColor.values.length,
|
||||
AppColor.values.length,
|
||||
(index) => (
|
||||
GameColor.values[index],
|
||||
translateGameColorToString(GameColor.values[index], context),
|
||||
AppColor.values[index],
|
||||
translateGameColorToString(AppColor.values[index], context),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ class _MatchViewState extends State<MatchView> {
|
||||
game: Game(
|
||||
name: 'Game name',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: '',
|
||||
),
|
||||
group: Group(
|
||||
|
||||
@@ -12,7 +12,7 @@ class GameLabel extends StatelessWidget {
|
||||
|
||||
final String title;
|
||||
final String description;
|
||||
final GameColor color;
|
||||
final AppColor color;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -51,7 +51,7 @@ class GameTile extends StatelessWidget {
|
||||
? (badgeColor!.computeLuminance() > 0.5 ? Colors.black : Colors.white)
|
||||
: Colors.white;
|
||||
|
||||
final gameColor = badgeColor ?? getColorFromGameColor(GameColor.orange);
|
||||
final gameColor = badgeColor ?? getColorFromGameColor(AppColor.orange);
|
||||
|
||||
return GestureDetector(
|
||||
onTap: () async {
|
||||
|
||||
@@ -18,7 +18,7 @@ class TeamCreationTile extends StatefulWidget {
|
||||
this.onColorSelection,
|
||||
});
|
||||
|
||||
final GameColor color;
|
||||
final AppColor color;
|
||||
|
||||
final TextEditingController controller;
|
||||
|
||||
@@ -26,7 +26,7 @@ class TeamCreationTile extends StatefulWidget {
|
||||
|
||||
final VoidCallback? onDelete;
|
||||
|
||||
final ValueChanged<GameColor>? onColorSelection;
|
||||
final ValueChanged<AppColor>? onColorSelection;
|
||||
|
||||
@override
|
||||
State<TeamCreationTile> createState() => _TeamCreationTileState();
|
||||
@@ -34,7 +34,7 @@ class TeamCreationTile extends StatefulWidget {
|
||||
|
||||
class _TeamCreationTileState extends State<TeamCreationTile> {
|
||||
final teamColors = List.generate(
|
||||
GameColor.values.length,
|
||||
AppColor.values.length,
|
||||
(index) => getTeamColor(index),
|
||||
);
|
||||
|
||||
|
||||
@@ -278,7 +278,7 @@ class DataTransferService {
|
||||
name: 'Unknown',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
description: '',
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: '',
|
||||
);
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ void main() {
|
||||
name: 'Test Game',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
description: 'A test game',
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: '',
|
||||
);
|
||||
testMatch1 = Match(
|
||||
|
||||
@@ -49,7 +49,7 @@ void main() {
|
||||
testGame = Game(
|
||||
name: 'Test Game',
|
||||
ruleset: Ruleset.highestScore,
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: '',
|
||||
);
|
||||
testMatch1 = Match(
|
||||
|
||||
@@ -28,7 +28,7 @@ void main() {
|
||||
name: 'Chess',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
description: 'A classic strategy game',
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: 'chess_icon',
|
||||
);
|
||||
testGame2 = Game(
|
||||
@@ -36,7 +36,7 @@ void main() {
|
||||
name: 'Poker',
|
||||
ruleset: Ruleset.multipleWinners,
|
||||
description: 'Card game with multiple winners',
|
||||
color: GameColor.red,
|
||||
color: AppColor.red,
|
||||
icon: 'poker_icon',
|
||||
);
|
||||
testGame3 = Game(
|
||||
@@ -44,7 +44,7 @@ void main() {
|
||||
name: 'Monopoly',
|
||||
ruleset: Ruleset.highestScore,
|
||||
description: 'A board game about real estate',
|
||||
color: GameColor.orange,
|
||||
color: AppColor.orange,
|
||||
icon: '',
|
||||
);
|
||||
});
|
||||
@@ -124,7 +124,7 @@ void main() {
|
||||
name: 'Game\'s & "Special" <Name>',
|
||||
ruleset: Ruleset.multipleWinners,
|
||||
description: 'Description with émojis 🎮🎲',
|
||||
color: GameColor.purple,
|
||||
color: AppColor.purple,
|
||||
icon: '',
|
||||
);
|
||||
await database.gameDao.addGame(game: specialGame);
|
||||
@@ -280,19 +280,19 @@ void main() {
|
||||
|
||||
await database.gameDao.updateGameColor(
|
||||
gameId: testGame1.id,
|
||||
color: GameColor.green,
|
||||
color: AppColor.green,
|
||||
);
|
||||
|
||||
final updatedGame = await database.gameDao.getGameById(
|
||||
gameId: testGame1.id,
|
||||
);
|
||||
expect(updatedGame.color, GameColor.green);
|
||||
expect(updatedGame.color, AppColor.green);
|
||||
});
|
||||
|
||||
test('updateGameColor() does nothing for non-existent game', () async {
|
||||
final updated = await database.gameDao.updateGameColor(
|
||||
gameId: 'non-existent-id',
|
||||
color: GameColor.green,
|
||||
color: AppColor.green,
|
||||
);
|
||||
expect(updated, isFalse);
|
||||
|
||||
@@ -336,7 +336,7 @@ void main() {
|
||||
name: newName,
|
||||
);
|
||||
|
||||
const newGameColor = GameColor.teal;
|
||||
const newGameColor = AppColor.teal;
|
||||
await database.gameDao.updateGameColor(
|
||||
gameId: testGame1.id,
|
||||
color: newGameColor,
|
||||
|
||||
@@ -42,7 +42,7 @@ void main() {
|
||||
name: 'Test Game',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
description: 'A test game',
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: '',
|
||||
);
|
||||
testMatch1 = Match(
|
||||
|
||||
@@ -40,7 +40,7 @@ void main() {
|
||||
name: 'Test Game',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
description: 'A test game',
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: '',
|
||||
);
|
||||
testMatch1 = Match(
|
||||
|
||||
@@ -45,7 +45,7 @@ void main() {
|
||||
name: 'Chess',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
description: 'Strategic board game',
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: 'chess_icon',
|
||||
);
|
||||
|
||||
@@ -445,19 +445,19 @@ void main() {
|
||||
Game(
|
||||
name: 'Red Game',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
color: GameColor.red,
|
||||
color: AppColor.red,
|
||||
icon: 'icon',
|
||||
),
|
||||
Game(
|
||||
name: 'Blue Game',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: 'icon',
|
||||
),
|
||||
Game(
|
||||
name: 'Green Game',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
color: GameColor.green,
|
||||
color: AppColor.green,
|
||||
icon: 'icon',
|
||||
),
|
||||
];
|
||||
@@ -481,19 +481,19 @@ void main() {
|
||||
Game(
|
||||
name: 'Highest Score Game',
|
||||
ruleset: Ruleset.highestScore,
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: 'icon',
|
||||
),
|
||||
Game(
|
||||
name: 'Lowest Score Game',
|
||||
ruleset: Ruleset.lowestScore,
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: 'icon',
|
||||
),
|
||||
Game(
|
||||
name: 'Single Winner',
|
||||
ruleset: Ruleset.singleWinner,
|
||||
color: GameColor.blue,
|
||||
color: AppColor.blue,
|
||||
icon: 'icon',
|
||||
),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user