diff --git a/android/app/build.gradle b/android/app/build.gradle index 2f9bebd0908500688efe3330ee01f369de25229f..fdffea3276520e6d5fc3e698db3e7a417f10f603 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -39,7 +39,7 @@ if (keystorePropertiesFile.exists()) { } android { - compileSdkVersion 29 + compileSdkVersion 31 lintOptions { disable 'InvalidPackage' diff --git a/android/gradle.properties b/android/gradle.properties index 730a8e70882c7ddd71b203926afd929514125f23..2f77d26c5be7547e1a1406ea4e6a34a5e442639d 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -2,5 +2,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true android.enableR8=true -app.versionName=1.2.2 -app.versionCode=13 +app.versionName=1.2.3 +app.versionCode=14 diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 0570e499594e47cffd59711d89b2fa312765cf5b..b224e4eb163180b61fe8c152af7e999e5e6b8e56 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -36,8 +36,8 @@ class Data extends ChangeNotifier { void _getPrefs() async { await _sharedPrefs.init(); _gameModeValue = _sharedPrefs.gameMode ?? - onlineGameMode.keys - .firstWhere((k) => onlineGameMode[k].contains(_sharedPrefs.level), orElse: () => false); + onlineGameMode.keys.firstWhere((k) => onlineGameMode[k].contains(_sharedPrefs.level), + orElse: () => false); _levelValue = onlineGameMode[_gameModeValue].contains(_sharedPrefs.level) ? _sharedPrefs.level : onlineGameMode[_gameModeValue].first; diff --git a/lib/screens/game.dart b/lib/screens/game.dart index 9ba71b72c2d0040a7be9ba034530ae5d76018d72..2c039c4dd4e8e06b4d34dc8008dba80f5f5a1395 100644 --- a/lib/screens/game.dart +++ b/lib/screens/game.dart @@ -49,7 +49,7 @@ class Game extends StatelessWidget { title: Text('Indice'), content: Text(_myProvider.clue), actions: <Widget>[ - FlatButton( + TextButton( child: Text('Revenir au jeu'), onPressed: () => Navigator.of(context).pop(), ) diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 75e73b201321c5d0cf84e235c1cd0202eb0e430c..6142e9eeb354c2c618c70fe74d5f50ff7f4e4d1a 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -12,7 +12,6 @@ class Home extends StatelessWidget { @override Widget build(BuildContext context) { - Orientation orientation = MediaQuery.of(context).orientation; Data _myProvider = Provider.of<Data>(context); void _errorWord(context) { @@ -23,7 +22,7 @@ class Home extends StatelessWidget { content: Text('Erreur inattendue à la récupération d\'un mot aléatoire.\n' 'Installer une nouvelle version de l\'application pourrait corriger cette anomalie.'), actions: <Widget>[ - FlatButton( + TextButton( child: Text('Fermer'), onPressed: () => Navigator.of(context).pop(), ) @@ -64,7 +63,6 @@ class Home extends StatelessWidget { ), ), ), - Column( children: [ Row( @@ -73,7 +71,8 @@ class Home extends StatelessWidget { Text('Mode en ligne'), Switch( value: _myProvider.gameModeValue, - onChanged: (bool value) => _myProvider.updateGameMode = value, + onChanged: (bool value) => + _myProvider.updateGameMode = value, activeTrackColor: Color(board), activeColor: Colors.greenAccent[400], ), @@ -84,7 +83,8 @@ class Home extends StatelessWidget { children: [ Text('Niveau'), DropdownButton<String>( - value: _myProvider.levelValue ?? onlineGameMode[_myProvider.gameModeValue].first, + value: _myProvider.levelValue ?? + onlineGameMode[_myProvider.gameModeValue].first, items: onlineGameMode[_myProvider.gameModeValue] .map<DropdownMenuItem<String>>((String value) { return DropdownMenuItem<String>( @@ -92,21 +92,20 @@ class Home extends StatelessWidget { child: Text(value), ); }).toList(), - onChanged: (String value) => _myProvider.updateLevel = value, + onChanged: (String value) => + _myProvider.updateLevel = value, ), ], ), ], ), - - RaisedButton.icon( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.all(Radius.circular(10.0))), - color: Color(board), - textColor: Colors.white, - padding: EdgeInsets.all(10.0), + ElevatedButton.icon( + style: ElevatedButton.styleFrom( + onPrimary: Colors.white, + primary: Color(board), + padding: EdgeInsets.all(10.0), + ), onPressed: () async { - Scaffold.of(context).removeCurrentSnackBar(); _myProvider.resetGame(); _myProvider.searching = true; bool control = true; diff --git a/lib/utils/random_pick.dart b/lib/utils/random_pick.dart index 49c1a13351cd00436144ffae3b1848d22a94d25f..fce8cd4d7232f74eedba122286aded9ada34621f 100644 --- a/lib/utils/random_pick.dart +++ b/lib/utils/random_pick.dart @@ -23,11 +23,13 @@ class RandomPick { await wordFromLocal(); break; case 'Avancé': - _url = 'https://www.palabrasaleatorias.com/mots-aleatoires.php?fs=1&fs2=0&Submit=Nouveau+mot'; + _url = + 'https://www.palabrasaleatorias.com/mots-aleatoires.php?fs=1&fs2=0&Submit=Nouveau+mot'; await wordFromWeb(_url); break; case 'Junior': - _url = 'https://www.palabrasaleatorias.com/mots-aleatoires.php?fs=1&fs2=1&Submit=Nouveau+mot'; + _url = + 'https://www.palabrasaleatorias.com/mots-aleatoires.php?fs=1&fs2=1&Submit=Nouveau+mot'; await wordFromWeb(_url); break; case 'Expert': diff --git a/lib/widgets/dialog_fetch_error.dart b/lib/widgets/dialog_fetch_error.dart index fad566546938220cacae00ee385a2b56000809cb..c355b285f95eaa7300a631db1673fb5e620f3fbb 100644 --- a/lib/widgets/dialog_fetch_error.dart +++ b/lib/widgets/dialog_fetch_error.dart @@ -16,11 +16,11 @@ class DialogFetchError extends StatelessWidget { 'La connexion internet est peut-être inaccessible.\n' 'Changer vers un mode de jeu hors-ligne ?'), actions: [ - FlatButton( + TextButton( child: const Text('REVENIR'), onPressed: () => Navigator.pop(context, false), ), - FlatButton( + TextButton( child: const Text('ACCEPTER'), onPressed: () => Navigator.pop(context, true), ), diff --git a/lib/widgets/dialog_gameover.dart b/lib/widgets/dialog_gameover.dart index 9925deee99e5ee3c5ab07f230087c4c8d986176f..e18de8de47cd5248d859c3fdd09f5e7bd10694b2 100644 --- a/lib/widgets/dialog_gameover.dart +++ b/lib/widgets/dialog_gameover.dart @@ -38,13 +38,13 @@ class DialogGameOver extends StatelessWidget { ), ), actions: [ - FlatButton( + TextButton( child: const Text('QUITTER'), onPressed: () { Navigator.pushNamed(context, Home.id); }, ), - FlatButton( + TextButton( child: const Text('REJOUER'), onPressed: () async { _myProvider.resetSuccessAndErrors(); diff --git a/lib/widgets/letters.dart b/lib/widgets/letters.dart index 850dcf2c848ff6885a0d83619fd017380571182c..d3f45db3112ff1edd891c20e9f900d6ab86e3712 100644 --- a/lib/widgets/letters.dart +++ b/lib/widgets/letters.dart @@ -23,10 +23,12 @@ class LetterButtons extends StatelessWidget { keys.add( Padding( padding: const EdgeInsets.all(2.0), - child: RaisedButton( - disabledColor: Colors.grey, - disabledTextColor: Colors.white, - splashColor: Color(accent), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + primary: Colors.grey, + onPrimary: Colors.white, + shadowColor: Color(accent), + ), onPressed: _myProvider.usedLetters.contains(key) ? null : () async { @@ -61,13 +63,13 @@ class LetterButtons extends StatelessWidget { key, textAlign: TextAlign.center, ), - color: Colors.grey[200], ), ), ); }); return Container( - alignment: orientation == Orientation.portrait ? Alignment.bottomCenter : Alignment.center, + alignment: + orientation == Orientation.portrait ? Alignment.bottomCenter : Alignment.center, color: Color(darkGreen), padding: EdgeInsets.all(10.0), margin: EdgeInsets.only(top: orientation == Orientation.portrait ? 0.0 : paddingTop), @@ -75,7 +77,8 @@ class LetterButtons extends StatelessWidget { padding: EdgeInsets.zero, shrinkWrap: true, crossAxisCount: orientation == Orientation.portrait ? 9 : 3, - childAspectRatio: orientation == Orientation.portrait ? 1 / 1 : (itemWidth / itemHeight), + childAspectRatio: + orientation == Orientation.portrait ? 1 / 1 : (itemWidth / itemHeight), children: keys, ), ); diff --git a/lib/widgets/my_app_bar.dart b/lib/widgets/my_app_bar.dart index 95ac8ecd993f2ad0da7fa238d8e982a4bb2973bc..74080942ea54381cd5491e0743f149d80ad3638c 100644 --- a/lib/widgets/my_app_bar.dart +++ b/lib/widgets/my_app_bar.dart @@ -1,8 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart' show SystemNavigator; -import 'package:provider/provider.dart'; -import '../provider/data.dart'; import '../screens/scores.dart'; class MyAppBar extends StatelessWidget implements PreferredSizeWidget { @@ -14,8 +12,6 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { @override Widget build(BuildContext context) { - Data _myProvider = Provider.of<Data>(context); - return AppBar( title: Text('Hangman'), automaticallyImplyLeading: false, @@ -27,7 +23,6 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { SystemNavigator.pop(); break; case 'Scores': - Scaffold.of(context).removeCurrentSnackBar(); Navigator.pushNamed(context, Scores.id); break; } diff --git a/pubspec.lock b/pubspec.lock index 89271c73af2fd565ae87f205e3eea43ce366f71b..51ae67c2497998e825813541a1162b572910f276 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,7 +21,7 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" charcode: dependency: transitive description: @@ -42,7 +42,7 @@ packages: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.15.0" + version: "1.16.0" csslib: dependency: transitive description: @@ -63,21 +63,21 @@ packages: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0" ffi: dependency: transitive description: name: ffi url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "2.0.1" file: dependency: transitive description: name: file url: "https://pub.dartlang.org" source: hosted - version: "6.1.1" + version: "6.1.2" flutter: dependency: "direct main" description: flutter @@ -120,14 +120,14 @@ packages: name: js url: "https://pub.dartlang.org" source: hosted - version: "0.6.3" + version: "0.6.4" list_french_words: dependency: "direct main" description: name: list_french_words url: "https://pub.dartlang.org" source: hosted - version: "0.1.0+1" + version: "0.1.0+2" matcher: dependency: transitive description: @@ -135,6 +135,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.12.11" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4" meta: dependency: transitive description: @@ -155,56 +162,56 @@ packages: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.1" path_provider_linux: dependency: transitive description: name: path_provider_linux url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+2" + version: "2.1.7" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "2.0.4" path_provider_windows: dependency: transitive description: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted - version: "0.0.5" + version: "2.1.0" pedantic: dependency: transitive description: name: pedantic url: "https://pub.dartlang.org" source: hosted - version: "1.11.0" + version: "1.11.1" platform: dependency: transitive description: name: platform url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.1.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "2.1.2" process: dependency: transitive description: name: process url: "https://pub.dartlang.org" source: hosted - version: "4.2.1" + version: "4.2.4" provider: dependency: "direct main" description: @@ -218,42 +225,56 @@ packages: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "0.5.12+4" + version: "2.0.15" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.12" + shared_preferences_ios: + dependency: transitive + description: + name: shared_preferences_ios + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux url: "https://pub.dartlang.org" source: hosted - version: "0.0.2+4" + version: "2.1.1" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+11" + version: "2.0.4" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "2.0.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.2+7" + version: "2.0.4" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows url: "https://pub.dartlang.org" source: hosted - version: "0.0.2+3" + version: "2.1.1" sky_engine: dependency: transitive description: flutter @@ -265,7 +286,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: @@ -300,35 +321,35 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.3" + version: "0.4.9" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.3.1" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.2" win32: dependency: transitive description: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.7.0" xdg_directories: dependency: transitive description: name: xdg_directories url: "https://pub.dartlang.org" source: hosted - version: "0.1.2" + version: "0.2.0+1" sdks: - dart: ">=2.13.0 <3.0.0" - flutter: ">=1.20.0" + dart: ">=2.17.0 <3.0.0" + flutter: ">=3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 00d79eb6c42b4d02f56e6cd6d7c6d054dda5e3a5..9f1493d1b39d4eb39d9fcc256f662ed20b82998a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,7 +10,7 @@ dependencies: flutter: sdk: flutter provider: ^4.3.2+3 - shared_preferences: ^0.5.12+4 + shared_preferences: ^2.0.6 html: ^0.14.0+4 http: ^0.12.2 diacritic: ^0.1.1 diff --git a/test/widget_test.dart b/test/widget_test.dart deleted file mode 100644 index 6dc53c329f67440536cb8b3bc85c5cfb0e014c12..0000000000000000000000000000000000000000 --- a/test/widget_test.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:hangman/main.dart'; - -void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { - await tester.pumpWidget(Hangman()); - }); -}