From 63015cc9649ccc18f5869e8c03756b1e6ccc1ba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Tue, 27 Feb 2024 15:23:06 +0100 Subject: [PATCH] Avoid print calls in production code --- android/gradle.properties | 4 +-- .../metadata/android/en-US/changelogs/64.txt | 1 + .../metadata/android/fr-FR/changelogs/64.txt | 1 + generator/generate.py | 10 +++---- generator/solve.py | 28 +++++++++---------- lib/provider/data.dart | 3 +- lib/utils/board_utils.dart | 25 +++++++++-------- lib/utils/game_utils.dart | 3 +- lib/utils/random_pick_grid.dart | 7 +++-- lib/utils/tools.dart | 7 +++++ pubspec.lock | 4 +-- pubspec.yaml | 2 +- 12 files changed, 55 insertions(+), 40 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/64.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/64.txt create mode 100644 lib/utils/tools.dart diff --git a/android/gradle.properties b/android/gradle.properties index e915a0d..19420da 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=63 +app.versionName=0.1.15 +app.versionCode=64 diff --git a/fastlane/metadata/android/en-US/changelogs/64.txt b/fastlane/metadata/android/en-US/changelogs/64.txt new file mode 100644 index 0000000..52f2179 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/64.txt @@ -0,0 +1 @@ +Avoid print calls in production code. diff --git a/fastlane/metadata/android/fr-FR/changelogs/64.txt b/fastlane/metadata/android/fr-FR/changelogs/64.txt new file mode 100644 index 0000000..8537dac --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/64.txt @@ -0,0 +1 @@ +Supprime les appels à print dans le code de production. diff --git a/generator/generate.py b/generator/generate.py index be9f178..5066be9 100644 --- a/generator/generate.py +++ b/generator/generate.py @@ -5,15 +5,15 @@ import sys from random import randint, shuffle if (len(sys.argv) != 3): - print('Usage: generate.py block-size difficulty') - print('block-size: [2x2|3x2|3x3|4x4]') - print('difficulty: [easy|medium|hard|nightmare]') + printlog('Usage: generate.py block-size difficulty') + printlog('block-size: [2x2|3x2|3x3|4x4]') + printlog('difficulty: [easy|medium|hard|nightmare]') exit() blocksize, difficulty = sys.argv[1], sys.argv[2] if blocksize not in ['2x2', '3x2', '3x3', '4x4']: - print('wrong size given') + printlog('wrong size given') exit() splitted_blocksize = blocksize.split('x') @@ -23,7 +23,7 @@ size_vertical = int(splitted_blocksize[1]) boardSize = size_horizontal * size_vertical if difficulty not in ['easy', 'medium', 'hard', 'nightmare']: - print('wrong difficulty given') + printlog('wrong difficulty given') exit() debugFillGrid = False diff --git a/generator/solve.py b/generator/solve.py index f575588..75910b8 100644 --- a/generator/solve.py +++ b/generator/solve.py @@ -14,14 +14,14 @@ import sys if (len(sys.argv) != 3): - print('Usage: solve.py block-size grid') - print('block-size: [2x2|3x2|3x3|4x4]') + printlog('Usage: solve.py block-size grid') + printlog('block-size: [2x2|3x2|3x3|4x4]') exit() blocksize, gridTemplate = sys.argv[1], sys.argv[2] if blocksize not in ['2x2', '3x2', '3x3', '4x4']: - print('wrong size given') + printlog('wrong size given') exit() splitted_blocksize = blocksize.split('x') @@ -31,7 +31,7 @@ size_vertical = int(splitted_blocksize[1]) boardSize = size_horizontal * size_vertical if (len(gridTemplate) != boardSize * boardSize): - print('wrong grid length (should be ' + str(boardSize * boardSize) + ')') + printlog('wrong grid length (should be ' + str(boardSize * boardSize) + ')') exit() debugSolveGrid = False @@ -112,7 +112,7 @@ def hasConflict(grid, size_horizontal, size_vertical): if value != 0: values.append(value) if containsDuplicates(values): - # print('Horizontal conflict found') + # printlog('Horizontal conflict found') return True # Check vertical conflicts @@ -123,7 +123,7 @@ def hasConflict(grid, size_horizontal, size_vertical): if value != 0: values.append(value) if containsDuplicates(values): - # print('Vertical conflict found') + # printlog('Vertical conflict found') return True # Check sub-blocks conflicts @@ -139,7 +139,7 @@ def hasConflict(grid, size_horizontal, size_vertical): if value != 0: values.append(value) if containsDuplicates(values): - # print('Sub-block conflict found') + # printlog('Sub-block conflict found') return True return False @@ -176,18 +176,18 @@ def solve(grid, size_horizontal, size_vertical): break if debugSolveGrid: - print('===================================') - print('Iteration: ' + str(iterations)) + printlog('===================================') + printlog('Iteration: ' + str(iterations)) # Get first/next cell with only one allowed value candidates = [] if debugSolveGrid: - print('Searching for empty cells...') + printlog('Searching for empty cells...') for row in range(len(grid)): for col in range(len(grid[row])): if grid[row][col] == 0: if debugSolveGrid: - print( + printlog( 'Found empty cell [' + str(col) + ',' + str(row) + ']') candidates.append([row, col]) @@ -198,16 +198,16 @@ def solve(grid, size_horizontal, size_vertical): allowedValues = findAllowedValuesForCell( grid, size_horizontal, size_vertical, candidateRow, candidateCol) if debugSolveGrid: - print('Allowed values for cell [' + str(candidateCol) + ',' + str( + printlog('Allowed values for cell [' + str(candidateCol) + ',' + str( candidateRow) + ']: ' + str(allowedValues)) if len(allowedValues) != 1: if debugSolveGrid: - print(' Non unique allowed value for cell. Skip to next cell') + printlog(' Non unique allowed value for cell. Skip to next cell') else: value = allowedValues[0] grid[candidateRow][candidateCol] = value if debugSolveGrid: - print(' Found unique allowed value for cell [' + str( + printlog(' Found unique allowed value for cell [' + str( candidateCol) + ',' + str(candidateRow) + ']: ' + str(value)) drawGrid(grid) diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 7edff91..b03d01b 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -4,6 +4,7 @@ import 'package:flutter/foundation.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:sudoku/entities/cell.dart'; +import 'package:sudoku/utils/tools.dart'; class Data extends ChangeNotifier { // Configuration available values @@ -203,7 +204,7 @@ class Data extends ChangeNotifier { if (_shufflableSkins.contains(_parameterSkin)) { values.shuffle(); - print('Shuffled tiles values: $values'); + printlog('Shuffled tiles values: $values'); } _shuffledCellValues = values; diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart index e1f5fdf..624814d 100644 --- a/lib/utils/board_utils.dart +++ b/lib/utils/board_utils.dart @@ -3,12 +3,13 @@ import 'dart:math'; import 'package:sudoku/entities/cell.dart'; import 'package:sudoku/provider/data.dart'; import 'package:sudoku/utils/random_pick_grid.dart'; +import 'package:sudoku/utils/tools.dart'; class BoardUtils { static printGrid(List<List<Cell>> cells, List<List<Cell>> solvedCells) { String stringValues = '0123456789ABCDEFG'; - print(''); - print('-------'); + printlog(''); + printlog('-------'); for (int rowIndex = 0; rowIndex < cells.length; rowIndex++) { String row = ''; String rowSolved = ''; @@ -16,10 +17,10 @@ class BoardUtils { row += stringValues[cells[rowIndex][colIndex].value]; rowSolved += stringValues[solvedCells[rowIndex][colIndex].value]; } - print('$row | $rowSolved'); + printlog('$row | $rowSolved'); } - print('-------'); - print(''); + printlog('-------'); + printlog(''); } static Future<void> pickGrid(Data myProvider) async { @@ -35,7 +36,7 @@ class BoardUtils { final int blockSizeVertical = myProvider.blockSizeVertical; if (grid.length == pow(blockSizeHorizontal * blockSizeVertical, 2)) { - print('Picked grid from template: $grid'); + printlog('Picked grid from template: $grid'); bool isSymetric = (blockSizeHorizontal == blockSizeVertical); myProvider.updateCells(BoardUtils.createBoardFromTemplate(grid, isSymetric)); myProvider.updateCellsSolved(BoardUtils.getSolvedGrid(myProvider)); @@ -124,8 +125,8 @@ class BoardUtils { final String flip = allowedFlip[rand.nextInt(allowedFlip.length)]; final String rotate = allowedRotate[rand.nextInt(allowedRotate.length)]; - print('flip board: $flip'); - print('rotate board: $rotate'); + printlog('flip board: $flip'); + printlog('rotate board: $rotate'); switch (flip) { case 'horizontal': @@ -212,7 +213,7 @@ class BoardUtils { } } - print('-> ok sudoku solved!'); + printlog('-> ok sudoku solved!'); return true; } @@ -324,7 +325,7 @@ class BoardUtils { } final List<int> distinctValues = values.toSet().toList(); if (values.length != distinctValues.length) { - print('line $row contains duplicates'); + printlog('line $row contains duplicates'); // Add line to cells in conflict for (int col = 0; col < boardSize; col++) { cells[row][col].conflictsCount++; @@ -343,7 +344,7 @@ class BoardUtils { } final List<int> distinctValues = values.toSet().toList(); if (values.length != distinctValues.length) { - print('column $col contains duplicates'); + printlog('column $col contains duplicates'); // Add column to cells in conflict for (int row = 0; row < boardSize; row++) { cells[row][col].conflictsCount++; @@ -371,7 +372,7 @@ class BoardUtils { List<int> distinctValues = values.toSet().toList(); if (values.length != distinctValues.length) { - print('block [$blockCol,$blockRow] contains duplicates'); + printlog('block [$blockCol,$blockRow] contains duplicates'); // Add blocks to cells in conflict for (int rowInBlock = 0; rowInBlock < blockSizeVertical; rowInBlock++) { for (int colInBlock = 0; colInBlock < blockSizeHorizontal; colInBlock++) { diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart index 8ec4f38..a9eca6f 100644 --- a/lib/utils/game_utils.dart +++ b/lib/utils/game_utils.dart @@ -2,6 +2,7 @@ import 'package:sudoku/entities/cell.dart'; import 'package:sudoku/provider/data.dart'; import 'package:sudoku/utils/board_animate.dart'; import 'package:sudoku/utils/board_utils.dart'; +import 'package:sudoku/utils/tools.dart'; class GameUtils { static Future<void> quitGame(Data myProvider) async { @@ -43,7 +44,7 @@ class GameUtils { BoardUtils.createBoardFromSavedState(myProvider, savedState['boardValues'])); 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/random_pick_grid.dart b/lib/utils/random_pick_grid.dart index 903899f..7959884 100644 --- a/lib/utils/random_pick_grid.dart +++ b/lib/utils/random_pick_grid.dart @@ -1,6 +1,9 @@ import 'dart:convert'; + import 'package:flutter/services.dart'; +import 'package:sudoku/utils/tools.dart'; + class RandomPickGrid { RandomPickGrid(); @@ -19,12 +22,12 @@ class RandomPickGrid { final jsonResponse = await json.decode(jsonString); grids = jsonResponse['templates'][size][level]; } catch (e) { - print("$e"); + printlog("$e"); } // Check we have enough grids if (grids.isEmpty) { - print('Not enough grids [$size, $level] in templates.'); + printlog('Not enough grids [$size, $level] in templates.'); } // Randomize grids list 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 2abbf2c..cc569cd 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -159,10 +159,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 d2c835e..974982c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: sudoku description: A sudoku game application. publish_to: 'none' -version: 0.1.14+63 +version: 0.1.15+64 environment: sdk: '^3.0.0' -- GitLab