diff --git a/lib/main.dart b/lib/main.dart index cc9e71e..edd7d3c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,12 +1,15 @@ import 'package:cabo_counter/services/config_service.dart'; import 'package:cabo_counter/services/local_storage_service.dart'; import 'package:cabo_counter/utility/custom_theme.dart'; +import 'package:cabo_counter/utility/globals.dart'; import 'package:cabo_counter/views/tab_view.dart'; import 'package:flutter/cupertino.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); await ConfigService.initConfig(); + Globals.pointLimit = await ConfigService.getPointLimit(); + Globals.caboPenalty = await ConfigService.getCaboPenalty(); runApp(const App()); } diff --git a/lib/utility/globals.dart b/lib/utility/globals.dart index 62e64bd..74417b4 100644 --- a/lib/utility/globals.dart +++ b/lib/utility/globals.dart @@ -8,4 +8,7 @@ class Globals { gameList.add(session); gameList.sort((a, b) => b.createdAt.compareTo(a.createdAt)); } + + static int pointLimit = 100; + static int caboPenalty = 5; } diff --git a/lib/views/create_game_view.dart b/lib/views/create_game_view.dart index d82c087..8070daf 100644 --- a/lib/views/create_game_view.dart +++ b/lib/views/create_game_view.dart @@ -1,5 +1,4 @@ import 'package:cabo_counter/data/game_session.dart'; -import 'package:cabo_counter/services/config_service.dart'; import 'package:cabo_counter/services/local_storage_service.dart'; import 'package:cabo_counter/utility/custom_theme.dart'; import 'package:cabo_counter/utility/globals.dart'; @@ -78,15 +77,15 @@ class _CreateGameState extends State { ], ), onTap: () async { - // Öffne das Modus-Auswahlmenü final selected = await Navigator.push( context, CupertinoPageRoute( - builder: (context) => const ModeSelectionMenu(), + builder: (context) => ModeSelectionMenu( + pointLimit: Globals.pointLimit, + ), ), ); - // Aktualisiere den ausgewählten Modus if (selected != null) { setState(() { selectedMode = selected; @@ -207,7 +206,7 @@ class _CreateGameState extends State { ), ], ), - onPressed: () async { + onPressed: () { if (_gameTitleTextController.text == '') { showCupertinoDialog( context: context, @@ -286,8 +285,8 @@ class _CreateGameState extends State { createdAt: DateTime.now(), gameTitle: _gameTitleTextController.text, players: players, - pointLimit: await ConfigService.getPointLimit(), - caboPenalty: await ConfigService.getCaboPenalty(), + pointLimit: Globals.pointLimit, + caboPenalty: Globals.caboPenalty, isPointsLimitEnabled: selectedMode!, ); Globals.addGameSession(gameSession); diff --git a/lib/views/mode_selection_view.dart b/lib/views/mode_selection_view.dart index 5dd8010..f4edf37 100644 --- a/lib/views/mode_selection_view.dart +++ b/lib/views/mode_selection_view.dart @@ -2,7 +2,8 @@ import 'package:cabo_counter/utility/custom_theme.dart'; import 'package:flutter/cupertino.dart'; class ModeSelectionMenu extends StatelessWidget { - const ModeSelectionMenu({super.key}); + final int pointLimit; + const ModeSelectionMenu({super.key, required this.pointLimit}); @override Widget build(BuildContext context) { @@ -15,9 +16,9 @@ class ModeSelectionMenu extends StatelessWidget { Padding( padding: const EdgeInsets.fromLTRB(0, 16, 0, 0), child: CupertinoListTile( - title: Text('101 Punkte', style: CustomTheme.modeTitle), - subtitle: const Text( - 'Es wird solange gespielt, bis einer Spieler mehr als 100 Punkte erreicht', + title: Text('$pointLimit Punkte', style: CustomTheme.modeTitle), + subtitle: Text( + 'Es wird solange gespielt, bis einer Spieler mehr als $pointLimit Punkte erreicht', style: CustomTheme.modeDescription, maxLines: 3, ),