Skip to content
Snippets Groups Projects
Commit 2277ffbd authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Disallow multiple simultaneous minigames countdowns

parent 47a4ce6c
Branches
Tags
1 merge request!11Resolve "Fix timer on multiple simultaneous mini games"
Pipeline #936 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=1.2.2 app.versionName=1.2.3
app.versionCode=8 app.versionCode=9
...@@ -7,7 +7,7 @@ class Data extends ChangeNotifier { ...@@ -7,7 +7,7 @@ class Data extends ChangeNotifier {
bool _searchingLetter = false; bool _searchingLetter = false;
String _category = ''; String _category = '';
String _letter = ''; String _letter = '';
int _timer = 0; int _countdown = 0;
bool get searchingCategory => _searchingCategory; bool get searchingCategory => _searchingCategory;
...@@ -37,17 +37,17 @@ class Data extends ChangeNotifier { ...@@ -37,17 +37,17 @@ class Data extends ChangeNotifier {
notifyListeners(); notifyListeners();
} }
int get timer => _timer; int get countdown => _countdown;
set updateTimer(int value) { set updateCountdown(int value) {
_timer = value; _countdown = value;
notifyListeners(); notifyListeners();
} }
void resetGame() { void resetGame() {
_category = ''; _category = '';
_letter = ''; _letter = '';
_timer = 0; _countdown = 0;
notifyListeners(); notifyListeners();
} }
} }
...@@ -14,29 +14,31 @@ class Home extends StatelessWidget { ...@@ -14,29 +14,31 @@ class Home extends StatelessWidget {
String _randomLetter = ''; String _randomLetter = '';
String _randomCategory = ''; String _randomCategory = '';
Timer _timer; Timer _timer;
int _timerStart = 10; int _countdownStart = 10;
Future<void> startMiniGame(BuildContext context, Data myProvider) async { Future<void> startMiniGame(BuildContext context, Data myProvider) async {
if (myProvider.countdown == 0) {
pickCategory(context, myProvider); pickCategory(context, myProvider);
pickLetter(context, myProvider); pickLetter(context, myProvider);
startTimer(context, myProvider); startTimer(context, myProvider);
} }
}
Future<void> startTimer(BuildContext context, Data myProvider) async { Future<void> startTimer(BuildContext context, Data myProvider) async {
const oneSec = const Duration(seconds: 1); const oneSec = const Duration(seconds: 1);
if (_timer != null) { if (_timer != null) {
_timer.cancel(); dispose();
} }
_timerStart = 10; _countdownStart = 10;
myProvider.updateTimer = _timerStart; myProvider.updateCountdown = _countdownStart;
_timer = new Timer.periodic( _timer = new Timer.periodic(
oneSec, oneSec,
(Timer timer) { (Timer timer) {
if (_timerStart == 0) { if (_countdownStart == 0) {
timer.cancel(); timer.cancel();
} else { } else {
_timerStart--; _countdownStart--;
myProvider.updateTimer = _timerStart; myProvider.updateCountdown = _countdownStart;
} }
}, },
); );
...@@ -138,14 +140,14 @@ class Home extends StatelessWidget { ...@@ -138,14 +140,14 @@ class Home extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
FlatButton( FlatButton(
onPressed: () => startMiniGame(context, _myProvider), onPressed: (_myProvider.countdown != 0) ? null : () => startMiniGame(context, _myProvider),
color: Colors.blue, color: Colors.blue,
padding: EdgeInsets.all(10.0), padding: EdgeInsets.all(10.0),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Text( Text(
_myProvider.timer.toString(), _myProvider.countdown.toString(),
style: Theme.of(context).textTheme.headline2, style: Theme.of(context).textTheme.headline2,
), ),
], ],
......
...@@ -141,7 +141,7 @@ packages: ...@@ -141,7 +141,7 @@ packages:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.19" version: "0.3.0"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
...@@ -157,5 +157,5 @@ packages: ...@@ -157,5 +157,5 @@ packages:
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
sdks: sdks:
dart: ">=2.12.0-0.0 <3.0.0" dart: ">=2.12.0 <3.0.0"
flutter: ">=1.16.0" flutter: ">=1.16.0"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment