diff --git a/android/gradle.properties b/android/gradle.properties index 408253ceb04c0c7c49b3b9daf597f35b66ce16c1..e6443382b31fab5fc027b99dc079154f78f27d0b 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 0000000000000000000000000000000000000000..101a8b40628078ef5603ecb8a462a1c9d939ab9f --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/28.txt @@ -0,0 +1 @@ +Improve flexibility in layout 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 0000000000000000000000000000000000000000..c4828eeb5e5050fbc3595d11c5fc91baf0120e25 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/28.txt @@ -0,0 +1 @@ +Amélioration de la flexibilité dans la mise en page diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart index f9213e94b2fb167359415530af72676b84201915..bb56ed976caa2481cb853077bcbf9db6d67d0012 100644 --- a/lib/entities/cell.dart +++ b/lib/entities/cell.dart @@ -81,6 +81,10 @@ class Cell { } Container widgetUpdateValue(Data myProvider) { + if (this.value < 0) { + return Container(); + } + String imageAsset = 'assets/skins/empty.png'; if (this.value > 0) { imageAsset = 'assets/skins/' + myProvider.skin + '_' + this.value.toString() + '.png'; diff --git a/lib/layout/game.dart b/lib/layout/game.dart index 9c9275a6d67722ddb074f2efd471d5dbe0ad4e2b..e3c0615ef48190785e13fa5eee15c9023d865d89 100644 --- a/lib/layout/game.dart +++ b/lib/layout/game.dart @@ -34,6 +34,10 @@ class Game { bool isUpdatableCellSelected = isCellSelected ? !myProvider.cells[myProvider.currentCellRow][myProvider.currentCellCol].isFixed : false; int maxValue = myProvider.blockSizeHorizontal * myProvider.blockSizeVertical; + int maxItemsPerLine = 10; + int linesCount = (maxValue / maxItemsPerLine).floor() + 1; + int itemsCountPerLine = min(maxItemsPerLine, maxValue + 1); + return Container( margin: EdgeInsets.all(2), padding: EdgeInsets.all(2), @@ -41,19 +45,24 @@ class Game { child: Table( defaultColumnWidth: IntrinsicColumnWidth(), children: [ - TableRow( - children: [ - for (var value = 0; value <= maxValue; value++) - Column( - children: [ - Cell( - isUpdatableCellSelected ? value : 0, - false - ).widgetUpdateValue(myProvider) - ] - ), - ] - ), + for (var lineIndex = 0; lineIndex < linesCount; lineIndex++) + TableRow( + children: [ + for ( + var value = lineIndex * itemsCountPerLine; + value < (lineIndex + 1) * itemsCountPerLine; + value++ + ) + Column( + children: [ + Cell( + isUpdatableCellSelected ? (value <= maxValue ? value : -1) : -1, + false + ).widgetUpdateValue(myProvider) + ] + ), + ] + ), ] ), ); diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart index 9ac761c02a5b08b4f55d200518fb1137d3830d34..dad275d6f8d947d55050e75172b4e7d11403d4c3 100644 --- a/lib/layout/parameters.dart +++ b/lib/layout/parameters.dart @@ -5,18 +5,22 @@ import '../utils/game_utils.dart'; class Parameters { - static const double _parameterButtonSize = 70; - static const double _startButtonSize = 150; + static const double _startButtonSize = 120; static Container buildParametersSelector(Data myProvider) { return Container( + padding: EdgeInsets.all(2), + margin: EdgeInsets.all(2), child: Column( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, children: [ Parameters.buildParameterSelector(myProvider, 'difficulty'), + SizedBox(height: 5), Parameters.buildParameterSelector(myProvider, 'size'), + SizedBox(height: 5), Parameters.buildParameterSelector(myProvider, 'skin'), + SizedBox(height: 5), Parameters.buildStartGameButton(myProvider), ], @@ -31,6 +35,7 @@ class Parameters { mainAxisAlignment: MainAxisAlignment.center, children: [ FlatButton( + padding: EdgeInsets.all(2), child: Image( image: AssetImage('assets/icons/button_start.png'), width: _startButtonSize, @@ -44,28 +49,23 @@ class Parameters { } - static Column buildParameterSelector(Data myProvider, String parameterCode) { + static Table buildParameterSelector(Data myProvider, String parameterCode) { List availableValues = myProvider.getParameterAvailableValues(parameterCode); - return Column( + return Table( + defaultColumnWidth: IntrinsicColumnWidth(), children: [ - Table( - defaultColumnWidth: IntrinsicColumnWidth(), + TableRow( children: [ - TableRow( - children: [ - for (var index = 0; index < availableValues.length; index++) - Column( - children: [ - _buildParameterButton(myProvider, parameterCode, availableValues[index]) - ] - ), - ], - ), + for (var index = 0; index < availableValues.length; index++) + Column( + children: [ + _buildParameterButton(myProvider, parameterCode, availableValues[index]) + ] + ), ], ), - SizedBox(height: 20), - ] + ], ); } @@ -77,6 +77,7 @@ class Parameters { String imageAsset = 'assets/icons/' + parameterCode + '_' + parameterValue + '.png'; return FlatButton( + padding: EdgeInsets.all(2), child: Container( decoration: BoxDecoration( color: Colors.white, @@ -88,8 +89,6 @@ class Parameters { ), child: Image( image: AssetImage(imageAsset), - width: _parameterButtonSize, - height: _parameterButtonSize, fit: BoxFit.fill ), ), diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart index 51520a91b2b9d29c59822fbeff4c90eb17a72cac..8800856b216eee1ea3aa0a8dbe805bef3f5f5223 100644 --- a/lib/utils/board_utils.dart +++ b/lib/utils/board_utils.dart @@ -7,12 +7,13 @@ import '../provider/data.dart'; class BoardUtils { static printGrid(List cells) { + String stringValues = '0123456789'; print(''); print('-------'); for (var rowIndex = 0; rowIndex < cells.length; rowIndex++) { String row = ''; for (var colIndex = 0; colIndex < cells[rowIndex].length; colIndex++) { - row += cells[rowIndex][colIndex].value.toString(); + row += stringValues[cells[rowIndex][colIndex].value]; } print(row); } @@ -62,11 +63,14 @@ class BoardUtils { List cells = []; int boardSize = int.parse(pow(grid.length, 1/2).toStringAsFixed(0)); + String stringValues = '0123456789'; + int index = 0; for (var rowIndex = 0; rowIndex < boardSize; rowIndex++) { List row = []; for (var colIndex = 0; colIndex < boardSize; colIndex++) { - int value = int.parse(grid[index++]); + String stringValue = grid[index++]; + int value = stringValues.indexOf(stringValue); row.add(Cell(value, (value != 0))); } cells.add(row);