delete chat only on explicit button press, not on disconnect, dialog opening fixed
This commit is contained in:
@@ -96,7 +96,6 @@ namespace PolyChat
|
||||
Debug.WriteLine("---- Added new Connection ----");
|
||||
Connections.Add(ForeignIp, new Connection(socket, Data => OnMessage(ForeignIp, Data), CloseChat));
|
||||
UIController.OnIncomingConnection(ForeignIp);
|
||||
fileManager.loadChat(ForeignIp);
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -139,7 +138,7 @@ namespace PolyChat
|
||||
else Debug.WriteLine("Undefined: " + data);
|
||||
}
|
||||
|
||||
public void CloseChat(string IP, bool wasConnected = true)
|
||||
public void CloseChat(string IP, bool wasConnected = true, bool delete = false)
|
||||
{
|
||||
Debug.WriteLine($"Deleting connection with IP:{IP}");
|
||||
if (IP != null && Connections.ContainsKey(IP))
|
||||
@@ -147,14 +146,17 @@ namespace PolyChat
|
||||
Connections[IP].Close();
|
||||
Connections.Remove(IP);
|
||||
}
|
||||
CloseChatUI(IP, wasConnected);
|
||||
if (delete || !wasConnected)
|
||||
CloseChatUI(IP, wasConnected, delete);
|
||||
if (delete)
|
||||
fileManager.deleteChat(IP);
|
||||
}
|
||||
|
||||
private void CloseChatUI(string IP, bool wasConnected = true)
|
||||
private void CloseChatUI(string IP, bool wasConnected = true, bool delete = false)
|
||||
{
|
||||
UIController.OnChatPartnerDeleted(IP);
|
||||
string heading = wasConnected ? "Connection Closed" : "Connection Failed";
|
||||
if (!wasConnected)
|
||||
if(!delete)
|
||||
UIController.ShowConnectionError(IP, heading, $"Connecting to {IP} failed...");
|
||||
}
|
||||
|
||||
|
||||
@@ -70,6 +70,7 @@ namespace PolyChat
|
||||
() => { /* do nothing */ }
|
||||
)
|
||||
);
|
||||
SafelyOpenDialog(dialog);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -188,7 +189,7 @@ namespace PolyChat
|
||||
|
||||
private void OnDeleteChat(object sender = null, RoutedEventArgs e = null)
|
||||
{
|
||||
Controller.CloseChat(selectedPartner.Code);
|
||||
Controller.CloseChat(selectedPartner.Code,delete: true);
|
||||
Partners.Remove(selectedPartner);
|
||||
updateNoChatsPlaceholder();
|
||||
updateNoChatSelected();
|
||||
|
||||
@@ -15,9 +15,9 @@ namespace PolyChat.Models
|
||||
private SocketIOSocket Socket;
|
||||
private bool Connected = false;
|
||||
private readonly string IP;
|
||||
private Action<string, bool> DeleteConnection;
|
||||
private Action<string, bool, bool> DeleteConnection;
|
||||
|
||||
public Connection(string ip, ushort port, Action<JToken[]> onMessage, Action<string, bool> onClose)
|
||||
public Connection(string ip, ushort port, Action<JToken[]> onMessage, Action<string, bool, bool> onClose)
|
||||
{
|
||||
Debug.WriteLine("! CONNECTING TO SERVER !");
|
||||
IP = ip;
|
||||
@@ -32,7 +32,7 @@ namespace PolyChat.Models
|
||||
Client.On("message", (Action<JToken[]>) onMessage);
|
||||
}
|
||||
|
||||
public Connection(SocketIOSocket socket, Action<JToken[]> onMessage, Action<string, bool> onClose)
|
||||
public Connection(SocketIOSocket socket, Action<JToken[]> onMessage, Action<string, bool, bool> onClose)
|
||||
{
|
||||
Socket = socket;
|
||||
DeleteConnection = onClose;
|
||||
@@ -66,7 +66,7 @@ namespace PolyChat.Models
|
||||
{
|
||||
Debug.WriteLine("--- Disconnected! ---");
|
||||
Debug.WriteLine($"--- Deleting Connection with IP: {IP}---");
|
||||
DeleteConnection(IP, IsConnected());
|
||||
DeleteConnection(IP, IsConnected(),false);
|
||||
Connected = false;
|
||||
}
|
||||
private void OnError(JToken[] data)
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace PolyChat.Models
|
||||
{
|
||||
foreach (String path in filepaths)
|
||||
{
|
||||
if (Path.GetFileName(path).Equals(ip))
|
||||
if (Path.GetFileName(path).Equals(ip+".txt"))
|
||||
{
|
||||
File.Delete(path);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user