From fe4900127bf0a4beccfdbbf3f5b77304564b79a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Fri, 24 Jun 2022 22:26:40 +0200 Subject: [PATCH] Clean code, remove deprecations --- android/gradle.properties | 4 +- lib/main.dart | 37 +++++++++-------- lib/provider/data.dart | 3 +- lib/screens/game_pick_image.dart | 69 +++++++++++++++++--------------- lib/screens/game_pick_word.dart | 65 ++++++++++++++++-------------- lib/screens/home.dart | 12 +++--- lib/utils/random_pick_data.dart | 19 +++++---- lib/utils/random_pick_image.dart | 4 +- lib/utils/random_pick_word.dart | 4 +- pubspec.lock | 16 ++++---- test/widget_test.dart | 14 ------- 11 files changed, 123 insertions(+), 124 deletions(-) delete mode 100644 test/widget_test.dart diff --git a/android/gradle.properties b/android/gradle.properties index 18da836..3e5bc11 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.24 -app.versionCode=48 +app.versionName=0.1.25 +app.versionCode=49 diff --git a/lib/main.dart b/lib/main.dart index 7c10b09..60bfe3f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -26,25 +26,28 @@ class MyApp extends StatelessWidget { ), home: Home(), onGenerateRoute: (settings) { - final args = settings.arguments as Map<String, dynamic>; + switch (settings.name) { + case '/game-pick-word': + { + return MaterialPageRoute( + builder: (context) => GamePickWordPage(), + ); + } + break; - switch(settings.name) { - case '/game-pick-word': { - return MaterialPageRoute( - builder: (context) => GamePickWordPage(), - ); - } - break; + case '/game-pick-image': + { + return MaterialPageRoute( + builder: (context) => GamePickImagePage(), + ); + } + break; - case '/game-pick-image': { - return MaterialPageRoute( - builder: (context) => GamePickImagePage(), - ); - } - break; - - default: { print("Unknown menu entry"); } - break; + default: + { + print("Unknown menu entry"); + } + break; } return null; diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 9d02de7..42c833c 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -1,12 +1,11 @@ import 'package:flutter/foundation.dart'; class Data extends ChangeNotifier { - // Language String _lang = ''; // randomization - Map _word = null; + Map _word; List _otherWords = []; List _images = []; final int _recentWordsCount = 20; diff --git a/lib/screens/game_pick_image.dart b/lib/screens/game_pick_image.dart index 507f401..bf549de 100644 --- a/lib/screens/game_pick_image.dart +++ b/lib/screens/game_pick_image.dart @@ -5,8 +5,8 @@ import '../provider/data.dart'; import '../utils/random_pick_data.dart'; class GamePickImagePage extends StatelessWidget { - int _countWords = 4; - int _countImages = 1; + final int _countWords = 4; + final int _countImages = 1; Future<void> startGame(Data myProvider, String lang) async { await resetGame(myProvider); @@ -44,11 +44,9 @@ class GamePickImagePage extends StatelessWidget { } attempts++; - if ( - (words != null) && (words.length == _countWords) - && - !myProvider.isRecentlyPicked(word['key']) - ) { + if ((words != null) && + (words.length == _countWords) && + !myProvider.isRecentlyPicked(word['key'])) { myProvider.updateWord = word; myProvider.updateImages = words; } @@ -130,18 +128,14 @@ class GamePickImagePage extends StatelessWidget { double imageSize = 130; String imageAsset = 'assets/placeholder.png'; - if ( - (word['images'] != null) - && - (word['images'].length != 0) - && - (word['images'][0] != null) - ) { - imageAsset = 'assets/images/'+word['images'][0]; + if ((word['images'] != null) && + (word['images'].length != 0) && + (word['images'][0] != null)) { + imageAsset = 'assets/images/' + word['images'][0]; } return Container( - child: FlatButton( + child: TextButton( child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), @@ -155,10 +149,12 @@ class GamePickImagePage extends StatelessWidget { image: AssetImage(imageAsset), width: imageSize, height: imageSize, - fit: BoxFit.fill + fit: BoxFit.fill, ), ), - onPressed: () { checkWord(myProvider, word); }, + onPressed: () { + checkWord(myProvider, word); + }, ), ); } @@ -217,8 +213,10 @@ class GamePickImagePage extends StatelessWidget { width: 6, ), ), - child: RaisedButton( - padding: EdgeInsets.all(15), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + padding: EdgeInsets.all(15), + ), child: Text( word != null ? word[myProvider.lang] : '', style: TextStyle( @@ -227,6 +225,7 @@ class GamePickImagePage extends StatelessWidget { color: Colors.white, ), ), + onPressed: null, ), ), ], @@ -239,9 +238,12 @@ class GamePickImagePage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Container( - child: RaisedButton( - color: Colors.teal, - padding: EdgeInsets.all(35), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + onPrimary: Colors.teal, + primary: Colors.teal, + padding: EdgeInsets.all(35), + ), child: Text( "🇫🇷", style: TextStyle( @@ -254,9 +256,12 @@ class GamePickImagePage extends StatelessWidget { ), SizedBox(height: 15), Container( - child: RaisedButton( - color: Colors.teal, - padding: EdgeInsets.all(35), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + onPrimary: Colors.teal, + primary: Colors.teal, + padding: EdgeInsets.all(35), + ), child: Text( "🇬🇧", style: TextStyle( @@ -294,9 +299,9 @@ class GamePickImagePage extends StatelessWidget { children: <Widget>[ _buildTextItemBlock(_myProvider), SizedBox(height: 2), - ((_myProvider.word == null) || (_myProvider.word['key'] == '')) ? - _buildStartGameBlock(_myProvider) : - _buildScoreContainer(_myProvider), + ((_myProvider.word == null) || (_myProvider.word['key'] == '')) + ? _buildStartGameBlock(_myProvider) + : _buildScoreContainer(_myProvider), SizedBox(height: 2), _buildImageItemsBlock(_myProvider), ], @@ -313,9 +318,9 @@ class GamePickImagePage extends StatelessWidget { height: (MediaQuery.of(context).size.height), width: (MediaQuery.of(context).size.width), child: pageContent, - ) - ) - ) + ), + ), + ), ); } } diff --git a/lib/screens/game_pick_word.dart b/lib/screens/game_pick_word.dart index 9ef2cc9..9b1aa62 100644 --- a/lib/screens/game_pick_word.dart +++ b/lib/screens/game_pick_word.dart @@ -5,8 +5,8 @@ import '../provider/data.dart'; import '../utils/random_pick_data.dart'; class GamePickWordPage extends StatelessWidget { - int _countWords = 4; - int _countImages = 4; + final int _countWords = 4; + final int _countImages = 4; Future<void> startGame(Data myProvider, String lang) async { await resetGame(myProvider); @@ -46,13 +46,9 @@ class GamePickWordPage extends StatelessWidget { } attempts++; - if ( - ((words != null) && (words.length == _countWords)) - && - ((images != null) && (images.length == _countImages)) - && - !myProvider.isRecentlyPicked(word['key']) - ) { + if (((words != null) && (words.length == _countWords)) && + ((images != null) && (images.length == _countImages)) && + !myProvider.isRecentlyPicked(word['key'])) { myProvider.updateWord = word; myProvider.updateOtherWords = words.skip(1).toList(); myProvider.updateImages = images; @@ -136,7 +132,7 @@ class GamePickWordPage extends StatelessWidget { String imageAsset = 'assets/placeholder.png'; if (image != null) { - imageAsset = 'assets/images/'+image; + imageAsset = 'assets/images/' + image; } return Container( @@ -149,11 +145,10 @@ class GamePickWordPage extends StatelessWidget { ), ), child: Image( - image: AssetImage(imageAsset), - width: imageSize, - height: imageSize, - fit: BoxFit.fill - ), + image: AssetImage(imageAsset), + width: imageSize, + height: imageSize, + fit: BoxFit.fill), ); } @@ -197,8 +192,10 @@ class GamePickWordPage extends StatelessWidget { width: 6, ), ), - child: FlatButton( - padding: EdgeInsets.all(15), + child: TextButton( + style: TextButton.styleFrom( + padding: EdgeInsets.all(15), + ), child: Text( word != null ? word[myProvider.lang] : '', style: TextStyle( @@ -207,7 +204,9 @@ class GamePickWordPage extends StatelessWidget { color: Colors.white, ), ), - onPressed: () { checkWord(myProvider, word); }, + onPressed: () { + checkWord(myProvider, word); + }, ), ); } @@ -262,9 +261,12 @@ class GamePickWordPage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Container( - child: RaisedButton( - color: Colors.teal, - padding: EdgeInsets.all(35), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + onPrimary: Colors.teal, + primary: Colors.teal, + padding: EdgeInsets.all(35), + ), child: Text( "🇫🇷", style: TextStyle( @@ -277,9 +279,12 @@ class GamePickWordPage extends StatelessWidget { ), SizedBox(height: 15), Container( - child: RaisedButton( - color: Colors.teal, - padding: EdgeInsets.all(35), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + onPrimary: Colors.teal, + primary: Colors.teal, + padding: EdgeInsets.all(35), + ), child: Text( "🇬🇧", style: TextStyle( @@ -317,9 +322,9 @@ class GamePickWordPage extends StatelessWidget { children: <Widget>[ _buildImageItemsBlock(_myProvider.images), SizedBox(height: 2), - ((_myProvider.word == null) || (_myProvider.word['key'] == '')) ? - _buildStartGameBlock(_myProvider) : - _buildScoreContainer(_myProvider), + ((_myProvider.word == null) || (_myProvider.word['key'] == '')) + ? _buildStartGameBlock(_myProvider) + : _buildScoreContainer(_myProvider), SizedBox(height: 2), _buildTextItemsBlock(_myProvider), ], @@ -336,9 +341,9 @@ class GamePickWordPage extends StatelessWidget { height: (MediaQuery.of(context).size.height), width: (MediaQuery.of(context).size.width), child: pageContent, - ) - ) - ) + ), + ), + ), ); } } diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 75c3bd2..bfe6a84 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -34,14 +34,17 @@ class Home extends StatelessWidget { width: 8, ), ), - child: FlatButton( - color: color, - padding: EdgeInsets.all(15), + child: TextButton( + style: TextButton.styleFrom( + padding: EdgeInsets.all(15), + primary: color, + backgroundColor: color, + ), child: Image( image: AssetImage(imageAsset), width: imageSize, height: imageSize, - fit: BoxFit.fill + fit: BoxFit.fill, ), onPressed: () { resetGame(_myProvider); @@ -54,7 +57,6 @@ class Home extends StatelessWidget { ); } - return Scaffold( backgroundColor: Colors.blue, body: Center( diff --git a/lib/utils/random_pick_data.dart b/lib/utils/random_pick_data.dart index 553bba6..9a21081 100644 --- a/lib/utils/random_pick_data.dart +++ b/lib/utils/random_pick_data.dart @@ -1,6 +1,4 @@ import 'dart:async'; -import 'dart:convert'; -import 'package:flutter/services.dart'; import 'random_pick_word.dart'; import 'random_pick_image.dart'; @@ -11,11 +9,12 @@ class RandomPickData { List _words; init(String lang, int wordsCount, int imagesPerWordCount) async { - _words = new List(wordsCount); + _words = List.filled(wordsCount, []); await getWordsAndImages(lang, wordsCount, imagesPerWordCount); } - Future<void> getWordsAndImages(String lang, int wordsCount, int imagesPerWordCount) async { + Future<void> getWordsAndImages( + String lang, int wordsCount, int imagesPerWordCount) async { RandomPickWord randomPickWord; RandomPickImage randomPickImage; @@ -28,13 +27,13 @@ class RandomPickData { pickedWords = randomPickWord.words; for (var i = 0; i < pickedWords.length; i++) { - Map word = pickedWords[i]; + Map word = pickedWords[i]; - randomPickImage = RandomPickImage(); - await randomPickImage.init(word['key'], imagesPerWordCount); - if (randomPickImage.images != null) { - pickedWords[i]['images'] = randomPickImage.images; - } + randomPickImage = RandomPickImage(); + await randomPickImage.init(word['key'], imagesPerWordCount); + if (randomPickImage.images != null) { + pickedWords[i]['images'] = randomPickImage.images; + } } } diff --git a/lib/utils/random_pick_image.dart b/lib/utils/random_pick_image.dart index 1bbf6a4..a726960 100644 --- a/lib/utils/random_pick_image.dart +++ b/lib/utils/random_pick_image.dart @@ -8,7 +8,7 @@ class RandomPickImage { List _images; init(String word, int count) async { - _images = new List(count); + _images = List.filled(count, []); await imageFromLocalFile(word, count); } @@ -25,7 +25,7 @@ class RandomPickImage { // Check we have enough images if ((imageList == null) || (imageList.length < count)) { - print('Not enough images in list for word "'+word+'".'); + print('Not enough images in list for word "' + word + '".'); _images = []; } else { // Randomize images list diff --git a/lib/utils/random_pick_word.dart b/lib/utils/random_pick_word.dart index 169c239..eb4cfbc 100644 --- a/lib/utils/random_pick_word.dart +++ b/lib/utils/random_pick_word.dart @@ -8,7 +8,7 @@ class RandomPickWord { List _words; init(String lang, int count) async { - _words = new List(count); + _words = List.filled(count, []); await wordFromLocalFile(lang, count); } @@ -29,7 +29,7 @@ class RandomPickWord { _words = []; } else { // Remove empty words - wordList.removeWhere((value) => ((value.containsKey(lang) == false) || (value[lang] == ''))); + wordList.removeWhere((w) => ((w.containsKey(lang) == false) || (w[lang] == ''))); // Randomize words list wordList.shuffle(); diff --git a/pubspec.lock b/pubspec.lock index 6f3d123..15e5564 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -42,14 +42,14 @@ packages: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.15.0" + version: "1.16.0" fake_async: dependency: transitive description: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0" flutter: dependency: "direct main" description: flutter @@ -87,7 +87,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: @@ -108,7 +108,7 @@ packages: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.1" provider: dependency: "direct main" description: @@ -127,7 +127,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: @@ -162,7 +162,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: @@ -176,7 +176,7 @@ packages: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.2" 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 c0f128f..0000000 --- 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:wordguessing/main.dart'; - -void main() { -} -- GitLab