From d13b41c45e1c9d312d40d44e0c3377a3d2acac35 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Sat, 2 Mar 2024 22:42:11 +0100
Subject: [PATCH] Remove code deprecations

---
 android/gradle.properties           |  4 ++--
 lib/screens/home.dart               | 10 +++++++---
 lib/widgets/dialog_fetch_error.dart |  4 ++--
 lib/widgets/dialog_gameover.dart    |  5 +++--
 lib/widgets/letters.dart            |  1 +
 pubspec.yaml                        |  2 +-
 6 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/android/gradle.properties b/android/gradle.properties
index 46392af..f522c40 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 4a797a7..cde5145 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 f491545..45f235d 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 512c094..96f336f 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 2c13855..eb567e5 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 80f0f7f..30bab32 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'
-- 
GitLab