diff --git a/android/gradle.properties b/android/gradle.properties index 46392afb057d8236e91fafc7645ee672d6ed64f8..f522c400d72b2afc43382fa45d82adf1ac156317 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.2.15 -app.versionCode=26 +app.versionName=1.2.16 +app.versionCode=27 diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 4a797a7d67334e4081ff967dfcedcf83013b6c59..cde5145e16263914003cb4307cb813a20fd45d48 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -38,8 +38,8 @@ class Home extends StatelessWidget { body: Builder( builder: (context) => Center( child: myProvider.searching == true - ? WillPopScope( - onWillPop: () async => false, + ? PopScope( + onPopInvoked: (didPop) {}, child: const Center( child: CircularProgressIndicator(), ), @@ -106,7 +106,7 @@ class Home extends StatelessWidget { style: TextButton.styleFrom( foregroundColor: Colors.white, backgroundColor: const Color(board), - padding: const EdgeInsets.all(10.0), + padding: const EdgeInsets.all(20.0), ), onPressed: () async { myProvider.resetGame(); @@ -115,6 +115,7 @@ class Home extends StatelessWidget { await const Game().pickWord(context, myProvider); if (myProvider.secretWord == '' || myProvider.hiddenWord == '') { control = false; + if (!context.mounted) return; var response = await Navigator.push( context, MaterialPageRoute( @@ -127,6 +128,7 @@ class Home extends StatelessWidget { } else { myProvider.setPrefGameMode = false; myProvider.setPrefLevel = defaultLevel; + if (!context.mounted) return; await const Game().pickWord(context, myProvider); control = true; } @@ -135,10 +137,12 @@ class Home extends StatelessWidget { if (myProvider.secretWord == 'UNEXPECTED ERROR') { control = false; myProvider.resetGame(); + if (!context.mounted) return; errorWord(context); } if (control) { + if (!context.mounted) return; Navigator.pushNamed(context, Game.id) .then((value) => myProvider.searching = false); } diff --git a/lib/widgets/dialog_fetch_error.dart b/lib/widgets/dialog_fetch_error.dart index f49154570d67e06e698336e6c820f139456acd10..45f235d2bc4903b3471457d9ae8e575d2f3348bb 100644 --- a/lib/widgets/dialog_fetch_error.dart +++ b/lib/widgets/dialog_fetch_error.dart @@ -8,8 +8,8 @@ class DialogFetchError extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( backgroundColor: const Color(board), - body: WillPopScope( - onWillPop: () async => false, + body: PopScope( + onPopInvoked: (didPop) {}, child: AlertDialog( title: const Text('Connexion impossible'), content: const Text('Impossible de récupérer un mot aléatoire. ' diff --git a/lib/widgets/dialog_gameover.dart b/lib/widgets/dialog_gameover.dart index 512c0944666a4963e76e52a1b3dc7bf90ae60ba6..96f336faa7ef4c731c4efc4e4f16ac171e51549e 100644 --- a/lib/widgets/dialog_gameover.dart +++ b/lib/widgets/dialog_gameover.dart @@ -18,8 +18,8 @@ class DialogGameOver extends StatelessWidget { backgroundColor: Colors.transparent, body: myProvider.searching == true ? const Center(child: CircularProgressIndicator()) - : WillPopScope( - onWillPop: () async => false, + : PopScope( + onPopInvoked: (didPop) {}, child: AlertDialog( title: Row( children: [ @@ -51,6 +51,7 @@ class DialogGameOver extends StatelessWidget { onPressed: () async { myProvider.resetSuccessAndErrors(); await const Game().pickWord(context, myProvider); + if (!context.mounted) return; Navigator.of(context).pop(); }, ), diff --git a/lib/widgets/letters.dart b/lib/widgets/letters.dart index 2c13855ee682eab886110bf338bfeb4191e8a028..eb567e5a6d65d636b38c39d65fabe8d12068e7e5 100644 --- a/lib/widgets/letters.dart +++ b/lib/widgets/letters.dart @@ -54,6 +54,7 @@ class LetterButtons extends StatelessWidget { if (myProvider.errors == 8) { await Future.delayed(const Duration(milliseconds: 900)); //???? myProvider.addDefeat(); + if (!context.mounted) return; showDialog( context: context, builder: (context) => const DialogGameOver(defeat), diff --git a/pubspec.yaml b/pubspec.yaml index 80f0f7fe36af3cabb28935d725174672f6c18ba6..30bab3294dae8c01f991a1c8c76d4d08a0fd9d9d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: hangman description: Hangman game, have fun with words and letters! publish_to: 'none' -version: 1.2.15+26 +version: 1.2.16+27 environment: sdk: '^3.0.0'