From d6413c096d4ec2132ff59efe7a01db4e9983ad58 Mon Sep 17 00:00:00 2001 From: Felix Kirchner Date: Wed, 2 Jul 2025 16:30:29 +0200 Subject: [PATCH] Implemented new game same settings features --- lib/views/active_game_view.dart | 25 +++++++++++++++++------ lib/views/create_game_view.dart | 36 ++++++++++++++++++++++++++------- lib/views/main_menu_view.dart | 5 +++-- pubspec.yaml | 2 +- 4 files changed, 52 insertions(+), 16 deletions(-) diff --git a/lib/views/active_game_view.dart b/lib/views/active_game_view.dart index 6266348..d4ff7bd 100644 --- a/lib/views/active_game_view.dart +++ b/lib/views/active_game_view.dart @@ -1,6 +1,7 @@ import 'package:cabo_counter/data/game_session.dart'; import 'package:cabo_counter/l10n/app_localizations.dart'; import 'package:cabo_counter/utility/custom_theme.dart'; +import 'package:cabo_counter/views/create_game_view.dart'; import 'package:cabo_counter/views/graph_view.dart'; import 'package:cabo_counter/views/round_view.dart'; import 'package:flutter/cupertino.dart'; @@ -141,12 +142,24 @@ class _ActiveGameViewState extends State { onTap: () {}, ), CupertinoListTile( - title: Text( - AppLocalizations.of(context) - .new_game_same_settings, - style: const TextStyle( - color: Colors.white30, - ))), + title: Text( + AppLocalizations.of(context) + .new_game_same_settings, + ), + onTap: () { + Navigator.pushReplacement( + context, + CupertinoPageRoute( + builder: (_) => CreateGameView( + gameTitle: + widget.gameSession.gameTitle, + isPointsLimitEnabled: widget + .gameSession + .isPointsLimitEnabled, + players: widget.gameSession.players, + ))); + }, + ), CupertinoListTile( title: Text(AppLocalizations.of(context).export_game, diff --git a/lib/views/create_game_view.dart b/lib/views/create_game_view.dart index adcbf86..70c65b4 100644 --- a/lib/views/create_game_view.dart +++ b/lib/views/create_game_view.dart @@ -7,18 +7,25 @@ import 'package:cabo_counter/views/active_game_view.dart'; import 'package:cabo_counter/views/mode_selection_view.dart'; import 'package:flutter/cupertino.dart'; -class CreateGame extends StatefulWidget { - const CreateGame({super.key}); +class CreateGameView extends StatefulWidget { + final String? gameTitle; + final bool? isPointsLimitEnabled; + final List? players; + + const CreateGameView({ + super.key, + this.gameTitle, + this.isPointsLimitEnabled, + this.players, + }); @override // ignore: library_private_types_in_public_api - _CreateGameState createState() => _CreateGameState(); + _CreateGameViewState createState() => _CreateGameViewState(); } -class _CreateGameState extends State { - final List _playerNameTextControllers = [ - TextEditingController() - ]; +class _CreateGameViewState extends State { + late List _playerNameTextControllers = []; final TextEditingController _gameTitleTextController = TextEditingController(); @@ -28,6 +35,21 @@ class _CreateGameState extends State { /// Variable to store the selected game mode. bool? selectedMode; + @override + void initState() { + selectedMode = widget.isPointsLimitEnabled; + _gameTitleTextController.text = widget.gameTitle ?? ''; + if (widget.players != null) { + _playerNameTextControllers = []; + for (var player in widget.players!) { + _playerNameTextControllers.add(TextEditingController(text: player)); + } + } else { + _playerNameTextControllers = [TextEditingController()]; + } + super.initState(); + } + @override Widget build(BuildContext context) { return CupertinoPageScaffold( diff --git a/lib/views/main_menu_view.dart b/lib/views/main_menu_view.dart index ab52d4e..f41a0ef 100644 --- a/lib/views/main_menu_view.dart +++ b/lib/views/main_menu_view.dart @@ -61,7 +61,7 @@ class _MainMenuViewState extends State { Navigator.push( context, CupertinoPageRoute( - builder: (context) => const CreateGame(), + builder: (context) => const CreateGameView(), ), ) }, @@ -82,7 +82,8 @@ class _MainMenuViewState extends State { onTap: () => Navigator.push( context, CupertinoPageRoute( - builder: (context) => const CreateGame(), + builder: (context) => + const CreateGameView(), ), ), child: Icon( diff --git a/pubspec.yaml b/pubspec.yaml index af1107f..a7c91ae 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: cabo_counter description: "Mobile app for the card game Cabo" publish_to: 'none' -version: 0.3.4+267 +version: 0.3.5+269 environment: sdk: ^3.5.4