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

---
 android/gradle.properties                     |  4 +--
 .../metadata/android/en-US/changelogs/27.txt  |  1 +
 .../metadata/android/fr-FR/changelogs/27.txt  |  1 +
 lib/config/default_game_settings.dart         |  4 ++-
 lib/config/default_global_settings.dart       |  4 ++-
 lib/cubit/game_cubit.dart                     |  3 +-
 lib/cubit/settings_game_cubit.dart            |  5 ++--
 lib/cubit/settings_global_cubit.dart          |  5 ++--
 lib/models/game.dart                          | 29 ++++++++++---------
 lib/models/game_board.dart                    |  9 +++---
 lib/models/settings_game.dart                 |  7 +++--
 lib/models/settings_global.dart               |  7 +++--
 lib/ui/painters/parameter_painter.dart        | 12 ++++----
 lib/utils/tools.dart                          |  7 +++++
 pubspec.lock                                  |  4 +--
 pubspec.yaml                                  |  2 +-
 16 files changed, 63 insertions(+), 41 deletions(-)
 create mode 100644 fastlane/metadata/android/en-US/changelogs/27.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/27.txt
 create mode 100644 lib/utils/tools.dart

diff --git a/android/gradle.properties b/android/gradle.properties
index f0fcf6c..408253c 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.26
-app.versionCode=26
+app.versionName=0.0.27
+app.versionCode=27
diff --git a/fastlane/metadata/android/en-US/changelogs/27.txt b/fastlane/metadata/android/en-US/changelogs/27.txt
new file mode 100644
index 0000000..52f2179
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/27.txt
@@ -0,0 +1 @@
+Avoid print calls in production code.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/27.txt b/fastlane/metadata/android/fr-FR/changelogs/27.txt
new file mode 100644
index 0000000..8537dac
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/27.txt
@@ -0,0 +1 @@
+Supprime les appels à print dans le code de production.
diff --git a/lib/config/default_game_settings.dart b/lib/config/default_game_settings.dart
index 3c7798b..f8426a7 100644
--- a/lib/config/default_game_settings.dart
+++ b/lib/config/default_game_settings.dart
@@ -1,3 +1,5 @@
+import 'package:jeweled/utils/tools.dart';
+
 class DefaultGameSettings {
   static const List<String> availableParameters = [
     'boardSize',
@@ -38,7 +40,7 @@ class DefaultGameSettings {
         return DefaultGameSettings.allowedColorsCountValues;
     }
 
-    print('Did not find any available value for game parameter "$parameterCode".');
+    printlog('Did not find any available value for game parameter "$parameterCode".');
     return [];
   }
 
diff --git a/lib/config/default_global_settings.dart b/lib/config/default_global_settings.dart
index e006915..28fac83 100644
--- a/lib/config/default_global_settings.dart
+++ b/lib/config/default_global_settings.dart
@@ -1,3 +1,5 @@
+import 'package:jeweled/utils/tools.dart';
+
 class DefaultGlobalSettings {
   static const List<String> availableParameters = [
     'colorsTheme',
@@ -60,7 +62,7 @@ class DefaultGlobalSettings {
         return DefaultGlobalSettings.allowedGraphicThemeValues;
     }
 
-    print('Did not find any available value for global parameter "$parameterCode".');
+    printlog('Did not find any available value for global parameter "$parameterCode".');
     return [];
   }
 }
diff --git a/lib/cubit/game_cubit.dart b/lib/cubit/game_cubit.dart
index c7d17e2..a0b81fd 100644
--- a/lib/cubit/game_cubit.dart
+++ b/lib/cubit/game_cubit.dart
@@ -7,6 +7,7 @@ import 'package:jeweled/models/game.dart';
 import 'package:jeweled/models/cell_location.dart';
 import 'package:jeweled/models/settings_game.dart';
 import 'package:jeweled/models/settings_global.dart';
+import 'package:jeweled/utils/tools.dart';
 
 part 'game_state.dart';
 
@@ -133,7 +134,7 @@ class GameCubit extends HydratedCubit<GameState> {
     refresh();
 
     if (!state.currentGame.hasAtLeastOneAvailableBlock()) {
-      print('no more block found. finish game.');
+      printlog('no more block found. finish game.');
       updateGameIsFinished(true);
     }
   }
diff --git a/lib/cubit/settings_game_cubit.dart b/lib/cubit/settings_game_cubit.dart
index d37412e..0aa8b0a 100644
--- a/lib/cubit/settings_game_cubit.dart
+++ b/lib/cubit/settings_game_cubit.dart
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
 import 'package:hydrated_bloc/hydrated_bloc.dart';
 
 import 'package:jeweled/models/settings_game.dart';
+import 'package:jeweled/utils/tools.dart';
 
 part 'settings_game_state.dart';
 
@@ -34,8 +35,8 @@ class GameSettingsCubit extends HydratedCubit<GameSettingsState> {
   }
 
   void setParameterValue(String code, int value) {
-    print('GameSettingsCubit.setParameterValue');
-    print('code: $code  / value: $value');
+    printlog('GameSettingsCubit.setParameterValue');
+    printlog('code: $code  / value: $value');
 
     int boardSize = code == 'boardSize' ? value : getParameterValue('boardSize');
     int colorsCount = code == 'colorsCount' ? value : getParameterValue('colorsCount');
diff --git a/lib/cubit/settings_global_cubit.dart b/lib/cubit/settings_global_cubit.dart
index 279406f..1813642 100644
--- a/lib/cubit/settings_global_cubit.dart
+++ b/lib/cubit/settings_global_cubit.dart
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
 import 'package:hydrated_bloc/hydrated_bloc.dart';
 
 import 'package:jeweled/models/settings_global.dart';
+import 'package:jeweled/utils/tools.dart';
 
 part 'settings_global_state.dart';
 
@@ -34,8 +35,8 @@ class GlobalSettingsCubit extends HydratedCubit<GlobalSettingsState> {
   }
 
   void setParameterValue(String code, int value) {
-    print('GlobalSettingsCubit.setParameterValue');
-    print('code: $code  / value: $value');
+    printlog('GlobalSettingsCubit.setParameterValue');
+    printlog('code: $code  / value: $value');
 
     int colorsTheme = code == 'colorsTheme' ? value : getParameterValue('colorsTheme');
     int graphicTheme = code == 'graphicTheme' ? value : getParameterValue('graphicTheme');
diff --git a/lib/models/game.dart b/lib/models/game.dart
index 8f41596..c302b35 100644
--- a/lib/models/game.dart
+++ b/lib/models/game.dart
@@ -7,6 +7,7 @@ import 'package:jeweled/models/cell_location.dart';
 import 'package:jeweled/models/settings_game.dart';
 import 'package:jeweled/models/settings_global.dart';
 import 'package:jeweled/utils/color_theme.dart';
+import 'package:jeweled/utils/tools.dart';
 
 class Game {
   final GameBoard board;
@@ -195,7 +196,7 @@ class Game {
       }
     }
 
-    print('Board is locked!');
+    printlog('Board is locked!');
     return false;
   }
 
@@ -269,22 +270,22 @@ class Game {
   }
 
   void dump() {
-    print('');
-    print('## Current game dump:');
-    print('');
+    printlog('');
+    printlog('## Current game dump:');
+    printlog('');
     gameSettings.dump();
     globalSettings.dump();
-    print('');
+    printlog('');
     board.dump();
-    print('');
-    print('Game: ');
-    print('  isRunning: $isRunning');
-    print('  isFinished: $isFinished');
-    print('  movesCount: $movesCount');
-    print('  score: $score');
-    print('  availableBlocksCount: $availableBlocksCount');
-    print('  shuffledColors: $shuffledColors');
-    print('');
+    printlog('');
+    printlog('Game: ');
+    printlog('  isRunning: $isRunning');
+    printlog('  isFinished: $isFinished');
+    printlog('  movesCount: $movesCount');
+    printlog('  score: $score');
+    printlog('  availableBlocksCount: $availableBlocksCount');
+    printlog('  shuffledColors: $shuffledColors');
+    printlog('');
   }
 
   @override
diff --git a/lib/models/game_board.dart b/lib/models/game_board.dart
index ee0ffff..f30f306 100644
--- a/lib/models/game_board.dart
+++ b/lib/models/game_board.dart
@@ -2,6 +2,7 @@ import 'dart:math';
 
 import 'package:jeweled/models/game_cell.dart';
 import 'package:jeweled/models/settings_game.dart';
+import 'package:jeweled/utils/tools.dart';
 
 class GameBoard {
   final List<List<GameCell>> cells;
@@ -42,8 +43,8 @@ class GameBoard {
       horizontalRule += '-';
     }
 
-    print('Board:');
-    print(horizontalRule);
+    printlog('Board:');
+    printlog(horizontalRule);
 
     for (int rowIndex = 0; rowIndex < cells.length; rowIndex++) {
       String row = '| ';
@@ -52,10 +53,10 @@ class GameBoard {
       }
       row += ' |';
 
-      print(row);
+      printlog(row);
     }
 
-    print(horizontalRule);
+    printlog(horizontalRule);
   }
 
   @override
diff --git a/lib/models/settings_game.dart b/lib/models/settings_game.dart
index 46182a5..39cdebf 100644
--- a/lib/models/settings_game.dart
+++ b/lib/models/settings_game.dart
@@ -1,4 +1,5 @@
 import 'package:jeweled/config/default_game_settings.dart';
+import 'package:jeweled/utils/tools.dart';
 
 class GameSettings {
   final int boardSize;
@@ -33,9 +34,9 @@ class GameSettings {
   }
 
   void dump() {
-    print('Settings: ');
-    print('  boardSize: $boardSize');
-    print('  colorsCount: $colorsCount');
+    printlog('Settings: ');
+    printlog('  boardSize: $boardSize');
+    printlog('  colorsCount: $colorsCount');
   }
 
   @override
diff --git a/lib/models/settings_global.dart b/lib/models/settings_global.dart
index 8dd4989..231917c 100644
--- a/lib/models/settings_global.dart
+++ b/lib/models/settings_global.dart
@@ -1,4 +1,5 @@
 import 'package:jeweled/config/default_global_settings.dart';
+import 'package:jeweled/utils/tools.dart';
 
 class GlobalSettings {
   final int colorsTheme;
@@ -33,9 +34,9 @@ class GlobalSettings {
   }
 
   void dump() {
-    print('Settings: ');
-    print('  colorsTheme: $colorsTheme');
-    print('  graphicTheme: $graphicTheme');
+    printlog('Settings: ');
+    printlog('  colorsTheme: $colorsTheme');
+    printlog('  graphicTheme: $graphicTheme');
   }
 
   @override
diff --git a/lib/ui/painters/parameter_painter.dart b/lib/ui/painters/parameter_painter.dart
index c7a6e13..5e4a952 100644
--- a/lib/ui/painters/parameter_painter.dart
+++ b/lib/ui/painters/parameter_painter.dart
@@ -9,6 +9,7 @@ import 'package:jeweled/models/settings_game.dart';
 import 'package:jeweled/models/settings_global.dart';
 import 'package:jeweled/utils/color_extensions.dart';
 import 'package:jeweled/utils/color_theme.dart';
+import 'package:jeweled/utils/tools.dart';
 
 class ParameterPainter extends CustomPainter {
   const ParameterPainter({
@@ -39,7 +40,8 @@ class ParameterPainter extends CustomPainter {
     paint.color = isSelected ? borderColorEnabled : borderColorDisabled;
     paint.strokeJoin = StrokeJoin.round;
     paint.strokeWidth = 20 / 100 * canvasSize;
-    canvas.drawRect(Rect.fromPoints(const Offset(0, 0), Offset(canvasSize, canvasSize)), paint);
+    canvas.drawRect(
+        Rect.fromPoints(const Offset(0, 0), Offset(canvasSize, canvasSize)), paint);
 
     // content
     switch (code) {
@@ -56,7 +58,7 @@ class ParameterPainter extends CustomPainter {
         paintGraphicThemeParameterItem(value, canvas, canvasSize);
         break;
       default:
-        print('Unknown parameter: $code/$value');
+        printlog('Unknown parameter: $code/$value');
         paintUnknownParameterItem(value, canvas, canvasSize);
     }
   }
@@ -128,7 +130,7 @@ class ParameterPainter extends CustomPainter {
         gridWidth = 5;
         break;
       default:
-        print('Wrong value for boardSize parameter value: $value');
+        printlog('Wrong value for boardSize parameter value: $value');
     }
 
     final paint = Paint();
@@ -186,7 +188,7 @@ class ParameterPainter extends CustomPainter {
         backgroundColor = Colors.purple;
         break;
       default:
-        print('Wrong value for colorsCount parameter value: $value');
+        printlog('Wrong value for colorsCount parameter value: $value');
     }
 
     final paint = Paint();
@@ -347,7 +349,7 @@ class ParameterPainter extends CustomPainter {
         contentStrings = DefaultGlobalSettings.graphicThemeContentPatternStrings;
         break;
       default:
-        print('Wrong value for colorsCount parameter value: $value');
+        printlog('Wrong value for colorsCount parameter value: $value');
     }
 
     for (int itemValue = 0; itemValue < positions.length; itemValue++) {
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 13f00d7..50bc107 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -252,10 +252,10 @@ packages:
     dependency: transitive
     description:
       name: provider
-      sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096"
+      sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
       url: "https://pub.dev"
     source: hosted
-    version: "6.1.1"
+    version: "6.1.2"
   shared_preferences:
     dependency: transitive
     description:
diff --git a/pubspec.yaml b/pubspec.yaml
index e85d05a..d8fb795 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Jeweled Game
 
 publish_to: 'none'
 
-version: 0.0.26+26
+version: 0.0.27+27
 
 environment:
   sdk: '^3.0.0'
-- 
GitLab