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
No related branches found
No related tags found
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