Implemented new game same settings features

This commit is contained in:
2025-07-02 16:30:29 +02:00
parent a0206e613f
commit d6413c096d
4 changed files with 52 additions and 16 deletions

View File

@@ -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<ActiveGameView> {
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,

View File

@@ -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<String>? 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<CreateGame> {
final List<TextEditingController> _playerNameTextControllers = [
TextEditingController()
];
class _CreateGameViewState extends State<CreateGameView> {
late List<TextEditingController> _playerNameTextControllers = [];
final TextEditingController _gameTitleTextController =
TextEditingController();
@@ -28,6 +35,21 @@ class _CreateGameState extends State<CreateGame> {
/// 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(

View File

@@ -61,7 +61,7 @@ class _MainMenuViewState extends State<MainMenuView> {
Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => const CreateGame(),
builder: (context) => const CreateGameView(),
),
)
},
@@ -82,7 +82,8 @@ class _MainMenuViewState extends State<MainMenuView> {
onTap: () => Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => const CreateGame(),
builder: (context) =>
const CreateGameView(),
),
),
child: Icon(

View File

@@ -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