diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f9b303465f19b5fbf5ec669cd083c9cc38ecda9a --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1 @@ +include: package:flutter_lints/flutter.yaml diff --git a/android/app/build.gradle b/android/app/build.gradle index 915bbb87ff685ec93e4c14831a36a6db0b94f5f8..aae6b26f13c5c1afcdea792265799e58911a7bf8 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -53,7 +53,7 @@ android { defaultConfig { applicationId "org.benoitharrault.memory" - minSdkVersion 16 + minSdkVersion flutter.minSdkVersion targetSdkVersion 30 versionCode appVersionCode.toInteger() versionName appVersionName diff --git a/android/gradle.properties b/android/gradle.properties index a91025357c94cf0966f1c7beed2d8bb52e1bfabb..a6742fa6ef44a10a2e9382d30dbde8e2665f2c91 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=1.0.16 -app.versionCode=17 +app.versionName=1.0.17 +app.versionCode=18 diff --git a/fastlane/metadata/android/en-US/changelogs/18.txt b/fastlane/metadata/android/en-US/changelogs/18.txt new file mode 100644 index 0000000000000000000000000000000000000000..6ab11150150fc75a46c9acc317890208e5a120b9 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/18.txt @@ -0,0 +1 @@ +Add automatic flutter linter. Apply code lints. Update dependencies. diff --git a/fastlane/metadata/android/fr-FR/changelogs/18.txt b/fastlane/metadata/android/fr-FR/changelogs/18.txt new file mode 100644 index 0000000000000000000000000000000000000000..609f5cf6e95a8df0799865df2e1ebde8fa981e5a --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/18.txt @@ -0,0 +1 @@ +Ajout d'un correcteur automatique de code. Application des corrections. Mise à jour des dépendances. diff --git a/lib/data/data.dart b/lib/data/data.dart index a49b1ef9b36d4dd148f6edf74d7c16d9533bd61f..e193b610259ef772dfbc4f58ed7cdd02e9db6fff 100644 --- a/lib/data/data.dart +++ b/lib/data/data.dart @@ -1,4 +1,4 @@ -import 'package:memory/models/TileModel.dart'; +import 'package:memory/models/tile_model.dart'; String selectedTile = ""; int selectedIndex = 0; @@ -20,56 +20,56 @@ List<bool> getClicked() { List<TileModel> getPairs() { List<TileModel> pairs = []; - TileModel tileModel = new TileModel(); + TileModel tileModel = TileModel(); //1 tileModel.setImageAssetPath("assets/fox.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //2 tileModel.setImageAssetPath("assets/hippo.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //3 tileModel.setImageAssetPath("assets/horse.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //4 tileModel.setImageAssetPath("assets/monkey.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //5 tileModel.setImageAssetPath("assets/panda.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //6 tileModel.setImageAssetPath("assets/parrot.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //7 tileModel.setImageAssetPath("assets/rabbit.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //8 tileModel.setImageAssetPath("assets/zoo.png"); @@ -82,56 +82,56 @@ List<TileModel> getPairs() { List<TileModel> getQuestionPairs() { List<TileModel> pairs = []; - TileModel tileModel = new TileModel(); + TileModel tileModel = TileModel(); //1 tileModel.setImageAssetPath("assets/question.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //2 tileModel.setImageAssetPath("assets/question.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //3 tileModel.setImageAssetPath("assets/question.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //4 tileModel.setImageAssetPath("assets/question.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //5 tileModel.setImageAssetPath("assets/question.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //6 tileModel.setImageAssetPath("assets/question.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //7 tileModel.setImageAssetPath("assets/question.png"); tileModel.setIsSelected(false); pairs.add(tileModel); pairs.add(tileModel); - tileModel = new TileModel(); + tileModel = TileModel(); //8 tileModel.setImageAssetPath("assets/question.png"); diff --git a/lib/main.dart b/lib/main.dart index 79bd62e202c22af9298826d18348b528fa85a6e9..6a22dde4cfde0ed9ad585fa78598b74d939e4da2 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,12 +1,15 @@ import 'dart:async'; import 'package:flutter/material.dart'; + import 'package:memory/data/data.dart'; -import 'package:memory/models/TileModel.dart'; +import 'package:memory/models/tile_model.dart'; -void main() => runApp(MyApp()); +void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { + const MyApp({super.key}); + @override Widget build(BuildContext context) { return MaterialApp( @@ -15,17 +18,19 @@ class MyApp extends StatelessWidget { theme: ThemeData( primarySwatch: Colors.blue, ), - home: Home(), + home: const Home(), ); } } class Home extends StatefulWidget { + const Home({super.key}); + @override - _HomeState createState() => _HomeState(); + HomeState createState() => HomeState(); } -class _HomeState extends State<Home> { +class HomeState extends State<Home> { List<TileModel> gridViewTiles = []; List<TileModel> questionPairs = []; @@ -55,10 +60,10 @@ class _HomeState extends State<Home> { backgroundColor: Colors.white, body: SingleChildScrollView( child: Container( - padding: EdgeInsets.symmetric(horizontal: 20, vertical: 50), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 50), child: Column( children: <Widget>[ - SizedBox( + const SizedBox( height: 40, ), points != 800 @@ -67,12 +72,12 @@ class _HomeState extends State<Home> { children: <Widget>[ Text( "$points/800", - style: TextStyle( + style: const TextStyle( fontSize: 20, fontWeight: FontWeight.w500, ), ), - Text( + const Text( "Points", textAlign: TextAlign.start, style: TextStyle( @@ -83,7 +88,7 @@ class _HomeState extends State<Home> { ], ) : Container(), - SizedBox( + const SizedBox( height: 20, ), points != 800 @@ -91,7 +96,7 @@ class _HomeState extends State<Home> { shrinkWrap: true, //physics: ClampingScrollPhysics(), scrollDirection: Axis.vertical, - gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( + gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent( mainAxisSpacing: 0.0, maxCrossAxisExtent: 100.0, ), @@ -103,36 +108,34 @@ class _HomeState extends State<Home> { ); }), ) - : Container( - child: Column( - children: <Widget>[ - GestureDetector( - onTap: () { - setState(() { - points = 0; - reStart(); - }); - }, - child: Container( - height: 50, - width: 200, - alignment: Alignment.center, - decoration: BoxDecoration( - color: Colors.blue, - borderRadius: BorderRadius.circular(24), - ), - child: Text( - "Replay", - style: TextStyle( - color: Colors.white, - fontSize: 17, - fontWeight: FontWeight.w500, - ), + : Column( + children: <Widget>[ + GestureDetector( + onTap: () { + setState(() { + points = 0; + reStart(); + }); + }, + child: Container( + height: 50, + width: 200, + alignment: Alignment.center, + decoration: BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.circular(24), + ), + child: const Text( + "Replay", + style: TextStyle( + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.w500, ), ), ), - ], - ), + ), + ], ), ], ), @@ -145,15 +148,15 @@ class _HomeState extends State<Home> { class Tile extends StatefulWidget { final String imagePathUrl; final int tileIndex; - final _HomeState? parent; + final HomeState? parent; - Tile({this.imagePathUrl = '', this.tileIndex = 0, this.parent}); + const Tile({super.key, this.imagePathUrl = '', this.tileIndex = 0, this.parent}); @override - _TileState createState() => _TileState(); + TileState createState() => TileState(); } -class _TileState extends State<Tile> { +class TileState extends State<Tile> { @override Widget build(BuildContext context) { return GestureDetector( @@ -167,9 +170,9 @@ class _TileState extends State<Tile> { if (selectedTile == myPairs[widget.tileIndex].getImageAssetPath()) { print("add point"); points = points + 100; - print(selectedTile + " -> " + widget.imagePathUrl); + print("$selectedTile -> ${widget.imagePathUrl}"); - TileModel tileModel = new TileModel(); + TileModel tileModel = TileModel(); print(widget.tileIndex); selected = true; Future.delayed(const Duration(seconds: 2), () { @@ -177,20 +180,20 @@ class _TileState extends State<Tile> { myPairs[widget.tileIndex] = tileModel; print(selectedIndex); myPairs[selectedIndex] = tileModel; - this.widget.parent?.setState(() {}); + widget.parent?.setState(() {}); setState(() { selected = false; }); selectedTile = ""; }); } else { - print(selectedTile + " -> " + myPairs[widget.tileIndex].getImageAssetPath()); + print("$selectedTile -> ${myPairs[widget.tileIndex].getImageAssetPath()}"); print("wrong choice"); print(widget.tileIndex); print(selectedIndex); selected = true; Future.delayed(const Duration(seconds: 2), () { - this.widget.parent?.setState(() { + widget.parent?.setState(() { myPairs[widget.tileIndex].setIsSelected(false); myPairs[selectedIndex].setIsSelected(false); }); @@ -213,7 +216,7 @@ class _TileState extends State<Tile> { } }, child: Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), child: myPairs[widget.tileIndex].getImageAssetPath() != "" ? Image.asset(myPairs[widget.tileIndex].getIsSelected() ? myPairs[widget.tileIndex].getImageAssetPath() diff --git a/lib/models/TileModel.dart b/lib/models/tile_model.dart similarity index 82% rename from lib/models/TileModel.dart rename to lib/models/tile_model.dart index 3df63271a8b738be9f9a04488082fa616b0090a2..aabe8613b76c2cabf46281bc85a47546c7939ce6 100644 --- a/lib/models/TileModel.dart +++ b/lib/models/tile_model.dart @@ -2,7 +2,10 @@ class TileModel { String imageAssetPath = ""; bool isSelected = false; - TileModel({this.imageAssetPath = "", this.isSelected = false}); + TileModel({ + this.imageAssetPath = "", + this.isSelected = false, + }); void setImageAssetPath(String getImageAssetPath) { imageAssetPath = getImageAssetPath; diff --git a/pubspec.lock b/pubspec.lock index af8a051b512b2eda811061c4e6eef883e5ece86b..ce8782705a3cbbacc84a2a4eb22cddd040573943 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" cupertino_icons: dependency: "direct main" description: @@ -30,22 +30,38 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: transitive + description: + name: lints + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + url: "https://pub.dev" + source: hosted + version: "3.0.0" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.11.0" sky_engine: dependency: transitive description: flutter @@ -59,13 +75,5 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" - web: - dependency: transitive - description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 - url: "https://pub.dev" - source: hosted - version: "0.1.4-beta" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" + dart: ">=3.2.0-0 <4.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index fece5c820ea59058d00859257e2480f17e7bba38..4dc213ff4cb2689c39d61045f0f0e88e602a1c29 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: memory description: A simple and classic memory game. publish_to: 'none' -version: 1.0.0+1 +version: 1.0.17+18 environment: sdk: '^3.0.0' @@ -11,8 +11,10 @@ dependencies: sdk: flutter cupertino_icons: ^1.0.6 +dev_dependencies: + flutter_lints: ^3.0.1 + flutter: uses-material-design: true assets: - assets/ -