From 945360e0e2b28922c8134c25d184b3da0af8790d Mon Sep 17 00:00:00 2001 From: BroodjeAap Date: Tue, 3 Nov 2020 20:03:49 +0100 Subject: [PATCH] More generalised practice stuff --- lib/pages/practice/PracticeAnswer.dart | 10 ++++++++++ lib/pages/practice/PracticePage.dart | 13 +++++++++++-- lib/pages/practice/PracticeSetup.dart | 5 ++++- lib/pages/practice/PracticeSetupPage.dart | 3 ++- lib/pages/practice/PracticeThingMonth.dart | 19 +++++++++++-------- lib/pages/practice/PracticeType.dart | 6 ++++++ .../practice/month/MonthPracticeAnswer.dart | 8 -------- 7 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 lib/pages/practice/PracticeAnswer.dart create mode 100644 lib/pages/practice/PracticeType.dart delete mode 100644 lib/pages/practice/month/MonthPracticeAnswer.dart diff --git a/lib/pages/practice/PracticeAnswer.dart b/lib/pages/practice/PracticeAnswer.dart new file mode 100644 index 0000000..412abc3 --- /dev/null +++ b/lib/pages/practice/PracticeAnswer.dart @@ -0,0 +1,10 @@ +import 'package:ohthatsa/pages/practice/PracticeType.dart'; +import 'package:ohthatsa/util/Months.dart'; + +class PracticeAnswer { + final int question; + final int answer; + final PracticeType practiceType; + + PracticeAnswer(this.question, this.answer, this.practiceType); +} \ No newline at end of file diff --git a/lib/pages/practice/PracticePage.dart b/lib/pages/practice/PracticePage.dart index b867626..160e8cb 100644 --- a/lib/pages/practice/PracticePage.dart +++ b/lib/pages/practice/PracticePage.dart @@ -3,9 +3,10 @@ import 'package:ohthatsa/pages/practice/PracticeSetup.dart'; import 'package:ohthatsa/pages/practice/PracticeThing.dart'; import 'package:ohthatsa/pages/practice/PracticeThingMonth.dart'; import 'package:ohthatsa/AppDrawer.dart'; +import 'package:ohthatsa/pages/practice/PracticeType.dart'; import 'package:ohthatsa/util/Extensions.dart'; -import 'month/MonthPracticeAnswer.dart'; +import 'PracticeAnswer.dart'; class PracticePage extends StatefulWidget { final PracticeSetup practiceSetup; @@ -28,7 +29,15 @@ class _PracticeState extends State { _PracticeState(PracticeSetup practiceSetup){ this._startCount = practiceSetup.count; this._showCorrect = practiceSetup.showCorrect; - this.practiceThing = PracticeThingMonth(); + switch(practiceSetup.practiceType){ + case (PracticeType.month): { + this.practiceThing = PracticeThingMonth(); + break; + } + default: { + // + } + } } Widget getAnswerRow(){ diff --git a/lib/pages/practice/PracticeSetup.dart b/lib/pages/practice/PracticeSetup.dart index 2616c1e..31a072c 100644 --- a/lib/pages/practice/PracticeSetup.dart +++ b/lib/pages/practice/PracticeSetup.dart @@ -1,6 +1,9 @@ +import 'package:ohthatsa/pages/practice/PracticeType.dart'; + class PracticeSetup { final int count; final bool showCorrect; + final PracticeType practiceType; - PracticeSetup(this.count, this.showCorrect); + PracticeSetup(this.count, this.showCorrect, this.practiceType); } \ No newline at end of file diff --git a/lib/pages/practice/PracticeSetupPage.dart b/lib/pages/practice/PracticeSetupPage.dart index 11b9d9c..2ddbbdf 100644 --- a/lib/pages/practice/PracticeSetupPage.dart +++ b/lib/pages/practice/PracticeSetupPage.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:numberpicker/numberpicker.dart'; import 'package:ohthatsa/AppDrawer.dart'; import 'package:ohthatsa/pages/practice/PracticeSetup.dart'; +import 'package:ohthatsa/pages/practice/PracticeType.dart'; class PracticeSetupPage extends StatefulWidget { @override @@ -77,7 +78,7 @@ class _PracticeSetupState extends State { Navigator.pushNamed( context, '/practice/month/practice', - arguments: PracticeSetup(_count, _showCorrect) + arguments: PracticeSetup(_count, _showCorrect, PracticeType.month) ); }, ), diff --git a/lib/pages/practice/PracticeThingMonth.dart b/lib/pages/practice/PracticeThingMonth.dart index 1a93442..d6a7f26 100644 --- a/lib/pages/practice/PracticeThingMonth.dart +++ b/lib/pages/practice/PracticeThingMonth.dart @@ -2,12 +2,13 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:ohthatsa/pages/practice/PracticeThing.dart'; -import 'package:ohthatsa/pages/practice/month/MonthPracticeAnswer.dart'; +import 'package:ohthatsa/pages/practice/PracticeType.dart'; +import 'file:///D:/dev/projects/ohthatsa/lib/pages/practice/PracticeAnswer.dart'; import 'package:ohthatsa/util/Months.dart'; class PracticeThingMonth extends PracticeThing { final random = Random(); - final List answers = new List(); + final List answers = new List(); Month current; PracticeThingMonth(){ @@ -15,7 +16,7 @@ class PracticeThingMonth extends PracticeThing { } @override bool answer(int answer) { - answers.add(MonthPracticeAnswer(current, answer)); + answers.add(PracticeAnswer(current.i, answer, PracticeType.month)); return current.value == answer; } @@ -25,7 +26,7 @@ class PracticeThingMonth extends PracticeThing { } List getBoolAnswers(){ - return answers.map((answer) => answer.month.value == answer.answer).toList(); + return answers.map((answer) => Months.getFromInt(answer.question).value == answer.answer).toList(); } Text getAppBarTitleText(){ @@ -46,8 +47,9 @@ class PracticeThingMonth extends PracticeThing { Color color = Colors.red; if(answers.length >= 1){ final answer = answers[answers.length - 1]; - text = answer.month.toString() + (showCorrect ? ": ${answer.month.value}" : ""); - if(answer.month.value == answer.answer){ + final month = Months.getFromInt(answer.question); + text = month.toString() + (showCorrect ? ": ${month.value}" : ""); + if(month.value == answer.answer){ color = Colors.green; } } @@ -64,8 +66,9 @@ class PracticeThingMonth extends PracticeThing { Color color = Colors.red; if(answers.length >= 2){ final answer = answers[answers.length - 2]; - text = answer.month.toString() + (showCorrect ? ": ${answer.month.value}" : ""); - if(answer.month.value == answer.answer){ + final month = Months.getFromInt(answer.question); + text = month.toString() + (showCorrect ? ": ${month.value}" : ""); + if(month.value == answer.answer){ color = Colors.green; } } diff --git a/lib/pages/practice/PracticeType.dart b/lib/pages/practice/PracticeType.dart new file mode 100644 index 0000000..8834081 --- /dev/null +++ b/lib/pages/practice/PracticeType.dart @@ -0,0 +1,6 @@ +enum PracticeType { + month, + century, + year, + all +} \ No newline at end of file diff --git a/lib/pages/practice/month/MonthPracticeAnswer.dart b/lib/pages/practice/month/MonthPracticeAnswer.dart deleted file mode 100644 index baa2de6..0000000 --- a/lib/pages/practice/month/MonthPracticeAnswer.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:ohthatsa/util/Months.dart'; - -class MonthPracticeAnswer { - final Month month; - final int answer; - - MonthPracticeAnswer(this.month, this.answer); -} \ No newline at end of file