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

---
 android/gradle.properties                         |  4 ++--
 fastlane/metadata/android/en-US/changelogs/28.txt |  1 +
 fastlane/metadata/android/fr-FR/changelogs/28.txt |  1 +
 lib/layout/board.dart                             |  4 ++--
 lib/layout/game.dart                              |  8 ++++----
 lib/layout/keyboard.dart                          |  4 ++--
 lib/layout/parameters.dart                        |  4 ++--
 lib/main.dart                                     |  4 ++--
 lib/provider/data.dart                            |  4 +++-
 lib/screens/home.dart                             |  8 ++++----
 lib/utils/game_utils.dart                         | 14 ++++++++------
 lib/utils/random_pick_word.dart                   | 12 +++++++-----
 lib/utils/tools.dart                              |  7 +++++++
 pubspec.lock                                      |  4 ++--
 pubspec.yaml                                      |  2 +-
 15 files changed, 48 insertions(+), 33 deletions(-)
 create mode 100644 fastlane/metadata/android/en-US/changelogs/28.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/28.txt
 create mode 100644 lib/utils/tools.dart

diff --git a/android/gradle.properties b/android/gradle.properties
index 408253c..e644338 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.27
-app.versionCode=27
+app.versionName=0.0.28
+app.versionCode=28
diff --git a/fastlane/metadata/android/en-US/changelogs/28.txt b/fastlane/metadata/android/en-US/changelogs/28.txt
new file mode 100644
index 0000000..52f2179
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/28.txt
@@ -0,0 +1 @@
+Avoid print calls in production code.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/28.txt b/fastlane/metadata/android/fr-FR/changelogs/28.txt
new file mode 100644
index 0000000..8537dac
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/28.txt
@@ -0,0 +1 @@
+Supprime les appels à print dans le code de production.
diff --git a/lib/layout/board.dart b/lib/layout/board.dart
index bbec931..6406c46 100644
--- a/lib/layout/board.dart
+++ b/lib/layout/board.dart
@@ -1,7 +1,7 @@
 import 'package:flutter/material.dart';
 
-import '../provider/data.dart';
-import '../utils/game_utils.dart';
+import 'package:momomotus/provider/data.dart';
+import 'package:momomotus/utils/game_utils.dart';
 
 class Board {
   static Container buildGameBoard(Data myProvider) {
diff --git a/lib/layout/game.dart b/lib/layout/game.dart
index 4110e26..a1b1136 100644
--- a/lib/layout/game.dart
+++ b/lib/layout/game.dart
@@ -1,9 +1,9 @@
 import 'package:flutter/material.dart';
 
-import '../layout/board.dart';
-import '../layout/keyboard.dart';
-import '../provider/data.dart';
-import '../utils/game_utils.dart';
+import 'package:momomotus/layout/board.dart';
+import 'package:momomotus/layout/keyboard.dart';
+import 'package:momomotus/provider/data.dart';
+import 'package:momomotus/utils/game_utils.dart';
 
 class Game {
   static Widget buildGameWidget(Data myProvider) {
diff --git a/lib/layout/keyboard.dart b/lib/layout/keyboard.dart
index c68931d..6476e51 100644
--- a/lib/layout/keyboard.dart
+++ b/lib/layout/keyboard.dart
@@ -1,7 +1,7 @@
 import 'package:flutter/material.dart';
 
-import '../provider/data.dart';
-import '../utils/game_utils.dart';
+import 'package:momomotus/provider/data.dart';
+import 'package:momomotus/utils/game_utils.dart';
 
 class Keyboard {
   static Container buildWidget(Data myProvider) {
diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart
index cfee155..d8fb008 100644
--- a/lib/layout/parameters.dart
+++ b/lib/layout/parameters.dart
@@ -1,7 +1,7 @@
 import 'package:flutter/material.dart';
 
-import '../provider/data.dart';
-import '../utils/game_utils.dart';
+import 'package:momomotus/provider/data.dart';
+import 'package:momomotus/utils/game_utils.dart';
 
 class Parameters {
   static Container buildParametersSelector(Data myProvider) {
diff --git a/lib/main.dart b/lib/main.dart
index f6256a8..fa8a410 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -3,8 +3,8 @@ import 'package:flutter/services.dart';
 import 'package:provider/provider.dart';
 import 'package:overlay_support/overlay_support.dart';
 
-import 'provider/data.dart';
-import 'screens/home.dart';
+import 'package:momomotus/provider/data.dart';
+import 'package:momomotus/screens/home.dart';
 
 void main() {
   WidgetsFlutterBinding.ensureInitialized();
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index 689e514..3ae4a94 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -1,6 +1,8 @@
 import 'package:flutter/foundation.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 
+import 'package:momomotus/utils/tools.dart';
+
 class Data extends ChangeNotifier {
   // Configuration available values
   final List _availableLangValues = ['fr'];
@@ -78,7 +80,7 @@ class Data extends ChangeNotifier {
   void currentGuessSubmitWord() {
     if (_currentGuess.length == int.parse(_length)) {
       if (_currentGuess == _word) {
-        print('Word found!');
+        printlog('Word found!');
         _foundWord = true;
       }
       addGuess(_currentGuess);
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index a01f559..ffaac00 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 import 'package:overlay_support/overlay_support.dart';
 
-import '../layout/game.dart';
-import '../layout/parameters.dart';
-import '../provider/data.dart';
-import '../utils/game_utils.dart';
+import 'package:momomotus/layout/game.dart';
+import 'package:momomotus/layout/parameters.dart';
+import 'package:momomotus/provider/data.dart';
+import 'package:momomotus/utils/game_utils.dart';
 
 class Home extends StatefulWidget {
   static const String id = 'home';
diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart
index 9bc8b9f..62c5790 100644
--- a/lib/utils/game_utils.dart
+++ b/lib/utils/game_utils.dart
@@ -1,5 +1,6 @@
-import '../provider/data.dart';
-import '../utils/random_pick_word.dart';
+import 'package:momomotus/provider/data.dart';
+import 'package:momomotus/utils/random_pick_word.dart';
+import 'package:momomotus/utils/tools.dart';
 
 class GameUtils {
   static Future<void> quitGame(Data myProvider) async {
@@ -7,7 +8,8 @@ class GameUtils {
   }
 
   static Future<void> startGame(Data myProvider) async {
-    print('Starting game (${myProvider.lang} / ${myProvider.length} / ${myProvider.level} )');
+    printlog(
+        'Starting game (${myProvider.lang} / ${myProvider.length} / ${myProvider.level} )');
 
     myProvider.resetGame();
 
@@ -36,7 +38,7 @@ class GameUtils {
       }
     } while (myProvider.word != word && attempts < 10);
 
-    print('Picked word: $word');
+    printlog('Picked word: $word');
   }
 
   static void addLetter(Data myProvider, String letter) {
@@ -89,10 +91,10 @@ class GameUtils {
 
   static void submitWord(Data myProvider) {
     if (GameUtils.checkCurrentlyGuessedWordExists(myProvider)) {
-      print('Ok word allowed: "${myProvider.currentGuess}".');
+      printlog('Ok word allowed: "${myProvider.currentGuess}".');
       myProvider.currentGuessSubmitWord();
     } else {
-      print('Unknown word: "${myProvider.currentGuess}".');
+      printlog('Unknown word: "${myProvider.currentGuess}".');
       myProvider.currentGuessSubmitWrongWord();
     }
   }
diff --git a/lib/utils/random_pick_word.dart b/lib/utils/random_pick_word.dart
index 2e03153..b73d54c 100644
--- a/lib/utils/random_pick_word.dart
+++ b/lib/utils/random_pick_word.dart
@@ -4,6 +4,8 @@ import "dart:math";
 
 import 'package:flutter/services.dart';
 
+import 'package:momomotus/utils/tools.dart';
+
 class RandomPickWord {
   static Set<String> wordList = <String>{};
   static Set<String> dictionary = <String>{};
@@ -33,7 +35,7 @@ class RandomPickWord {
       String wordBaseFilename = 'words-$length-$lang';
 
       // Get full dictionary (eligible words)
-      print('Reload dictionary ($lang / $length)');
+      printlog('Reload dictionary ($lang / $length)');
       try {
         String wordsFile = '$wordBaseFilename-dictionary';
         var data = await rootBundle.loadString('assets/files/$wordsFile.txt');
@@ -47,7 +49,7 @@ class RandomPickWord {
       }
 
       // Get guessable words list (will pick random word from)
-      print('Reload words list ($lang / $length / $level)');
+      printlog('Reload words list ($lang / $length / $level)');
       try {
         String wordsFile = '$wordBaseFilename-$level';
         var data = await rootBundle.loadString('assets/files/$wordsFile.txt');
@@ -61,8 +63,8 @@ class RandomPickWord {
       }
     }
 
-    print('Words in dictionary: ${dictionary.length}');
-    print('Words in words list: ${wordList.length}');
+    printlog('Words in dictionary: ${dictionary.length}');
+    printlog('Words in words list: ${wordList.length}');
 
     _word = '';
     await wordFromLocalFile();
@@ -71,7 +73,7 @@ class RandomPickWord {
   Future<void> wordFromLocalFile() async {
     // Check we have enough words
     if (wordList.isEmpty) {
-      print('Not enough words in list.');
+      printlog('Not enough words in list.');
       _word = '';
     } else {
       final random = Random();
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 8cb7a44..97f54c8 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,7 +1,7 @@
 name: momomotus
 description: A motus-like game application.
 publish_to: 'none'
-version: 0.0.27+27
+version: 0.0.28+28
 
 environment:
   sdk: '^3.0.0'
-- 
GitLab