From 0fe6c59f66578298e6e98f471379cdf61da5bf4a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Thu, 16 Jun 2022 09:21:05 +0200
Subject: [PATCH] Disable and do not count move if no change in board

---
 android/gradle.properties  | 4 ++--
 lib/entities/cell.dart     | 2 +-
 lib/provider/data.dart     | 4 ++++
 lib/utils/board_utils.dart | 5 ++++-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/android/gradle.properties b/android/gradle.properties
index 957c40b..777ac2d 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.15
-app.versionCode=15
+app.versionName=0.0.16
+app.versionCode=16
diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart
index db64fe3..e284b70 100644
--- a/lib/entities/cell.dart
+++ b/lib/entities/cell.dart
@@ -39,7 +39,7 @@ class Cell {
           fit: BoxFit.fill
         ),
         onTap: () {
-          if (!myProvider.animationInProgress) {
+          if (!myProvider.animationInProgress && myProvider.getFirstCellValue() != this.value) {
             BoardUtils.fillBoardFromFirstCell(myProvider, this.value);
           }
         },
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index fcb9770..bc47c16 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -179,6 +179,10 @@ class Data extends ChangeNotifier {
     notifyListeners();
   }
 
+  int getFirstCellValue() {
+    return _cells[0][0].value;
+  }
+
   int get movesCount => _movesCount;
   void updateMovesCount(int movesCount) {
     _movesCount = movesCount;
diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart
index b91858c..85aab40 100644
--- a/lib/utils/board_utils.dart
+++ b/lib/utils/board_utils.dart
@@ -81,7 +81,10 @@ class BoardUtils {
           myProvider.updateProgressDelta(progressDelta);
           myProvider.updateProgress(progressAfterMove);
 
-          myProvider.incrementMovesCount();
+          if (progressDelta != 0) {
+            myProvider.incrementMovesCount();
+          }
+
           myProvider.updateAnimationInProgress(false);
 
           if (BoardUtils.checkBoardIsSolved(myProvider)) {
-- 
GitLab