From 5d2df0423cac42f6684fc81cba72b44dea2b593e Mon Sep 17 00:00:00 2001 From: cldupland Date: Fri, 13 Dec 2019 09:30:11 +0100 Subject: [PATCH] Changement de l'affichage des messages en jeu --- .../Resources/Resource.designer.cs | 8 +-- .../Services/MessageAndroid.cs | 30 +++++++++++ .../TheGameExtreme.Android.csproj | 2 + TheGameExtreme.iOS/OrderStacks.csproj | 4 ++ TheGameExtreme.iOS/Services/MessageIOS.cs | 51 +++++++++++++++++++ TheGameExtreme/Interface/IMessage.cs | 10 ++++ TheGameExtreme/TheGameExtreme.csproj | 1 + TheGameExtreme/view/HomePage.xaml.cs | 5 +- TheGameExtreme/view/MainPage.xaml.cs | 3 +- 9 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 TheGameExtreme.Android/Services/MessageAndroid.cs create mode 100644 TheGameExtreme.iOS/Services/MessageIOS.cs create mode 100644 TheGameExtreme/Interface/IMessage.cs diff --git a/TheGameExtreme.Android/Resources/Resource.designer.cs b/TheGameExtreme.Android/Resources/Resource.designer.cs index 4d79f6d..66d6375 100644 --- a/TheGameExtreme.Android/Resources/Resource.designer.cs +++ b/TheGameExtreme.Android/Resources/Resource.designer.cs @@ -1,11 +1,11 @@ #pragma warning disable 1591 //------------------------------------------------------------------------------ // -// Ce code a été généré par un outil. -// Version du runtime :4.0.30319.42000 +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // -// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si -// le code est régénéré. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ diff --git a/TheGameExtreme.Android/Services/MessageAndroid.cs b/TheGameExtreme.Android/Services/MessageAndroid.cs new file mode 100644 index 0000000..7c3506b --- /dev/null +++ b/TheGameExtreme.Android/Services/MessageAndroid.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections; +using Android.App; +using Android.Views; +using Android.Widget; +using TheGameExtreme.Droid.Services; +using TheGameExtreme.Interface; + +[assembly: Xamarin.Forms.Dependency(typeof(MessageAndroid))] +namespace TheGameExtreme.Droid.Services +{ + public class MessageAndroid : IMessage + { + public IDictionary Properties => throw new NotImplementedException(); + + public void LongAlert(string message) + { + Toast toast = Toast.MakeText(Application.Context, message, ToastLength.Long); + toast.SetGravity(GravityFlags.Center | GravityFlags.Center, 0, 0); + toast.Show(); + } + + public void ShortAlert(string message) + { + Toast toast = Toast.MakeText(Application.Context, message, ToastLength.Short); + toast.SetGravity(GravityFlags.Center | GravityFlags.Center, 0, 0); + toast.Show(); + } + } +} diff --git a/TheGameExtreme.Android/TheGameExtreme.Android.csproj b/TheGameExtreme.Android/TheGameExtreme.Android.csproj index 30481dc..b2dc185 100644 --- a/TheGameExtreme.Android/TheGameExtreme.Android.csproj +++ b/TheGameExtreme.Android/TheGameExtreme.Android.csproj @@ -74,6 +74,7 @@ + @@ -111,6 +112,7 @@ + diff --git a/TheGameExtreme.iOS/OrderStacks.csproj b/TheGameExtreme.iOS/OrderStacks.csproj index d463e16..e6776f9 100644 --- a/TheGameExtreme.iOS/OrderStacks.csproj +++ b/TheGameExtreme.iOS/OrderStacks.csproj @@ -77,6 +77,7 @@ + @@ -186,4 +187,7 @@ + + + \ No newline at end of file diff --git a/TheGameExtreme.iOS/Services/MessageIOS.cs b/TheGameExtreme.iOS/Services/MessageIOS.cs new file mode 100644 index 0000000..9754527 --- /dev/null +++ b/TheGameExtreme.iOS/Services/MessageIOS.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections; +using Foundation; +using TheGameExtreme.Interface; +using TheGameExtreme.iOS.Services; +using UIKit; + +[assembly: Xamarin.Forms.Dependency(typeof(MessageIOS))] +namespace TheGameExtreme.iOS.Services +{ + public class MessageIOS : IMessage + { + const double LONG_DELAY = 3.5; + const double SHORT_DELAY = 2.0; + + public void LongAlert(string message) + { + ShowAlert(message, LONG_DELAY); + } + + public void ShortAlert(string message) + { + ShowAlert(message, SHORT_DELAY); + } + + void ShowAlert(string message, double seconds) + { + var alert = UIAlertController.Create(null, message, UIAlertControllerStyle.Alert); + + var alertDelay = NSTimer.CreateScheduledTimer(seconds, obj => + { + DismissMessage(alert, obj); + }); + + UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(alert, true, null); + } + + void DismissMessage(UIAlertController alert, NSTimer alertDelay) + { + if (alert != null) + { + alert.DismissViewController(true, null); + } + + if (alertDelay != null) + { + alertDelay.Dispose(); + } + } + } +} diff --git a/TheGameExtreme/Interface/IMessage.cs b/TheGameExtreme/Interface/IMessage.cs new file mode 100644 index 0000000..5c408ff --- /dev/null +++ b/TheGameExtreme/Interface/IMessage.cs @@ -0,0 +1,10 @@ +using System; + +namespace TheGameExtreme.Interface +{ + public interface IMessage + { + void LongAlert(string message); + void ShortAlert(string message); + } +} diff --git a/TheGameExtreme/TheGameExtreme.csproj b/TheGameExtreme/TheGameExtreme.csproj index ee1cd44..8e9a7a3 100644 --- a/TheGameExtreme/TheGameExtreme.csproj +++ b/TheGameExtreme/TheGameExtreme.csproj @@ -34,6 +34,7 @@ + diff --git a/TheGameExtreme/view/HomePage.xaml.cs b/TheGameExtreme/view/HomePage.xaml.cs index 0ee01bd..f7ec55a 100644 --- a/TheGameExtreme/view/HomePage.xaml.cs +++ b/TheGameExtreme/view/HomePage.xaml.cs @@ -2,6 +2,7 @@ using Xamarin.Forms; using TheGameExtreme.IO; using TheGameExtreme.Resx; +using TheGameExtreme.Interface; namespace TheGameExtreme.view { @@ -22,9 +23,9 @@ namespace TheGameExtreme.view await Navigation.PushAsync(new GamePreparationPage()); } - private async void OpenMultiPlayerMode(object sender, EventArgs args) + private void OpenMultiPlayerMode(object sender, EventArgs args) { - await DisplayAlert("Mode en cours de développement", null, "Fermer"); + DependencyService.Get().ShortAlert("Mode en cours de développement"); //await Navigation.PushAsync(new MultiPlayerMode()); } diff --git a/TheGameExtreme/view/MainPage.xaml.cs b/TheGameExtreme/view/MainPage.xaml.cs index 4a3a54d..f356722 100644 --- a/TheGameExtreme/view/MainPage.xaml.cs +++ b/TheGameExtreme/view/MainPage.xaml.cs @@ -9,6 +9,7 @@ using TouchTracking; using Xamarin.Essentials; using TheGameExtreme.Resx; using TheGameExtreme.model.card.cardType; +using TheGameExtreme.Interface; namespace TheGameExtreme.view { @@ -84,7 +85,7 @@ namespace TheGameExtreme.view { if (viewmodel.Alert != null) { - DisplayAlert("😆", viewmodel.Alert, "OK"); + DependencyService.Get().ShortAlert(viewmodel.Alert); viewmodel.Alert = null; } }