From 2277ffbd4db8701dc51b74ce208a8794f9c7b525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Sun, 18 Apr 2021 22:00:01 +0200 Subject: [PATCH] Disallow multiple simultaneous minigames countdowns --- android/gradle.properties | 4 ++-- lib/provider/data.dart | 10 +++++----- lib/screens/home.dart | 26 ++++++++++++++------------ pubspec.lock | 4 ++-- 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index ad752d3..d0bb1da 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=1.2.2 -app.versionCode=8 +app.versionName=1.2.3 +app.versionCode=9 diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 1c709ad..c482f51 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -7,7 +7,7 @@ class Data extends ChangeNotifier { bool _searchingLetter = false; String _category = ''; String _letter = ''; - int _timer = 0; + int _countdown = 0; bool get searchingCategory => _searchingCategory; @@ -37,17 +37,17 @@ class Data extends ChangeNotifier { notifyListeners(); } - int get timer => _timer; + int get countdown => _countdown; - set updateTimer(int value) { - _timer = value; + set updateCountdown(int value) { + _countdown = value; notifyListeners(); } void resetGame() { _category = ''; _letter = ''; - _timer = 0; + _countdown = 0; notifyListeners(); } } diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 5da13a0..68451e7 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -14,29 +14,31 @@ class Home extends StatelessWidget { String _randomLetter = ''; String _randomCategory = ''; Timer _timer; - int _timerStart = 10; + int _countdownStart = 10; Future<void> startMiniGame(BuildContext context, Data myProvider) async { - pickCategory(context, myProvider); - pickLetter(context, myProvider); - startTimer(context, myProvider); + if (myProvider.countdown == 0) { + pickCategory(context, myProvider); + pickLetter(context, myProvider); + startTimer(context, myProvider); + } } Future<void> startTimer(BuildContext context, Data myProvider) async { const oneSec = const Duration(seconds: 1); if (_timer != null) { - _timer.cancel(); + dispose(); } - _timerStart = 10; - myProvider.updateTimer = _timerStart; + _countdownStart = 10; + myProvider.updateCountdown = _countdownStart; _timer = new Timer.periodic( oneSec, (Timer timer) { - if (_timerStart == 0) { + if (_countdownStart == 0) { timer.cancel(); } else { - _timerStart--; - myProvider.updateTimer = _timerStart; + _countdownStart--; + myProvider.updateCountdown = _countdownStart; } }, ); @@ -138,14 +140,14 @@ class Home extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ FlatButton( - onPressed: () => startMiniGame(context, _myProvider), + onPressed: (_myProvider.countdown != 0) ? null : () => startMiniGame(context, _myProvider), color: Colors.blue, padding: EdgeInsets.all(10.0), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text( - _myProvider.timer.toString(), + _myProvider.countdown.toString(), style: Theme.of(context).textTheme.headline2, ), ], diff --git a/pubspec.lock b/pubspec.lock index 48d7003..8e20142 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -141,7 +141,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.19" + version: "0.3.0" typed_data: dependency: transitive description: @@ -157,5 +157,5 @@ packages: source: hosted version: "2.1.0" sdks: - dart: ">=2.12.0-0.0 <3.0.0" + dart: ">=2.12.0 <3.0.0" flutter: ">=1.16.0" -- GitLab