From 43d8b2919c669b9fbf908569e95c8ff1d1848650 Mon Sep 17 00:00:00 2001 From: Patrick Hellebrand Date: Thu, 23 Sep 2021 14:02:42 +0200 Subject: [PATCH] Username change now dirty reactive in ui --- PolyChat/Controller.cs | 9 +++++++-- PolyChat/MainPage.xaml.cs | 16 ++++++++++++++-- PolyChat/Models/ChatPartner.cs | 15 ++------------- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/PolyChat/Controller.cs b/PolyChat/Controller.cs index e168b84..4034ffc 100644 --- a/PolyChat/Controller.cs +++ b/PolyChat/Controller.cs @@ -36,9 +36,14 @@ namespace PolyChat { UIController = uiController; OwnIP = getIP(); - loadChats(); + //loadChats(); //SaveChats("10", "{das ist ein test}"); Serve(); + + // test + UIController.OnIncomingConnection("1.1.1.1"); + UIController.OnIncomingConnection("1.2.3.4"); + UIController.OnIncomingConnection("1.2.4.8"); } public void Connect(string ip) @@ -69,7 +74,7 @@ namespace PolyChat { Debug.WriteLine("--- Client connected! ---"); // setup event listeners - socket.On("initial", async (JToken[] data) => + socket.On("initial", (JToken[] data) => { Debug.WriteLine("--- initial packet received ---"); string ForeignIp = data[0].ToString(); diff --git a/PolyChat/MainPage.xaml.cs b/PolyChat/MainPage.xaml.cs index 06a9db4..df1d05b 100644 --- a/PolyChat/MainPage.xaml.cs +++ b/PolyChat/MainPage.xaml.cs @@ -26,6 +26,7 @@ namespace PolyChat private ObservableCollection Partners; private ChatPartner selectedPartner = null; private string username; + public MainPage() { this.InitializeComponent(); @@ -80,6 +81,14 @@ namespace PolyChat public async void OnOpenNewChatDialog(object sender = null, RoutedEventArgs e = null) { + OnIncomingMessage( + "1.1.1.1", + new JObject( + new JProperty("type", "username"), + new JProperty("content", "Cloudflare") + ).ToString(), + DateTime.Now + ); NewChatDialog dialog = new NewChatDialog(); var result = await dialog.ShowAsync(); if (result == ContentDialogResult.Primary) @@ -138,7 +147,10 @@ namespace PolyChat { case "username": Debug.WriteLine($"! username change for {sendingPartner.Code} -> {content}"); - sendingPartner.SetName(Name); + sendingPartner.Name = content; + int index = Partners.IndexOf(sendingPartner); + Partners.Remove(sendingPartner); + Partners.Insert(index, sendingPartner); break; default: sendingPartner.AddMessage(new ChatMessage(origin, type, content, timeStamp)); @@ -159,7 +171,7 @@ namespace PolyChat origin, item["type"].ToString(), item["content"].ToString()//, - //DateTime.Parse(item["timestamp"].ToString()) + //DateTime.Parse(item["timestamp"].ToString()) ) ); } diff --git a/PolyChat/Models/ChatPartner.cs b/PolyChat/Models/ChatPartner.cs index 32df3be..abc5f00 100644 --- a/PolyChat/Models/ChatPartner.cs +++ b/PolyChat/Models/ChatPartner.cs @@ -1,17 +1,17 @@ using SocketIOSharp.Server.Client; using System.Collections.ObjectModel; using System.ComponentModel; +using System.Diagnostics; using System.Runtime.CompilerServices; namespace PolyChat.Models { - public class ChatPartner : INotifyPropertyChanged + public class ChatPartner { public string Name; public string Code; public ObservableCollection Messages; private SocketIOSocket socketIOSocket; - public event PropertyChangedEventHandler PropertyChanged; public ChatPartner(string name, string code, ObservableCollection messages = null) { @@ -23,20 +23,9 @@ namespace PolyChat.Models public SocketIOSocket SocketIOSocket { get => socketIOSocket; set => socketIOSocket = value; } - private void NotifyPropertyChanged([CallerMemberName] string propertyName = "") - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - public void AddMessage(ChatMessage message) { Messages.Add(message); } - - public void SetName(string name) - { - Name = name; - NotifyPropertyChanged("Name"); - } } } \ No newline at end of file