From 3c1d228010a67624b71834aebaa4880b98542cdb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Wed, 28 Feb 2024 15:30:47 +0100
Subject: [PATCH] Avoid print calls in production code

---
 android/gradle.properties                         |  4 ++--
 fastlane/metadata/android/en-US/changelogs/36.txt |  1 +
 fastlane/metadata/android/fr-FR/changelogs/36.txt |  1 +
 lib/utils/board_utils.dart                        | 15 ++++++++-------
 lib/utils/game_utils.dart                         |  5 +++--
 lib/utils/tools.dart                              |  7 +++++++
 pubspec.lock                                      |  4 ++--
 pubspec.yaml                                      |  2 +-
 8 files changed, 25 insertions(+), 14 deletions(-)
 create mode 100644 fastlane/metadata/android/en-US/changelogs/36.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/36.txt
 create mode 100644 lib/utils/tools.dart

diff --git a/android/gradle.properties b/android/gradle.properties
index 5d62823..d80a439 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.1.14
-app.versionCode=35
+app.versionName=0.1.15
+app.versionCode=36
diff --git a/fastlane/metadata/android/en-US/changelogs/36.txt b/fastlane/metadata/android/en-US/changelogs/36.txt
new file mode 100644
index 0000000..52f2179
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/36.txt
@@ -0,0 +1 @@
+Avoid print calls in production code.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/36.txt b/fastlane/metadata/android/fr-FR/changelogs/36.txt
new file mode 100644
index 0000000..8537dac
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/36.txt
@@ -0,0 +1 @@
+Supprime les appels à print dans le code de production.
diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart
index c0300ad..de04d07 100644
--- a/lib/utils/board_utils.dart
+++ b/lib/utils/board_utils.dart
@@ -2,6 +2,7 @@ import 'dart:math';
 
 import 'package:minehunter/entities/cell.dart';
 import 'package:minehunter/provider/data.dart';
+import 'package:minehunter/utils/tools.dart';
 
 class BoardUtils {
   static printGrid(List cells) {
@@ -13,12 +14,12 @@ class BoardUtils {
     const String exploredSafeCell = '.';
     const String unkownState = ' ';
 
-    print('');
+    printlog('');
     String line = '--';
     for (int i = 0; i < cells[0].length; i++) {
       line += '-';
     }
-    print('$line  $line');
+    printlog('$line  $line');
     for (int rowIndex = 0; rowIndex < cells.length; rowIndex++) {
       String currentLine = '';
       String solvedLine = '';
@@ -38,10 +39,10 @@ class BoardUtils {
         }
         currentLine += cellString;
       }
-      print('|$currentLine|  |$solvedLine|');
+      printlog('|$currentLine|  |$solvedLine|');
     }
-    print('$line  $line');
-    print('');
+    printlog('$line  $line');
+    printlog('');
   }
 
   static List<List<Cell>> createEmptyBoard(int sizeHorizontal, int sizeVertical) {
@@ -84,7 +85,7 @@ class BoardUtils {
 
     final int minesCount = ((sizeHorizontal * sizeVertical) * minesCountRatio / 100).round();
 
-    print('Mines count: $minesCount');
+    printlog('Mines count: $minesCount');
 
     return minesCount;
   }
@@ -255,7 +256,7 @@ class BoardUtils {
       }
     }
 
-    print('-> ok all mines found!');
+    printlog('-> ok all mines found!');
     myProvider.updateGameWin(true);
 
     return true;
diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart
index 03ea28f..42bc51a 100644
--- a/lib/utils/game_utils.dart
+++ b/lib/utils/game_utils.dart
@@ -1,6 +1,7 @@
 import 'package:minehunter/provider/data.dart';
 import 'package:minehunter/utils/board_animate.dart';
 import 'package:minehunter/utils/board_utils.dart';
+import 'package:minehunter/utils/tools.dart';
 
 class GameUtils {
   static Future<void> quitGame(Data myProvider) async {
@@ -11,7 +12,7 @@ class GameUtils {
   }
 
   static void startNewGame(Data myProvider) {
-    print('Starting game: ${myProvider.parameterSize} - ${myProvider.parameterLevel}');
+    printlog('Starting game: ${myProvider.parameterSize} - ${myProvider.parameterLevel}');
     myProvider.updateParameterSize(myProvider.parameterSize);
     myProvider.updateMinesCount(BoardUtils.getMinesCount(
         myProvider.sizeHorizontal, myProvider.sizeVertical, myProvider.parameterLevel));
@@ -36,7 +37,7 @@ class GameUtils {
             BoardUtils.createBoardFromSavedState(myProvider, savedState['board']));
         myProvider.updateGameIsRunning(true);
       } catch (e) {
-        print('Failed to resume game. Will start new one instead.');
+        printlog('Failed to resume game. Will start new one instead.');
         myProvider.resetCurrentSavedState();
         myProvider.initParametersValues();
         startNewGame(myProvider);
diff --git a/lib/utils/tools.dart b/lib/utils/tools.dart
new file mode 100644
index 0000000..fd48b2b
--- /dev/null
+++ b/lib/utils/tools.dart
@@ -0,0 +1,7 @@
+import 'package:flutter/foundation.dart';
+
+void printlog(String message) {
+  if (!kReleaseMode) {
+    debugPrint(message);
+  }
+}
diff --git a/pubspec.lock b/pubspec.lock
index 394474f..6b1fdfe 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -151,10 +151,10 @@ packages:
     dependency: "direct main"
     description:
       name: provider
-      sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096"
+      sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
       url: "https://pub.dev"
     source: hosted
-    version: "6.1.1"
+    version: "6.1.2"
   shared_preferences:
     dependency: "direct main"
     description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 8efddc3..e2e45e6 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,7 +1,7 @@
 name: minehunter
 description: A minehunter game application.
 publish_to: 'none'
-version: 0.1.14+35
+version: 0.1.15+36
 
 environment:
   sdk: '^3.0.0'
-- 
GitLab