From 34a9cbcec53d2c47179ebf7e11e037cd465735ae Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Thu, 27 Oct 2016 23:31:02 +0200 Subject: [PATCH 1/5] renomage ... --- BookAStar/BookAStar/App.xaml.cs | 2 +- BookAStar/BookAStar/Data/DataManager.cs | 4 ++-- .../Model/Social/Messaging/PrivateMessage.cs | 2 +- BookAStar/BookAStar/Pages/ChatPage.xaml.cs | 11 ++++++----- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/BookAStar/BookAStar/App.xaml.cs b/BookAStar/BookAStar/App.xaml.cs index e3e7dec3..f6df66c3 100644 --- a/BookAStar/BookAStar/App.xaml.cs +++ b/BookAStar/BookAStar/App.xaml.cs @@ -275,7 +275,7 @@ namespace BookAStar chatHubProxy = chatHubConnection.CreateHubProxy("ChatHub"); chatHubProxy.On("PV", (n, m) => { DataManager.Current.PrivateMessages.Add( - new UserMessage + new ChatMessage { Message = m, SenderId = n, diff --git a/BookAStar/BookAStar/Data/DataManager.cs b/BookAStar/BookAStar/Data/DataManager.cs index a6c752ff..82e676b7 100644 --- a/BookAStar/BookAStar/Data/DataManager.cs +++ b/BookAStar/BookAStar/Data/DataManager.cs @@ -20,7 +20,7 @@ /// internal LocalEntity EstimationCache { get; set; } internal LocalEntity EstimateLinesTemplates { get; set; } - internal LocalEntity PrivateMessages { get; set; } + internal LocalEntity PrivateMessages { get; set; } protected static DataManager current ; public static DataManager Current @@ -42,7 +42,7 @@ AppState = new LocalEntity(s => s.Position); EstimationCache = new LocalEntity(e => e.Query.Id); EstimateLinesTemplates = new LocalEntity(l => l.Description); - PrivateMessages = new LocalEntity(m=> m.GetHashCode()); + PrivateMessages = new LocalEntity(m=> m.GetHashCode()); PrivateMessages.Load(); BookQueries.Load(); diff --git a/BookAStar/BookAStar/Model/Social/Messaging/PrivateMessage.cs b/BookAStar/BookAStar/Model/Social/Messaging/PrivateMessage.cs index 8133a1f4..8dae22c6 100644 --- a/BookAStar/BookAStar/Model/Social/Messaging/PrivateMessage.cs +++ b/BookAStar/BookAStar/Model/Social/Messaging/PrivateMessage.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace BookAStar.Model.Social.Messaging { - public class UserMessage + public class ChatMessage { public DateTime Date { get; set; } public string SenderId { get; set; } diff --git a/BookAStar/BookAStar/Pages/ChatPage.xaml.cs b/BookAStar/BookAStar/Pages/ChatPage.xaml.cs index 214a14f9..9ffc54d2 100644 --- a/BookAStar/BookAStar/Pages/ChatPage.xaml.cs +++ b/BookAStar/BookAStar/Pages/ChatPage.xaml.cs @@ -13,7 +13,8 @@ namespace BookAStar.Pages { public partial class ChatPage : TabbedPage { - public ObservableCollection Messages { get; set; } + public ObservableCollection Messages { get; set; } + public ObservableCollection Notifs { get; set; } public string ChatUser { get; set; } public ChatPage() @@ -40,7 +41,7 @@ namespace BookAStar.Pages }; // contactPicker.DisplayProperty = "UserName"; - messageList.ItemsSource = Messages = new ObservableCollection(); + messageList.ItemsSource = Messages = new ObservableCollection(); PVList.ItemsSource = DataManager.Current.PrivateMessages; App.CurrentApp.ChatHubConnection.StateChanged += ChatHubConnection_StateChanged; // DataManager.Current.Contacts @@ -50,7 +51,7 @@ namespace BookAStar.Pages App.CurrentApp.ChatHubProxy.On("addMessage", (n, m) => { - Messages.Add(new UserMessage + Messages.Add(new ChatMessage { Message = m, SenderId = n, @@ -58,9 +59,9 @@ namespace BookAStar.Pages }); }); - App.CurrentApp.ChatHubProxy.On("addMessage", (n, m) => + App.CurrentApp.ChatHubProxy.On("notify", (n, m) => { - Messages.Add(new UserMessage + Notifs.Add(new ChatMessage { Message = m, SenderId = n, From f8c77bd6b15038f61263de502a9ee5b7a8ee80ef Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sat, 29 Oct 2016 01:59:48 +0200 Subject: [PATCH 2/5] =?UTF-8?q?Implemente=20l'acc=C3=A8s=20authentifi?= =?UTF-8?q?=C3=A9=20au=20chat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookAStar/BookAStar/App.xaml.cs | 16 ++- BookAStar/BookAStar/BookAStar.csproj | 7 ++ .../Converters/BooleanToObjectConverter.cs | 2 +- .../SignalRConnectionStateToObject.cs | 42 +++++++ BookAStar/BookAStar/Images/Chat/connected.png | Bin 0 -> 2017 bytes .../BookAStar/Images/Chat/connecting.png | Bin 0 -> 2408 bytes .../BookAStar/Images/Chat/disconnected.png | Bin 0 -> 1485 bytes .../BookAStar/Images/Chat/reconnecting.png | Bin 0 -> 4116 bytes .../BookAStar/Pages/BookQueriesPage.xaml.cs | 24 ++-- BookAStar/BookAStar/Pages/ChatPage.xaml | 111 ++++++++++++------ BookAStar/BookAStar/Pages/ChatPage.xaml.cs | 37 +++++- .../ViewModels/BookQueriesViewModel.cs | 2 +- 12 files changed, 179 insertions(+), 62 deletions(-) create mode 100644 BookAStar/BookAStar/Converters/SignalRConnectionStateToObject.cs create mode 100644 BookAStar/BookAStar/Images/Chat/connected.png create mode 100644 BookAStar/BookAStar/Images/Chat/connecting.png create mode 100644 BookAStar/BookAStar/Images/Chat/disconnected.png create mode 100644 BookAStar/BookAStar/Images/Chat/reconnecting.png diff --git a/BookAStar/BookAStar/App.xaml.cs b/BookAStar/BookAStar/App.xaml.cs index f6df66c3..beabc53f 100644 --- a/BookAStar/BookAStar/App.xaml.cs +++ b/BookAStar/BookAStar/App.xaml.cs @@ -273,7 +273,7 @@ namespace BookAStar chatHubConnection.Error += ChatHubConnection_Error; chatHubProxy = chatHubConnection.CreateHubProxy("ChatHub"); - chatHubProxy.On("PV", (n, m) => { + chatHubProxy.On("addPV", (n, m) => { DataManager.Current.PrivateMessages.Add( new ChatMessage { @@ -283,17 +283,21 @@ namespace BookAStar } ); }); + MainSettings_UserChanged(this, null); } private void MainSettings_UserChanged(object sender, EventArgs e) { - if (MainSettings.CurrentUser != null) + if (MainSettings.CurrentUser == null) { - if (chatHubConnection.Headers.ContainsKey("Bearer")) - chatHubConnection.Headers.Remove("Bearer"); - chatHubConnection.Headers.Add("Bearer", MainSettings.CurrentUser.YavscTokens.AccessToken); + chatHubConnection.Headers.Clear(); + } + else + { + var token = MainSettings.CurrentUser.YavscTokens.AccessToken; + chatHubConnection.Headers.Add( + "Authorization", $"Bearer {token}"); } - else chatHubConnection.Headers.Remove("Bearer"); } private void ChatHubConnection_Error(Exception obj) diff --git a/BookAStar/BookAStar/BookAStar.csproj b/BookAStar/BookAStar/BookAStar.csproj index 9a7cf243..8dba105c 100644 --- a/BookAStar/BookAStar/BookAStar.csproj +++ b/BookAStar/BookAStar/BookAStar.csproj @@ -48,6 +48,7 @@ + @@ -376,6 +377,12 @@ Designer + + + + + + diff --git a/BookAStar/BookAStar/Converters/BooleanToObjectConverter.cs b/BookAStar/BookAStar/Converters/BooleanToObjectConverter.cs index 97c4df0e..8cd28a88 100644 --- a/BookAStar/BookAStar/Converters/BooleanToObjectConverter.cs +++ b/BookAStar/BookAStar/Converters/BooleanToObjectConverter.cs @@ -8,7 +8,7 @@ using Xamarin.Forms; namespace BookAStar.Converters { - class BooleanToObjectConverter : IValueConverter + public class BooleanToObjectConverter : IValueConverter { public T FalseObject { set; get; } diff --git a/BookAStar/BookAStar/Converters/SignalRConnectionStateToObject.cs b/BookAStar/BookAStar/Converters/SignalRConnectionStateToObject.cs new file mode 100644 index 00000000..21ba1efa --- /dev/null +++ b/BookAStar/BookAStar/Converters/SignalRConnectionStateToObject.cs @@ -0,0 +1,42 @@ +using Microsoft.AspNet.SignalR.Client; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms; + +namespace BookAStar.Converters +{ + public class SignalRConnectionStateToObject : IValueConverter + { + public T ConnectedObject { set; get; } + + public T ConnectingObject { set; get; } + + public T DisconnectedObject { set; get; } + + public T ReconnectingObject { set; get; } + + public object Convert(object value, Type targetType, + object parameter, CultureInfo culture) + { + switch ((ConnectionState)value) { + case ConnectionState.Connected: return ConnectedObject; + case ConnectionState.Connecting: return ConnectingObject; + case ConnectionState.Disconnected: return DisconnectedObject; + case ConnectionState.Reconnecting: return ReconnectingObject; + } + Debug.Assert(false); + return null; + } + + public object ConvertBack(object value, Type targetType, + object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/BookAStar/BookAStar/Images/Chat/connected.png b/BookAStar/BookAStar/Images/Chat/connected.png new file mode 100644 index 0000000000000000000000000000000000000000..1b9883e67511872762fabac71374f2dff506a5ef GIT binary patch literal 2017 zcmV<72Oju|P)VK2X0A3 zK~!ko?V4*$RNEDR*BJx{D~cCsM4pZ!YJIdqL5sll2)t<{!oJ& zOf70YcKHBx1I>jbnE!sYSx59j3U8C0g}?Hmj% zImygk`<$%rto>MP?ISWOqcSQZS+tQ308AB;^&+xDL?(&Iry^3UY1)$y%2U9%fa^d% z-qHzd_)tLOfZur%wzai!|NedY`wjljfsaNy>_*^UI#G9bH%_OMMT-_;v)K?4va_?z z?;&F(!+sy=Gt(?vwhR$buE@wpbC;itRM=1Sx!T>`O;J%16%`fO?REt=E-sFX7cVOB z#ELL>;M>4ypaFORxPcbnH^4#Q4M1mSC#k8a2H^Vj>q$&ZBsVvgrluy(Y5jXZvl8eS z;HQId@0Edp0WvZ&6pz-{)(+LR5BN0@ZY9_l;E&2a(%DH}T^%JQB@`DIbM@*~+S}U= z{h2do6xf|RcY1<81`YtTtTu#WfG4_@&CShZW@dWLM-jnhv$1yVTI%cT$;!$y+SjaE zLtmeqo$6x}{F1ld)sRdVzXgnx+vG6T`xV3(3sPG<*KvK$2Bg+Cboz zZfRj*p%++aXegy1F`L7$+no(AwJi*44SQvy+sR6lD~2bad$I zD^`Tvqz4U8o;)EuJY4bYvuDrVyCt=?wGkQ`YTQ>;RHUoE047)ocHv;=LPtl3GCYHW zgSm6(4#SnaygcLH^z?M=MN`06fxiRv_V%)R^=f6+EiW&}7rA!rnsL9w;V`RmtO9&i zw`kX{UCP39(?)MORnXuwc8o zx=2b&Qs!@Wcek!C_ZMvP;M?ZSn>Wm#KVJb13=AY9B0_0PPEN+H)C`T6-u|Gd0Bv%1V5upxk9ac*v| zV&Il7Ta?I3M3_B$w({R@w^LSD<^}6?I+cFe+1ci~|Lp%>kpu#OYq|x;k01Af9T*tk z#fujtCMGJnsHiB$j2WYNzo4MNfUT~sCLka{8UCg@{|1=v5AXic7+Ym!O7^pIXb5E0|Ntzi;Ej_k*lbvFyHzse{DfO(=Eu(&Nd7T2ngWHl`F&ATWe}+m@r|20+^7H zpunCydD47KHDL1>@SpYQ$2@P39XsYz^wiYUL~LxV0=<9#e$Jjf%cDn+%w7KkjQ1C8 zv~I<|eftbU=gpgEKExWfxLht~&YYV^A5fQuHE|)J~mWYT5z01$7RFDH;$&w|8cTS%^ zJ#5eR^z^V|#fo>8drGWSl$&8h0K0b^MlW8xc-T2^PEL-pG8YyWDy3*3$ZBQRrvMKg zJWvcTDJgj`?9rn~m3y{s-D*~UX30+!fJ3^4>FMc)@j*dBl$Mqb3EJD+%b`Pu6j+aV z+YQXL>M6qH!2&p~t*u@WQ*v@LPN$O_H*QcC>n4{P}b9BYt3I*dOZ0CXXLKCO$r%i4!N1nVHGlxpUupQXDy^-pWz(ijI2;br($b8yaL0}v<}B%Nz$74kFe3Zz;Pp))+R6*la-E>EvQkMB zM1=9<$J5x@NJB$|*?XS@^JFB-;I~r%Or1K_YqcFBXKe$%CL>jV@8~4@r$RwNL9AM} zipt7L&zSjBAYMkY0AavC_4(V_*vRYGuRXo`#o#s-EFXdZ>H4P%o@ZOYZ-E&jl}&pG zv_nLGBqH-g#3drvMdX^MX`M1EqcSR^;wSkJSt?kx)-9Xf00000NkvXXu0mjfz_!$R literal 0 HcmV?d00001 diff --git a/BookAStar/BookAStar/Images/Chat/connecting.png b/BookAStar/BookAStar/Images/Chat/connecting.png new file mode 100644 index 0000000000000000000000000000000000000000..99e7fe8c2eb3b055b6adf12e520428ff232a2afa GIT binary patch literal 2408 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 literal 0 HcmV?d00001 diff --git a/BookAStar/BookAStar/Images/Chat/reconnecting.png b/BookAStar/BookAStar/Images/Chat/reconnecting.png new file mode 100644 index 0000000000000000000000000000000000000000..a30b22e99a1ccfaa7d251a8ae3cfb1216ed37f17 GIT binary patch literal 4116 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 SfT#Wd0000 { + DataManager.Current.BookQueries.Execute(null); + this.list.EndRefresh(); + }); + + BindingContext = model; } private void OnViewDetail(object sender, ItemTappedEventArgs e) @@ -20,18 +27,5 @@ namespace BookAStar.Pages BookQueryData data = e.Item as BookQueryData; App.NavigationService.NavigateTo(true,data); } - protected override void OnSizeAllocated(double width, double height) - { - /* TODO find a responsive layout - if (width > height) - { - mainLayout.Orientation = StackOrientation.Horizontal; - } - else - { - mainLayout.Orientation = StackOrientation.Vertical; - } */ - base.OnSizeAllocated(width, height); - } } } diff --git a/BookAStar/BookAStar/Pages/ChatPage.xaml b/BookAStar/BookAStar/Pages/ChatPage.xaml index adbb5844..0b3c6353 100644 --- a/BookAStar/BookAStar/Pages/ChatPage.xaml +++ b/BookAStar/BookAStar/Pages/ChatPage.xaml @@ -4,30 +4,74 @@ x:Class="BookAStar.Pages.ChatPage" xmlns:views="clr-namespace:BookAStar.Views;assembly=BookAStar" xmlns:controls="clr-namespace:XLabs.Forms.Controls;assembly=XLabs.Forms" - xmlns:toolkit="clr-namespace:XLabs.Forms.Mvvm;assembly=XLabs.Forms" + xmlns:toolkit="clr-namespace:XLabs.Forms.Mvvm;assembly=XLabs.Forms" + xmlns:converters="clr-namespace:BookAStar.Converters;assembly=BookAStar" + xmlns:local="clr-namespace:BookAStar;Assembly:BookAStar" > + + + + - + - @@ -36,61 +80,62 @@ - - - + + + - - + - + - + - - - + --> + + - + - - - - - + + + + \ No newline at end of file diff --git a/BookAStar/BookAStar/Pages/ChatPage.xaml.cs b/BookAStar/BookAStar/Pages/ChatPage.xaml.cs index 9ffc54d2..cb78f52f 100644 --- a/BookAStar/BookAStar/Pages/ChatPage.xaml.cs +++ b/BookAStar/BookAStar/Pages/ChatPage.xaml.cs @@ -29,6 +29,8 @@ namespace BookAStar.Pages try { + ConnectionState cs = App.CurrentApp.ChatHubConnection.State; + await App.CurrentApp.ChatHubProxy.Invoke("Send", ChatUser, messageEntry.Text); messageEntry.Text = null; } @@ -39,13 +41,25 @@ namespace BookAStar.Pages IsBusy = false; }; - // contactPicker.DisplayProperty = "UserName"; - + + sendPVButton.Clicked += async (sender, args) => + { + IsBusy = true; + + try + { + await App.CurrentApp.ChatHubProxy.Invoke("SendPV", ChatUser, messageEntry.Text); + messageEntry.Text = null; + } + catch (Exception ex) + { + Debug.WriteLine(ex); + } + + IsBusy = false; + }; messageList.ItemsSource = Messages = new ObservableCollection(); - PVList.ItemsSource = DataManager.Current.PrivateMessages; App.CurrentApp.ChatHubConnection.StateChanged += ChatHubConnection_StateChanged; - // DataManager.Current.Contacts - MainSettings.UserChanged += MainSettings_UserChanged; MainSettings_UserChanged(this, null); @@ -70,15 +84,26 @@ namespace BookAStar.Pages }); } + private void ReconnectButton_Clicked(object sender, EventArgs e) + { + App.CurrentApp.ChatHubConnection.Stop(); + App.CurrentApp.ChatHubConnection.Start(); + } + private void MainSettings_UserChanged(object sender, EventArgs e) { ChatUser = MainSettings.UserName; contactPicker.ItemsSource = DataManager.Current.Contacts; + PVList.ItemsSource = DataManager.Current.PrivateMessages; } private void ChatHubConnection_StateChanged(StateChange obj) { - sendButton.IsEnabled = obj.NewState == ConnectionState.Connected; + Xamarin.Forms.Device.BeginInvokeOnMainThread( + () => { + sendButton.IsEnabled = obj.NewState == ConnectionState.Connected; + reconnectButton.IsEnabled = obj.NewState != ConnectionState.Connected; + }); } } } diff --git a/BookAStar/BookAStar/ViewModels/BookQueriesViewModel.cs b/BookAStar/BookAStar/ViewModels/BookQueriesViewModel.cs index a80cf127..76becbeb 100644 --- a/BookAStar/BookAStar/ViewModels/BookQueriesViewModel.cs +++ b/BookAStar/BookAStar/ViewModels/BookQueriesViewModel.cs @@ -22,7 +22,7 @@ namespace BookAStar.ViewModels public ICommand RefreshQueries { - get { return DataManager.Current.BookQueries; } + get; set; } } } From 990e7a8a23770e9a19e2403356d0e8b98dcd07b9 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sat, 29 Oct 2016 02:49:45 +0200 Subject: [PATCH 3/5] meilleur choix de code --- BookAStar/BookAStar/App.xaml.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/BookAStar/BookAStar/App.xaml.cs b/BookAStar/BookAStar/App.xaml.cs index beabc53f..e7c2fd10 100644 --- a/BookAStar/BookAStar/App.xaml.cs +++ b/BookAStar/BookAStar/App.xaml.cs @@ -29,8 +29,7 @@ namespace BookAStar public static string AppName { get; set; } - // Exists in order to dispose of a static instance strongly typed, - // It Makes smaller code. + [Obsolete("Instead using this, use new static properties.")] public static App CurrentApp { get { return Current as App; } } public static bool MasterPresented @@ -253,8 +252,8 @@ namespace BookAStar } } } - private HubConnection chatHubConnection = null; - public HubConnection ChatHubConnection + private static HubConnection chatHubConnection = null; + public static HubConnection ChatHubConnection { get { From 072f16fc0a4922aab660e42c5ebc9481d6a6d3e7 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sat, 29 Oct 2016 02:50:24 +0200 Subject: [PATCH 4/5] =?UTF-8?q?corrige=20l'absence=20des=20icones=20r?= =?UTF-8?q?=C3=A9seau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookAStar/BookAStar/BookAStar.csproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BookAStar/BookAStar/BookAStar.csproj b/BookAStar/BookAStar/BookAStar.csproj index 8dba105c..8e1b2254 100644 --- a/BookAStar/BookAStar/BookAStar.csproj +++ b/BookAStar/BookAStar/BookAStar.csproj @@ -378,10 +378,10 @@ - - - - + + + + From c114b851d2507e1f4ca66d2d9aea44489db3ef66 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sat, 29 Oct 2016 02:51:19 +0200 Subject: [PATCH 5/5] =?UTF-8?q?affiche=20l'=C3=A9tat=20de=20la=20connexion?= =?UTF-8?q?=20SignalR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookAStar/BookAStar/Pages/ChatPage.xaml | 41 +++++++++++----------- BookAStar/BookAStar/Pages/ChatPage.xaml.cs | 14 ++++---- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/BookAStar/BookAStar/Pages/ChatPage.xaml b/BookAStar/BookAStar/Pages/ChatPage.xaml index 0b3c6353..a04a76bf 100644 --- a/BookAStar/BookAStar/Pages/ChatPage.xaml +++ b/BookAStar/BookAStar/Pages/ChatPage.xaml @@ -1,60 +1,61 @@  - + - -