From fba84116e0180293ff690d55b276efbad57ab218 Mon Sep 17 00:00:00 2001 From: Felix Kirchner Date: Sat, 19 Apr 2025 14:24:08 +0200 Subject: [PATCH] Implemented previous rounds points getting shown when opened again --- lib/views/main_menu_view.dart | 9 +++------ lib/views/round_view.dart | 31 +++++++++++++++++++++++-------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/lib/views/main_menu_view.dart b/lib/views/main_menu_view.dart index a730c99..8719dfd 100644 --- a/lib/views/main_menu_view.dart +++ b/lib/views/main_menu_view.dart @@ -1,5 +1,3 @@ -import 'dart:math'; - import 'package:cabo_counter/data/game_session.dart'; import 'package:cabo_counter/views/active_game_view.dart'; import 'package:cabo_counter/views/create_game_view.dart'; @@ -41,7 +39,7 @@ class _MainMenuViewState extends State { ]; @override Widget build(BuildContext context) { - randomizeRoundNumbers(); + calculateRoundNumbers(); return CupertinoPageScaffold( navigationBar: CupertinoNavigationBar( @@ -118,10 +116,9 @@ class _MainMenuViewState extends State { } } - void randomizeRoundNumbers() { - var random = Random(); + void calculateRoundNumbers() { for (var s in gameSessionArray) { - s.round = random.nextInt(20); + s.round = s.playerScores[0].length - 1; } } } diff --git a/lib/views/round_view.dart b/lib/views/round_view.dart index d084c11..8d73f87 100644 --- a/lib/views/round_view.dart +++ b/lib/views/round_view.dart @@ -39,6 +39,20 @@ class _RoundViewState extends State { @override void initState() { print('Runde ${widget.roundNumber} geöffnet'); + print( + 'Schon gespielte Runden: ${widget.gameSession.playerScores[0].length}'); + if (widget.gameSession.round < widget.gameSession.playerScores[0].length) { + print( + 'Die Länge ist ${widget.gameSession.playerScores[0].length} und somit kleiner als ' + 'die Runde ${widget.gameSession.round}'); + + // If the current round has already been played, the text fields are filled + // with the scores from this round + for (int i = 0; i < _pointControllers.length; i++) { + _pointControllers[i].text = + gameSession.playerScores[i][widget.roundNumber].toString(); + } + } super.initState(); } @@ -263,16 +277,17 @@ class _RoundViewState extends State { } bool _areRoundInputsValid() { - if (_kamikazePlayerIndex == null) { - return false; - } else { - for (TextEditingController c in _pointControllers) { - if (c.text.isEmpty) { - return false; - } + if (_areTextFieldsEmpty() && _kamikazePlayerIndex == null) return false; + return true; + } + + bool _areTextFieldsEmpty() { + for (TextEditingController t in _pointControllers) { + if (t.text.isEmpty) { + return true; } } - return true; + return false; } void _finishRound() {