From 6d0645ca26dfa72939d4042409a3f493b3480076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Mon, 19 Jul 2021 15:53:56 +0200 Subject: [PATCH] Add a tips counter on game screen --- android/gradle.properties | 4 ++-- .../metadata/android/en-US/changelogs/37.txt | 1 + .../metadata/android/fr-FR/changelogs/37.txt | 1 + lib/provider/data.dart | 11 +++++++++ lib/screens/home.dart | 24 +++++++++++++++---- lib/utils/game_utils.dart | 2 ++ pubspec.lock | 7 ++++++ pubspec.yaml | 1 + 8 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/37.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/37.txt diff --git a/android/gradle.properties b/android/gradle.properties index 1f1e18f..9b5bace 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=0.0.36 -app.versionCode=36 +app.versionName=0.0.37 +app.versionCode=37 diff --git a/fastlane/metadata/android/en-US/changelogs/37.txt b/fastlane/metadata/android/en-US/changelogs/37.txt new file mode 100644 index 0000000..18b9d3f --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/37.txt @@ -0,0 +1 @@ +Add a tips counter on game diff --git a/fastlane/metadata/android/fr-FR/changelogs/37.txt b/fastlane/metadata/android/fr-FR/changelogs/37.txt new file mode 100644 index 0000000..f2becf8 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/37.txt @@ -0,0 +1 @@ +Ajout d'un compteur de coups de pouce diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 577df48..e2881e9 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -25,6 +25,7 @@ class Data extends ChangeNotifier { int _currentCellCol = null; int _currentCellRow = null; int _currentCellValue = null; + int _givenTipsCount = 0; String get level => _level; set updateLevel(String level) { @@ -111,6 +112,16 @@ class Data extends ChangeNotifier { notifyListeners(); } + int get givenTipsCount => _givenTipsCount; + increaseGivenTipsCount() { + _givenTipsCount = _givenTipsCount + 1; + notifyListeners(); + } + resetGivenTipsCount() { + _givenTipsCount = 0; + notifyListeners(); + } + selectCell(int col, int row) { _currentCellCol = col; _currentCellRow = row; diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 8f76286..8eca130 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:badges/badges.dart'; import '../layout/game.dart'; import '../layout/parameters.dart'; @@ -27,10 +28,25 @@ class Home extends StatelessWidget { ), ), margin: EdgeInsets.all(8), - child: Image( - image: AssetImage('assets/icons/button_help.png'), - fit: BoxFit.fill - ), + child: Badge( + showBadge: myProvider.givenTipsCount == 0 ? false : true, + badgeColor: + myProvider.givenTipsCount < 10 + ? Colors.green + : myProvider.givenTipsCount < 20 + ? Colors.orange + : Colors.red, + badgeContent: Text( + myProvider.givenTipsCount == 0 ? '' : myProvider.givenTipsCount.toString(), + style: TextStyle( + color: Colors.white + ) + ), + child: Image( + image: AssetImage('assets/icons/button_help.png'), + fit: BoxFit.fill + ), + ) ), onPressed: () => GameUtils.showTip(myProvider), ), diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart index ef43797..335258b 100644 --- a/lib/utils/game_utils.dart +++ b/lib/utils/game_utils.dart @@ -11,6 +11,7 @@ class GameUtils { static Future<void> startGame(Data myProvider) async { myProvider.updateSize = myProvider.size; myProvider.updateStateRunning = true; + myProvider.resetGivenTipsCount(); myProvider.updateCells = BoardUtils.createEmptyBoard(myProvider.blockSizeHorizontal * myProvider.blockSizeVertical); BoardUtils.pickGrid(myProvider); } @@ -23,6 +24,7 @@ class GameUtils { // currently selected cell -> set value GameUtils.helpFillCell(myProvider); } + myProvider.increaseGivenTipsCount(); } static void helpSelectCell(Data myProvider) { diff --git a/pubspec.lock b/pubspec.lock index f57afd8..0d88ec6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -8,6 +8,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.7.0" + badges: + dependency: "direct main" + description: + name: badges + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" boolean_selector: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 00a80e8..3823b90 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,6 +10,7 @@ dependencies: flutter: sdk: flutter provider: ^5.0.0 + badges: ^2.0.1 dev_dependencies: flutter_test: -- GitLab