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 ----");
|
Debug.WriteLine("---- Added new Connection ----");
|
||||||
Connections.Add(ForeignIp, new Connection(socket, Data => OnMessage(ForeignIp, Data), CloseChat));
|
Connections.Add(ForeignIp, new Connection(socket, Data => OnMessage(ForeignIp, Data), CloseChat));
|
||||||
UIController.OnIncomingConnection(ForeignIp);
|
UIController.OnIncomingConnection(ForeignIp);
|
||||||
fileManager.loadChat(ForeignIp);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -139,7 +138,7 @@ namespace PolyChat
|
|||||||
else Debug.WriteLine("Undefined: " + data);
|
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}");
|
Debug.WriteLine($"Deleting connection with IP:{IP}");
|
||||||
if (IP != null && Connections.ContainsKey(IP))
|
if (IP != null && Connections.ContainsKey(IP))
|
||||||
@@ -147,14 +146,17 @@ namespace PolyChat
|
|||||||
Connections[IP].Close();
|
Connections[IP].Close();
|
||||||
Connections.Remove(IP);
|
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);
|
UIController.OnChatPartnerDeleted(IP);
|
||||||
string heading = wasConnected ? "Connection Closed" : "Connection Failed";
|
string heading = wasConnected ? "Connection Closed" : "Connection Failed";
|
||||||
if (!wasConnected)
|
if(!delete)
|
||||||
UIController.ShowConnectionError(IP, heading, $"Connecting to {IP} failed...");
|
UIController.ShowConnectionError(IP, heading, $"Connecting to {IP} failed...");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,26 +50,27 @@ namespace PolyChat
|
|||||||
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
||||||
{
|
{
|
||||||
Dialog dialog = new Dialog(
|
Dialog dialog = new Dialog(
|
||||||
Dialog.TYPE_ERROR,
|
Dialog.TYPE_ERROR,
|
||||||
heading,
|
heading,
|
||||||
message,
|
message,
|
||||||
new DialogButton(
|
new DialogButton(
|
||||||
"Retry",
|
"Retry",
|
||||||
() =>
|
() =>
|
||||||
{
|
{
|
||||||
Controller.Connect(param);
|
Controller.Connect(param);
|
||||||
Partners.Add(new ChatPartner(
|
Partners.Add(new ChatPartner(
|
||||||
"Connecting...",
|
"Connecting...",
|
||||||
param
|
param
|
||||||
));
|
));
|
||||||
updateNoChatsPlaceholder();
|
updateNoChatsPlaceholder();
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
new DialogButton(
|
new DialogButton(
|
||||||
"Ignore",
|
"Ignore",
|
||||||
() => { /* do nothing */ }
|
() => { /* do nothing */ }
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
SafelyOpenDialog(dialog);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,7 +189,7 @@ namespace PolyChat
|
|||||||
|
|
||||||
private void OnDeleteChat(object sender = null, RoutedEventArgs e = null)
|
private void OnDeleteChat(object sender = null, RoutedEventArgs e = null)
|
||||||
{
|
{
|
||||||
Controller.CloseChat(selectedPartner.Code);
|
Controller.CloseChat(selectedPartner.Code,delete: true);
|
||||||
Partners.Remove(selectedPartner);
|
Partners.Remove(selectedPartner);
|
||||||
updateNoChatsPlaceholder();
|
updateNoChatsPlaceholder();
|
||||||
updateNoChatSelected();
|
updateNoChatSelected();
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ namespace PolyChat.Models
|
|||||||
private SocketIOSocket Socket;
|
private SocketIOSocket Socket;
|
||||||
private bool Connected = false;
|
private bool Connected = false;
|
||||||
private readonly string IP;
|
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 !");
|
Debug.WriteLine("! CONNECTING TO SERVER !");
|
||||||
IP = ip;
|
IP = ip;
|
||||||
@@ -32,7 +32,7 @@ namespace PolyChat.Models
|
|||||||
Client.On("message", (Action<JToken[]>) onMessage);
|
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;
|
Socket = socket;
|
||||||
DeleteConnection = onClose;
|
DeleteConnection = onClose;
|
||||||
@@ -66,7 +66,7 @@ namespace PolyChat.Models
|
|||||||
{
|
{
|
||||||
Debug.WriteLine("--- Disconnected! ---");
|
Debug.WriteLine("--- Disconnected! ---");
|
||||||
Debug.WriteLine($"--- Deleting Connection with IP: {IP}---");
|
Debug.WriteLine($"--- Deleting Connection with IP: {IP}---");
|
||||||
DeleteConnection(IP, IsConnected());
|
DeleteConnection(IP, IsConnected(),false);
|
||||||
Connected = false;
|
Connected = false;
|
||||||
}
|
}
|
||||||
private void OnError(JToken[] data)
|
private void OnError(JToken[] data)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace PolyChat.Models
|
|||||||
{
|
{
|
||||||
foreach (String path in filepaths)
|
foreach (String path in filepaths)
|
||||||
{
|
{
|
||||||
if (Path.GetFileName(path).Equals(ip))
|
if (Path.GetFileName(path).Equals(ip+".txt"))
|
||||||
{
|
{
|
||||||
File.Delete(path);
|
File.Delete(path);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user