diff --git a/lib/game/view/widgets/game_over_dialog.dart b/lib/game/view/widgets/game_over_dialog.dart index d32af493..c3c2f237 100644 --- a/lib/game/view/widgets/game_over_dialog.dart +++ b/lib/game/view/widgets/game_over_dialog.dart @@ -31,7 +31,7 @@ class GameOverDialog extends StatelessWidget { onPressed: () => Navigator.of(context).push( LeaderboardPage.route(theme: theme), ), - child: Text(l10n.leadersBoard), + child: Text(l10n.leadersboard), ), ], ), diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 18fa9fe6..bd03f02a 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -28,8 +28,8 @@ "@gameOver": { "description": "Text displayed on the ending dialog when game finishes" }, - "leadersBoard": "Leaders Board", - "@leadersBoard": { + "leadersboard": "Leaders Board", + "@leadersboard": { "description": "Text displayed on the ending dialog leaders board button" }, "rank": "Rank", diff --git a/lib/leaderboard/view/leaderboard_page.dart b/lib/leaderboard/view/leaderboard_page.dart index a75a4e1a..8c95ed3f 100644 --- a/lib/leaderboard/view/leaderboard_page.dart +++ b/lib/leaderboard/view/leaderboard_page.dart @@ -49,7 +49,7 @@ class LeaderboardView extends StatelessWidget { children: [ const SizedBox(height: 80), Text( - l10n.leadersBoard, + l10n.leadersboard, style: Theme.of(context).textTheme.headline3, ), const SizedBox(height: 80), @@ -82,7 +82,7 @@ class _LeaderboardRanking extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ _LeaderboardHeaders(theme: theme), - const _LeaderboardList(), + _LeaderboardList(theme: theme), ], ), ); @@ -137,7 +137,9 @@ class _LeaderboardHeaderItem extends StatelessWidget { } class _LeaderboardList extends StatelessWidget { - const _LeaderboardList({Key? key}) : super(key: key); + const _LeaderboardList({Key? key, required this.theme}) : super(key: key); + + final CharacterTheme theme; @override Widget build(BuildContext context) { @@ -152,6 +154,7 @@ class _LeaderboardList extends StatelessWidget { score: 0, ), ), + theme: theme, ), itemCount: 10, ); @@ -159,8 +162,13 @@ class _LeaderboardList extends StatelessWidget { } class _LeaderBoardCompetitor extends StatelessWidget { - const _LeaderBoardCompetitor({Key? key, required this.competitor}) - : super(key: key); + const _LeaderBoardCompetitor({ + Key? key, + required this.competitor, + required this.theme, + }) : super(key: key); + + final CharacterTheme theme; final Competitor competitor; @@ -169,20 +177,35 @@ class _LeaderBoardCompetitor extends StatelessWidget { return Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - _LeaderboardCompetitorField(text: competitor.rank), + _LeaderboardCompetitorField( + text: competitor.rank, + theme: theme, + ), _LeaderboardCompetitorCharacter( characterTheme: competitor.entry.character.theme, + theme: theme, + ), + _LeaderboardCompetitorField( + text: competitor.entry.playerInitials, + theme: theme, + ), + _LeaderboardCompetitorField( + text: competitor.entry.score.toString(), + theme: theme, ), - _LeaderboardCompetitorField(text: competitor.entry.playerInitials), - _LeaderboardCompetitorField(text: competitor.entry.score.toString()), ], ); } } class _LeaderboardCompetitorField extends StatelessWidget { - const _LeaderboardCompetitorField({Key? key, required this.text}) - : super(key: key); + const _LeaderboardCompetitorField({ + Key? key, + required this.text, + required this.theme, + }) : super(key: key); + + final CharacterTheme theme; final String text; @override @@ -191,8 +214,7 @@ class _LeaderboardCompetitorField extends StatelessWidget { child: DecoratedBox( decoration: BoxDecoration( border: Border.all( - color: - context.read().state.theme.characterTheme.ballColor, + color: theme.ballColor, width: 2, ), ), @@ -209,7 +231,10 @@ class _LeaderboardCompetitorCharacter extends StatelessWidget { const _LeaderboardCompetitorCharacter({ Key? key, required this.characterTheme, + required this.theme, }) : super(key: key); + + final CharacterTheme theme; final CharacterTheme characterTheme; @override @@ -218,8 +243,7 @@ class _LeaderboardCompetitorCharacter extends StatelessWidget { child: DecoratedBox( decoration: BoxDecoration( border: Border.all( - color: - context.read().state.theme.characterTheme.ballColor, + color: theme.ballColor, width: 2, ), ), diff --git a/test/game/view/widgets/game_over_dialog_test.dart b/test/game/view/widgets/game_over_dialog_test.dart index 6ebb99f9..a93484d8 100644 --- a/test/game/view/widgets/game_over_dialog_test.dart +++ b/test/game/view/widgets/game_over_dialog_test.dart @@ -20,7 +20,7 @@ void main() { ); expect(find.text(l10n.gameOver), findsOneWidget); - expect(find.text(l10n.leadersBoard), findsOneWidget); + expect(find.text(l10n.leadersboard), findsOneWidget); }); testWidgets('tapping on leaderboard button navigates to LeaderBoardPage', @@ -36,7 +36,7 @@ void main() { navigator: navigator, ); - await tester.tap(find.widgetWithText(TextButton, l10n.leadersBoard)); + await tester.tap(find.widgetWithText(TextButton, l10n.leadersboard)); verify(() => navigator.push(any())).called(1); }); diff --git a/test/helpers/navigator.dart b/test/helpers/navigator.dart index 94e501a2..5a8ea52e 100644 --- a/test/helpers/navigator.dart +++ b/test/helpers/navigator.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'helpers.dart'; -Future expectNavigatesTo( +Future expectNavigatesToRoute( WidgetTester tester, Route route, { bool hasFlameGameInside = false, diff --git a/test/leaderboard/view/leaderboard_page_test.dart b/test/leaderboard/view/leaderboard_page_test.dart index a58c2b1a..3a96b9f8 100644 --- a/test/leaderboard/view/leaderboard_page_test.dart +++ b/test/leaderboard/view/leaderboard_page_test.dart @@ -23,7 +23,7 @@ void main() { }); testWidgets('route returns a valid navigation route', (tester) async { - await expectNavigatesTo( + await expectNavigatesToRoute( tester, LeaderboardPage.route( theme: DashTheme(), @@ -41,7 +41,7 @@ void main() { ), ); - expect(find.text(l10n.leadersBoard), findsOneWidget); + expect(find.text(l10n.leadersboard), findsOneWidget); expect(find.text(l10n.retry), findsOneWidget); });