From 02cbd161a7bccc09c5a6b658f391d2504e0c90b9 Mon Sep 17 00:00:00 2001 From: "nicolas.barbosa" Date: Fri, 31 May 2024 13:22:48 +0200 Subject: [PATCH] continuer navigation --- Sources/MauiSpark/App.xaml.cs | 1 + Sources/MauiSpark/Pages/ConnexionPage.xaml.cs | 4 --- Sources/MauiSpark/Pages/Mode.xaml.cs | 5 +--- Sources/MauiSpark/Pages/Plateau.xaml.cs | 30 +++++++++++++++---- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/Sources/MauiSpark/App.xaml.cs b/Sources/MauiSpark/App.xaml.cs index 7ec9fcc..e51a453 100644 --- a/Sources/MauiSpark/App.xaml.cs +++ b/Sources/MauiSpark/App.xaml.cs @@ -9,6 +9,7 @@ namespace MauiSpark InitializeComponent(); MainPage = new NavigationPage(new Accueil()); + MainPage.Title = "Mastermind"; } } } diff --git a/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs b/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs index 01917f8..8c2f7cf 100644 --- a/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs +++ b/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs @@ -1,4 +1,3 @@ -using CoreLibrary; using CoreLibrary.Events; using CoreLibrary.Joueurs; @@ -11,7 +10,6 @@ public partial class ConnexionPage : ContentPage public ConnexionPage() { - NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasNavigationBar(this, false); InitializeComponent(); @@ -31,7 +29,5 @@ public partial class ConnexionPage : ContentPage { if(joueurBuilder != null) joueurBuilder.Nom(Nom.Text); - - joueurBuilder = null; } } \ No newline at end of file diff --git a/Sources/MauiSpark/Pages/Mode.xaml.cs b/Sources/MauiSpark/Pages/Mode.xaml.cs index 7521745..f6fd149 100644 --- a/Sources/MauiSpark/Pages/Mode.xaml.cs +++ b/Sources/MauiSpark/Pages/Mode.xaml.cs @@ -5,12 +5,8 @@ namespace MauiSpark.Pages; public partial class Mode : ContentPage { - public static ConnexionPage test; - - public Mode() { - NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasNavigationBar(this, false); InitializeComponent(); @@ -21,6 +17,7 @@ public partial class Mode : ContentPage Partie partie = new Partie(new ReglesClassiques()); partie.DemanderNom += new ConnexionPage().QuandDemanderNom; + partie.NouveauTour += new Plateau().QuandNouveauTour; partie.Jouer(); } diff --git a/Sources/MauiSpark/Pages/Plateau.xaml.cs b/Sources/MauiSpark/Pages/Plateau.xaml.cs index 390954b..dbf9a8b 100644 --- a/Sources/MauiSpark/Pages/Plateau.xaml.cs +++ b/Sources/MauiSpark/Pages/Plateau.xaml.cs @@ -37,16 +37,31 @@ public partial class Plateau : ContentPage private Code? code; private Joueur? joueur; - public Plateau(Partie partie) + public Plateau() { - NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasNavigationBar(this, false); + NavigationPage.SetHasBackButton(this, true); InitializeComponent(); } - public void QuandNouveauTour(object? sender, NouveauTourEventArgs e) + public async void QuandNouveauTour(object? sender, NouveauTourEventArgs e) { + if (Application.Current != null && Application.Current.MainPage != null && ((NavigationPage)Application.Current.MainPage).CurrentPage != this) + { + IEnumerable pages = Application.Current.MainPage.Navigation.NavigationStack.Reverse(); + + foreach(Page page in pages) + { + if (page is Accueil) + break; + + Application.Current.MainPage.Navigation.RemovePage(page); + } + + await Application.Current.MainPage.Navigation.PushAsync(this); + } + code = e.Code; joueur = e.Joueur; @@ -60,7 +75,8 @@ public partial class Plateau : ContentPage try { - code.AjouterJeton(new Jeton(couleur)); + if(code != null) + code.AjouterJeton(new Jeton(couleur)); } catch (CodeCompletException) { @@ -72,7 +88,8 @@ public partial class Plateau : ContentPage { try { - code.SupprimerDernierJeton(); + if(code != null) + code.SupprimerDernierJeton(); } catch(CodeVideException) { @@ -84,7 +101,8 @@ public partial class Plateau : ContentPage { try { - joueur.Code(code); + if(joueur != null && code != null) + joueur.Code(code); } catch (CodeIncompletException) {