diff --git a/android/gradle.properties b/android/gradle.properties index c8bbff9bd599a7c3ffbe76de5a61ead3de90631a..4d8dcd2635bb8701e212029096d53cf5dc060e45 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.39 -app.versionCode=39 +app.versionName=0.0.40 +app.versionCode=40 diff --git a/fastlane/metadata/android/en-US/changelogs/40.txt b/fastlane/metadata/android/en-US/changelogs/40.txt new file mode 100644 index 0000000000000000000000000000000000000000..184075efeed3355b2b22223b1014cc347992c452 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/40.txt @@ -0,0 +1 @@ +Clean some code, remove deprecations diff --git a/fastlane/metadata/android/fr-FR/changelogs/40.txt b/fastlane/metadata/android/fr-FR/changelogs/40.txt new file mode 100644 index 0000000000000000000000000000000000000000..387510b68e0fb91391aca3c32a6ffa08627ea00e --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/40.txt @@ -0,0 +1 @@ +Nettoyage de code, correction des deprectations diff --git a/lib/entities/moving_tile.dart b/lib/entities/moving_tile.dart index cdcc109e05ea29f95426e051c4d55128f406bca2..63dc084c84f9d56eae048396e85f7a78774d4a73 100644 --- a/lib/entities/moving_tile.dart +++ b/lib/entities/moving_tile.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; import 'tile.dart'; import '../provider/data.dart'; @@ -8,19 +7,8 @@ class MovingTile extends Tile { int currentCol; int currentRow; - MovingTile( - image, - size, - originalCol, - originalRow, - this.currentCol, - this.currentRow - ): super( - image, - size, - originalCol, - originalRow - ); + MovingTile(image, size, originalCol, originalRow, this.currentCol, this.currentRow) + : super(image, size, originalCol, originalRow); Container _tileWidget() { return Container( @@ -32,62 +20,51 @@ class MovingTile extends Tile { ), ), child: Image( - image: this.image.image, - width: this.size, - height: this.size, - fit: BoxFit.fill - ), + image: this.image.image, width: this.size, height: this.size, fit: BoxFit.fill), ); } Container widget(Data myProvider) { return Container( - child: DragTarget<List<int>>( - builder: ( - BuildContext context, - List<dynamic> accepted, - List<dynamic> rejected, - ) { - return Container( - height: this.size, - width: this.size, - color: Colors.cyan, - child: Draggable<List<int>>( - data: [ - this.currentCol, - this.currentRow, - ], + child: DragTarget<List<int>>( + builder: ( + BuildContext context, + List<dynamic> accepted, + List<dynamic> rejected, + ) { + return Container( + height: this.size, + width: this.size, + color: Colors.cyan, + child: Draggable<List<int>>( + data: [ + this.currentCol, + this.currentRow, + ], - // Widget when draggable is stationary - child: this._tileWidget(), + // Widget when draggable is stationary + child: this._tileWidget(), - // Widget when draggable is being dragged - feedback: this._tileWidget(), + // Widget when draggable is being dragged + feedback: this._tileWidget(), - // Widget to display on original place when being dragged - childWhenDragging: Container( - height: this.size, - width: this.size, - color: Colors.pinkAccent, - ), + // Widget to display on original place when being dragged + childWhenDragging: Container( + height: this.size, + width: this.size, + color: Colors.pinkAccent, ), - ); - }, - onAccept: (List<int> data) { - myProvider.swapTiles( - [this.currentCol, this.currentRow], - data - ); - }, - ) - ); + ), + ); + }, + onAccept: (List<int> data) { + myProvider.swapTiles([this.currentCol, this.currentRow], data); + }, + )); } bool isCorrect() { - return ( - (this.currentRow == this.originalRow) - && - (this.currentCol == this.originalCol) - ); + return ((this.currentRow == this.originalRow) && + (this.currentCol == this.originalCol)); } } diff --git a/lib/entities/tile.dart b/lib/entities/tile.dart index cab77ecbcf4f00258fedf49a64c488916dc8cba0..6e340c783f1e938e324292284a8568ed3fc62ff6 100644 --- a/lib/entities/tile.dart +++ b/lib/entities/tile.dart @@ -1,24 +1,25 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; import '../provider/data.dart'; -class Tile{ +class Tile { final Image image; final double size; final int originalCol; final int originalRow; Tile( - @required this.image, - @required this.size, - @required this.originalCol, - @required this.originalRow, + this.image, + this.size, + this.originalCol, + this.originalRow, ); Container widget(Data myProvider) { return Container(); } - bool isCorrect() {} + bool isCorrect() { + return false; + } } diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 8255353a98e676e00921de6e8eaf22768a0e98fd..362981de42bc7f4be8d7c970970ce0f1d50bf247 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -3,7 +3,6 @@ import 'package:flutter/foundation.dart'; import '../entities/moving_tile.dart'; class Data extends ChangeNotifier { - // application configuration int _tilesCount = 4; @@ -59,8 +58,10 @@ class Data extends ChangeNotifier { } void swapTiles(List<int> tile1, List<int> tile2) { - int indexTile1 = _tiles.indexWhere((tile) => ((tile.currentCol == tile1[0]) && (tile.currentRow == tile1[1]))); - int indexTile2 = _tiles.indexWhere((tile) => ((tile.currentCol == tile2[0]) && (tile.currentRow == tile2[1]))); + int indexTile1 = _tiles.indexWhere( + (tile) => ((tile.currentCol == tile1[0]) && (tile.currentRow == tile1[1]))); + int indexTile2 = _tiles.indexWhere( + (tile) => ((tile.currentCol == tile2[0]) && (tile.currentRow == tile2[1]))); MovingTile swap = _tiles[indexTile1]; _tiles[indexTile1] = _tiles[indexTile2]; diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 783b1b834c6e2480fdf1500ea66371bd1d525884..9becc8c2a94ad6d77ab668d9c38f2567273b57c2 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -15,9 +15,9 @@ import '../utils/get_images_list.dart'; class Home extends StatelessWidget { static const String id = 'home'; - Color themePrimaryColor = Colors.blue; - double _tipImageSize = 100; - int _selectImageColumnsCount = 3; + final Color themePrimaryColor = Colors.blue; + final double _tipImageSize = 100; + final int _selectImageColumnsCount = 3; Future<void> resetGame(Data myProvider) async { myProvider.updateImage = ''; @@ -29,7 +29,7 @@ class Home extends StatelessWidget { } String getImageAssetName(String imageCode) { - return 'assets/images/'+imageCode+'.png'; + return 'assets/images/' + imageCode + '.png'; } Future<void> getImagesList(Data myProvider) async { @@ -42,10 +42,11 @@ class Home extends StatelessWidget { } } - Future<void> selectImage(Data myProvider, String imageCode, double tileImageSize) async { + Future<void> selectImage( + Data myProvider, String imageCode, double tileImageSize) async { myProvider.updateIsShufflingBoard = true; myProvider.updateImage = imageCode; - Timer timer = new Timer(new Duration(seconds: 1), () { + new Timer(new Duration(seconds: 1), () { splitImageInTiles(myProvider, tileImageSize); }); } @@ -58,8 +59,10 @@ class Home extends StatelessWidget { Container _buildImageSelectorItem(Data myProvider, String image, double tileImageSize) { return Container( - child: FlatButton( - padding: EdgeInsets.all(2), + child: TextButton( + style: TextButton.styleFrom( + padding: EdgeInsets.all(2), + ), child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(4), @@ -68,12 +71,11 @@ class Home extends StatelessWidget { width: 4, ), ), - child: Image( - image: AssetImage(getImageAssetName(image)), - fit: BoxFit.fill - ), + child: Image(image: AssetImage(getImageAssetName(image)), fit: BoxFit.fill), ), - onPressed: () { selectImage(myProvider, image, tileImageSize); }, + onPressed: () { + selectImage(myProvider, image, tileImageSize); + }, ), ); } @@ -91,22 +93,19 @@ class Home extends StatelessWidget { Table( defaultColumnWidth: IntrinsicColumnWidth(), children: [ - for (var imageIndex = 0; imageIndex < images.length; imageIndex += _selectImageColumnsCount) - TableRow( - children: [ - for (var columnIndex = 0; columnIndex < _selectImageColumnsCount; columnIndex++) - Column( - children: [ - if (imageIndex + columnIndex < images.length) - _buildImageSelectorItem( - myProvider, - images[imageIndex + columnIndex], - tileImageSize - ) - ] - ), - ] - ), + for (var imageIndex = 0; + imageIndex < images.length; + imageIndex += _selectImageColumnsCount) + TableRow(children: [ + for (var columnIndex = 0; + columnIndex < _selectImageColumnsCount; + columnIndex++) + Column(children: [ + if (imageIndex + columnIndex < images.length) + _buildImageSelectorItem( + myProvider, images[imageIndex + columnIndex], tileImageSize) + ]), + ]), ], ), ], @@ -114,8 +113,9 @@ class Home extends StatelessWidget { ); } - FlatButton _buildTilesetSizeSelectorItem(Data myProvider, int value) { - String assetName = 'assets/icons/difficulty_' + value.toString() + 'x' + value.toString() + '.png'; + TextButton _buildTilesetSizeSelectorItem(Data myProvider, int value) { + String assetName = + 'assets/icons/difficulty_' + value.toString() + 'x' + value.toString() + '.png'; Color borderColor = themePrimaryColor; @@ -123,7 +123,7 @@ class Home extends StatelessWidget { borderColor = Colors.white; } - return FlatButton( + return TextButton( child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(4), @@ -133,12 +133,11 @@ class Home extends StatelessWidget { ), ), margin: EdgeInsets.all(8), - child: Image( - image: AssetImage(assetName), - fit: BoxFit.fill - ), + child: Image(image: AssetImage(assetName), fit: BoxFit.fill), ), - onPressed: () { myProvider.updateTilesCount = value; }, + onPressed: () { + myProvider.updateTilesCount = value; + }, ); } @@ -168,30 +167,24 @@ class Home extends StatelessWidget { Future<void> splitImageInTiles(Data myProvider, double tileImageSize) async { String imageAsset = getImageAssetName(myProvider.image); - Uint8List imageData = (await rootBundle.load(imageAsset)) - .buffer - .asUint8List(); + Uint8List imageData = (await rootBundle.load(imageAsset)).buffer.asUint8List(); imglib.Image image = imglib.decodeImage(imageData); int x = 0, y = 0; int width = (image.width / myProvider.tilesCount).round(); int height = (image.height / myProvider.tilesCount).round(); - List<MovingTile> tiles = List<MovingTile>(); + List<MovingTile> tiles = []; for (int i = 0; i < myProvider.tilesCount; i++) { for (int j = 0; j < myProvider.tilesCount; j++) { - tiles.add( - MovingTile( - Image.memory( - imglib.encodeJpg( - imglib.copyCrop(image, x, y, width, height) - ) - ), - tileImageSize, - j, i, - j, i, - ) - ); + tiles.add(MovingTile( + Image.memory(imglib.encodeJpg(imglib.copyCrop(image, x, y, width, height))), + tileImageSize, + j, + i, + j, + i, + )); x += width; } @@ -219,21 +212,19 @@ class Home extends StatelessWidget { int tileIndex = 0; Table tileset = Table( - defaultColumnWidth: IntrinsicColumnWidth(), - - border: TableBorder.all( - color: Colors.black, - style: BorderStyle.solid, - width: 2, - ), - children: [ - for (var row = 0; row < myProvider.tilesCount; row++) - TableRow(children: [ - for (var col = 0; col < myProvider.tilesCount; col++) - Column(children: [tiles[tileIndex++].widget(myProvider)]), - ]), - ] - ); + defaultColumnWidth: IntrinsicColumnWidth(), + border: TableBorder.all( + color: Colors.black, + style: BorderStyle.solid, + width: 2, + ), + children: [ + for (var row = 0; row < myProvider.tilesCount; row++) + TableRow(children: [ + for (var col = 0; col < myProvider.tilesCount; col++) + Column(children: [tiles[tileIndex++].widget(myProvider)]), + ]), + ]); return Container( margin: EdgeInsets.all(8), @@ -252,7 +243,7 @@ class Home extends StatelessWidget { Container _buildTipWidget(Data myProvider) { return Container( - child: FlatButton( + child: TextButton( child: Container( margin: EdgeInsets.all(4), padding: EdgeInsets.all(4), @@ -265,15 +256,12 @@ class Home extends StatelessWidget { ), ), child: Image( - image: AssetImage( - myProvider.displayTipImage - ? getImageAssetName(myProvider.image) - : 'assets/ui/tip-hidden.png' - ), - width: _tipImageSize, - height: _tipImageSize, - fit: BoxFit.fill - ), + image: AssetImage(myProvider.displayTipImage + ? getImageAssetName(myProvider.image) + : 'assets/ui/tip-hidden.png'), + width: _tipImageSize, + height: _tipImageSize, + fit: BoxFit.fill), ), onPressed: () => toggleDisplayTipImage(myProvider), ), @@ -288,7 +276,9 @@ class Home extends StatelessWidget { children: [ _buildTilesetWidget(myProvider), SizedBox(height: 20), - _checkTilesetIsCleared(myProvider.tiles) ? _buildWinMessage(myProvider) : _buildTipWidget(myProvider), + _checkTilesetIsCleared(myProvider.tiles) + ? _buildWinMessage(myProvider) + : _buildTipWidget(myProvider), ], ), ); @@ -296,48 +286,30 @@ class Home extends StatelessWidget { Container _buildWinMessage(Data myProvider) { return Container( - margin: EdgeInsets.all(2), - padding: EdgeInsets.all(2), - - child: Table( - defaultColumnWidth: IntrinsicColumnWidth(), - children: [ + margin: EdgeInsets.all(2), + padding: EdgeInsets.all(2), + child: Table(defaultColumnWidth: IntrinsicColumnWidth(), children: [ TableRow( children: [ - Column( - children: [ - Image( - image: AssetImage('assets/icons/game_win.png'), - fit: BoxFit.fill - ), - ] - ), - Column( - children: [ - FlatButton( - child: Container( - child: Image( - image: AssetImage('assets/icons/button_back.png'), - fit: BoxFit.fill - ), - ), - onPressed: () => resetGame(myProvider), - ), - ] - ), - Column( - children: [ - Image( - image: AssetImage('assets/icons/game_win.png'), - fit: BoxFit.fill - ), - ] + Column(children: [ + Image(image: AssetImage('assets/icons/game_win.png'), fit: BoxFit.fill), + ]), + Column(children: [ + TextButton( + child: Container( + child: Image( + image: AssetImage('assets/icons/button_back.png'), + fit: BoxFit.fill), + ), + onPressed: () => resetGame(myProvider), ), + ]), + Column(children: [ + Image(image: AssetImage('assets/icons/game_win.png'), fit: BoxFit.fill), + ]), ], ), - ] - ) - ); + ])); } Container _buildShufflingIndicatorWidget() { @@ -367,7 +339,8 @@ class Home extends StatelessWidget { var content; - double _tileImageSize = (MediaQuery.of(context).size.width - 70) / _myProvider.tilesCount; + double _tileImageSize = + (MediaQuery.of(context).size.width - 70) / _myProvider.tilesCount; if (_myProvider.isShufflingBoard) { content = _buildShufflingIndicatorWidget(); @@ -384,7 +357,7 @@ class Home extends StatelessWidget { _buildTilesetSizeSelectorItem(_myProvider, 3), _buildTilesetSizeSelectorItem(_myProvider, 4), _buildTilesetSizeSelectorItem(_myProvider, 5), - FlatButton( + TextButton( child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(4), @@ -395,16 +368,14 @@ class Home extends StatelessWidget { ), margin: EdgeInsets.all(8), child: Image( - image: AssetImage('assets/icons/button_shuffle.png'), - fit: BoxFit.fill - ), + image: AssetImage('assets/icons/button_shuffle.png'), fit: BoxFit.fill), ), onPressed: () => shuffleImages(_myProvider), ), ]; List<Widget> gameActions = [ - FlatButton( + TextButton( child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(4), @@ -414,25 +385,20 @@ class Home extends StatelessWidget { ), ), margin: EdgeInsets.all(8), - child: Image( - image: AssetImage('assets/icons/button_back.png'), - fit: BoxFit.fill - ), + child: + Image(image: AssetImage('assets/icons/button_back.png'), fit: BoxFit.fill), ), onPressed: () => resetGame(_myProvider), ), ]; return Scaffold( - appBar: AppBar( - backgroundColor: themePrimaryColor, - actions: _myProvider.image == '' ? menuActions : gameActions, - ), - body: SafeArea( - child: Center( - child: content + appBar: AppBar( + backgroundColor: themePrimaryColor, + actions: _myProvider.image == '' ? menuActions : gameActions, ), - ) - ); + body: SafeArea( + child: Center(child: content), + )); } } diff --git a/lib/utils/get_images_list.dart b/lib/utils/get_images_list.dart index b0498796164a7da03a5cf5a7423526470b06e94b..e1221a98f734d20c44262eacbac39460bb2908b1 100644 --- a/lib/utils/get_images_list.dart +++ b/lib/utils/get_images_list.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'dart:convert'; import 'package:flutter/services.dart'; -import 'dart:math' show Random; class GetImagesList { GetImagesList(); diff --git a/pubspec.lock b/pubspec.lock index 5124f450dd9a8395f6b3b56c5273c96ab6b943ee..9fbac1cb2c42d5a5831c7d20b476b98478f8e075 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -49,7 +49,7 @@ packages: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.15.0" + version: "1.16.0" crypto: dependency: transitive description: @@ -63,7 +63,7 @@ packages: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0" flutter: dependency: "direct main" description: flutter @@ -94,7 +94,7 @@ packages: name: material_color_utilities url: "https://pub.dartlang.org" source: hosted - version: "0.1.3" + version: "0.1.4" meta: dependency: transitive description: @@ -115,7 +115,7 @@ packages: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.1" petitparser: dependency: transitive description: @@ -141,7 +141,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.1" + version: "1.8.2" stack_trace: dependency: transitive description: @@ -176,7 +176,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.8" + version: "0.4.9" typed_data: dependency: transitive description: @@ -190,7 +190,7 @@ packages: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.2" xml: dependency: transitive description: @@ -199,5 +199,5 @@ packages: source: hosted version: "5.3.1" sdks: - dart: ">=2.14.0 <3.0.0" + dart: ">=2.17.0-0 <3.0.0" flutter: ">=1.16.0" diff --git a/test/widget_test.dart b/test/widget_test.dart deleted file mode 100644 index db18f731d9b771006442594b80413d4a8eaa10db..0000000000000000000000000000000000000000 --- a/test/widget_test.dart +++ /dev/null @@ -1,14 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility that Flutter provides. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:puzzlegame/main.dart'; - -void main() { -}