From 2a206c89605688464b59d4418cfa548ee15065bb Mon Sep 17 00:00:00 2001 From: BroodjeAap Date: Mon, 28 Dec 2020 16:30:22 +0100 Subject: [PATCH] moved practice buttons to practice thing, so that leap practicething can only give two buttons (0 and 1) --- lib/pages/practice/PracticePage.dart | 53 ++++--------------- lib/pages/practice/thing/PracticeThing.dart | 39 ++++++++++++++ .../practice/thing/PracticeThingAll.dart | 3 +- .../practice/thing/PracticeThingCentury.dart | 3 +- .../practice/thing/PracticeThingLeap.dart | 37 ++++++++++++- .../practice/thing/PracticeThingMod.dart | 3 +- .../practice/thing/PracticeThingMonth.dart | 3 +- .../practice/thing/PracticeThingYear.dart | 3 +- 8 files changed, 94 insertions(+), 50 deletions(-) diff --git a/lib/pages/practice/PracticePage.dart b/lib/pages/practice/PracticePage.dart index ed21531..35b4cb9 100644 --- a/lib/pages/practice/PracticePage.dart +++ b/lib/pages/practice/PracticePage.dart @@ -18,10 +18,10 @@ class PracticePage extends StatefulWidget { this.practiceSetup ); @override - _PracticeState createState() => _PracticeState(practiceSetup); + PracticePageState createState() => PracticePageState(practiceSetup); } -class _PracticeState extends State { +class PracticePageState extends State { int _startCount = 0; bool _showCorrect = true; PracticeType practiceType; @@ -31,37 +31,36 @@ class _PracticeState extends State { int _correct = 0; int _incorrect = 0; - _PracticeState(PracticeSetup practiceSetup){ + PracticePageState(PracticeSetup practiceSetup){ this._startCount = practiceSetup.count; this._showCorrect = practiceSetup.showCorrect; practiceType = practiceSetup.practiceType; switch(practiceType){ case (PracticeType.month): { - this.practiceThing = PracticeThingMonth(); + this.practiceThing = PracticeThingMonth(this); break; } case (PracticeType.year): { - this.practiceThing = PracticeThingYear(); + this.practiceThing = PracticeThingYear(this); break; } case (PracticeType.century): { - this.practiceThing = PracticeThingCentury(); + this.practiceThing = PracticeThingCentury(this); break; } case (PracticeType.leap): { - this.practiceThing = PracticeThingLeap(); + this.practiceThing = PracticeThingLeap(this); break; } case (PracticeType.mod): { - this.practiceThing = PracticeThingMod(); + this.practiceThing = PracticeThingMod(this); break; } case (PracticeType.all): { - this.practiceThing = PracticeThingAll(); + this.practiceThing = PracticeThingAll(this); break; } default: { - break; } } @@ -78,38 +77,6 @@ class _PracticeState extends State { return Row(children: answerBoxes); } - Widget getButtons(){ - List buttons = List(); - for(int i in [1,2,3,4,5,6,-1,0,-1]){ - if (i == -1){ - buttons.add(Container()); - continue; - } - buttons.add( - FlatButton( - onPressed: () { - checkAnswer(i); - }, - color: Colors.blue, - textColor: Colors.white, - child: Text( - i.toString(), - style: TextStyle(fontSize: 30) - ) - ) - ); - } - return GridView.count( - primary: false, - crossAxisCount: 3, - padding: EdgeInsets.fromLTRB(0, 20, 0, 20), - mainAxisSpacing: 10, - crossAxisSpacing: 10, - shrinkWrap: true, - children: buttons - ); - } - SimpleDialog finishedPracticeDialog() { return SimpleDialog( title: Text( @@ -203,7 +170,7 @@ class _PracticeState extends State { practiceThing.getCurrentQuestionText() ] ), - getButtons(), + practiceThing.getButtons(), Align( alignment: FractionalOffset.bottomCenter, child: getAnswerRow() diff --git a/lib/pages/practice/thing/PracticeThing.dart b/lib/pages/practice/thing/PracticeThing.dart index 7eb3807..96fab60 100644 --- a/lib/pages/practice/thing/PracticeThing.dart +++ b/lib/pages/practice/thing/PracticeThing.dart @@ -3,11 +3,18 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:ohthatsa/pages/practice/PracticeAnswer.dart'; +import 'package:ohthatsa/pages/practice/PracticePage.dart'; abstract class PracticeThing { final random = Random(); final List answers = new List(); + final PracticePageState practicePageState; + + PracticeThing(this.practicePageState){ + next(); + } + bool isCorrect(int answer); bool answer(int answer); void next(); @@ -16,4 +23,36 @@ abstract class PracticeThing { Text getCurrentQuestionText(); Text getLastAnswerText(bool showCorrect); Text getSecondLastAnswerText(bool showCorrect); + + Widget getButtons(){ + List buttons = List(); + for(int i in [1,2,3,4,5,6,-1,0,-1]){ + if (i == -1){ + buttons.add(Container()); + continue; + } + buttons.add( + FlatButton( + onPressed: () { + practicePageState.checkAnswer(i); + }, + color: Colors.blue, + textColor: Colors.white, + child: Text( + i.toString(), + style: TextStyle(fontSize: 30) + ) + ) + ); + } + return GridView.count( + primary: false, + crossAxisCount: 3, + padding: EdgeInsets.fromLTRB(0, 20, 0, 20), + mainAxisSpacing: 10, + crossAxisSpacing: 10, + shrinkWrap: true, + children: buttons + ); + } } \ No newline at end of file diff --git a/lib/pages/practice/thing/PracticeThingAll.dart b/lib/pages/practice/thing/PracticeThingAll.dart index 196ed09..cb2036b 100644 --- a/lib/pages/practice/thing/PracticeThingAll.dart +++ b/lib/pages/practice/thing/PracticeThingAll.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:flutter/src/widgets/text.dart'; import 'package:ohthatsa/pages/practice/PracticeAnswer.dart'; +import 'package:ohthatsa/pages/practice/PracticePage.dart'; import 'package:ohthatsa/pages/practice/thing/PracticeThing.dart'; class PracticeThingAll extends PracticeThing { @@ -23,7 +24,7 @@ class PracticeThingAll extends PracticeThing { DateTime.december ]; - PracticeThingAll() { + PracticeThingAll(PracticePageState practicePageState) : super(practicePageState) { next(); } diff --git a/lib/pages/practice/thing/PracticeThingCentury.dart b/lib/pages/practice/thing/PracticeThingCentury.dart index 98c3758..27fe822 100644 --- a/lib/pages/practice/thing/PracticeThingCentury.dart +++ b/lib/pages/practice/thing/PracticeThingCentury.dart @@ -2,13 +2,14 @@ import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:ohthatsa/pages/practice/PracticeAnswer.dart'; +import 'package:ohthatsa/pages/practice/PracticePage.dart'; import 'package:ohthatsa/pages/practice/thing/PracticeThing.dart'; import 'package:ohthatsa/util/DayCalculator.dart'; class PracticeThingCentury extends PracticeThing { int current; - PracticeThingCentury(){ + PracticeThingCentury(PracticePageState practicePageState) : super(practicePageState) { next(); } diff --git a/lib/pages/practice/thing/PracticeThingLeap.dart b/lib/pages/practice/thing/PracticeThingLeap.dart index 9ea74a4..d194269 100644 --- a/lib/pages/practice/thing/PracticeThingLeap.dart +++ b/lib/pages/practice/thing/PracticeThingLeap.dart @@ -2,13 +2,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/text.dart'; import 'package:ohthatsa/pages/practice/PracticeAnswer.dart'; import 'package:ohthatsa/pages/practice/thing/PracticeThing.dart'; -import 'package:ohthatsa/pages/practice/PracticeType.dart'; +import 'package:ohthatsa/pages/practice/PracticePage.dart'; import 'package:ohthatsa/util/DayCalculator.dart'; class PracticeThingLeap extends PracticeThing { int current; - PracticeThingLeap(){ + PracticeThingLeap(PracticePageState practicePageState) : super(practicePageState) { next(); } @@ -87,4 +87,37 @@ class PracticeThingLeap extends PracticeThing { ) ); } + + Widget getButtons(){ + return Container( + padding: EdgeInsets.fromLTRB(0, 20, 0, 20), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + FlatButton( + onPressed: () { + practicePageState.checkAnswer(0); + }, + color: Colors.blue, + textColor: Colors.white, + child: Text( + "0", + style: TextStyle(fontSize: 30) + ) + ), + FlatButton( + onPressed: () { + practicePageState.checkAnswer(1); + }, + color: Colors.blue, + textColor: Colors.white, + child: Text( + "1", + style: TextStyle(fontSize: 30) + ) + ) + ] + ) + ); + } } \ No newline at end of file diff --git a/lib/pages/practice/thing/PracticeThingMod.dart b/lib/pages/practice/thing/PracticeThingMod.dart index e06b16f..f5d6b21 100644 --- a/lib/pages/practice/thing/PracticeThingMod.dart +++ b/lib/pages/practice/thing/PracticeThingMod.dart @@ -1,12 +1,13 @@ import 'package:flutter/material.dart'; import 'package:ohthatsa/pages/practice/PracticeAnswer.dart'; +import 'package:ohthatsa/pages/practice/PracticePage.dart'; import 'package:ohthatsa/pages/practice/thing/PracticeThing.dart'; import 'package:ohthatsa/pages/practice/PracticeType.dart'; class PracticeThingMod extends PracticeThing { int current; - PracticeThingMod() { + PracticeThingMod(PracticePageState practicePageState) : super(practicePageState) { next(); } diff --git a/lib/pages/practice/thing/PracticeThingMonth.dart b/lib/pages/practice/thing/PracticeThingMonth.dart index 98da101..6296c86 100644 --- a/lib/pages/practice/thing/PracticeThingMonth.dart +++ b/lib/pages/practice/thing/PracticeThingMonth.dart @@ -1,6 +1,7 @@ import 'dart:math'; import 'package:flutter/material.dart'; +import 'package:ohthatsa/pages/practice/PracticePage.dart'; import 'package:ohthatsa/pages/practice/thing/PracticeThing.dart'; import 'package:ohthatsa/pages/practice/PracticeType.dart'; import 'package:ohthatsa/pages/practice/PracticeAnswer.dart'; @@ -11,7 +12,7 @@ class PracticeThingMonth extends PracticeThing { Month current; - PracticeThingMonth(){ + PracticeThingMonth(PracticePageState practicePageState) : super(practicePageState) { next(); } diff --git a/lib/pages/practice/thing/PracticeThingYear.dart b/lib/pages/practice/thing/PracticeThingYear.dart index 89cce3e..7e7c5f7 100644 --- a/lib/pages/practice/thing/PracticeThingYear.dart +++ b/lib/pages/practice/thing/PracticeThingYear.dart @@ -1,12 +1,13 @@ import 'package:flutter/material.dart'; import 'package:ohthatsa/pages/practice/PracticeAnswer.dart'; +import 'package:ohthatsa/pages/practice/PracticePage.dart'; import 'package:ohthatsa/pages/practice/thing/PracticeThing.dart'; import 'package:ohthatsa/util/DayCalculator.dart'; class PracticeThingYear extends PracticeThing { int current; - PracticeThingYear() { + PracticeThingYear(PracticePageState practicePageState) : super(practicePageState) { next(); }