Anzeige von neuen Nachrichten und die Ladegeschwindigkeit von Konversationen verbessert
Aufgrund der Benutzung von Threads anstelle von Timern hat das Aufrufen der einzelnen Konversationen ca. 2 Sekunden gedauert. Die Synchronisationsdatei enthält, ob die letzte Nachrichte bereits gelesen wurde, sodass man, wenn man den Chat beendet bevor man eine neue Nachricht gelesen hat, diese nach dem erneuten Öffnen immer noch als neu angezeigt wird. - Dateinamen verbessert - Diverse Verbesserungen des Codes
This commit is contained in:
@@ -9,7 +9,7 @@ namespace ChatController.ChatKlassen
|
||||
public class ChatMessage
|
||||
{
|
||||
//Chat-Ansicht
|
||||
public ChatMessage(string username, string message, DateTime sendtime, bool isme)
|
||||
public ChatMessage(string username, string message, DateTime sendtime, bool isme, long pGroupId)
|
||||
{
|
||||
Username = username;
|
||||
UserMessage = message;
|
||||
@@ -19,10 +19,12 @@ namespace ChatController.ChatKlassen
|
||||
Farbgebung(isme);
|
||||
|
||||
VisibilityRegelung(IsHyperlink(message) ? "HyperlinkMessage" : "Message");
|
||||
|
||||
GroupId = pGroupId;
|
||||
}
|
||||
|
||||
// Image-Ansicht
|
||||
public ChatMessage(string username, string message, DateTime sendtime, bool isme, ImageSource image, string originalImage, string imageName)
|
||||
public ChatMessage(string username, string message, DateTime sendtime, bool isme, ImageSource image, string originalImage, string imageName, long pGroupId)
|
||||
{
|
||||
Username = username;
|
||||
UserMessage = message;
|
||||
@@ -35,64 +37,49 @@ namespace ChatController.ChatKlassen
|
||||
|
||||
Farbgebung(isme);
|
||||
|
||||
VisibilityRegelung("Image");
|
||||
}
|
||||
|
||||
//Image-PlaceHolder | wird nicht benutzt und wird nicht gebraucht ?
|
||||
public ChatMessage(string username, string message, DateTime sendtime, bool isme, string originalImage, string imageName)
|
||||
{
|
||||
Username = username;
|
||||
UserMessage = message;
|
||||
SendTime = sendtime;
|
||||
IsMyMessage = isme;
|
||||
OriginalImage = originalImage;
|
||||
OriginalImageName = imageName;
|
||||
VisibilityRegelung("Image");
|
||||
|
||||
Farbgebung(isme);
|
||||
|
||||
VisibilityRegelung("Default_Image");
|
||||
GroupId = pGroupId;
|
||||
}
|
||||
|
||||
//Dokumenten-Ansicht
|
||||
public ChatMessage(string username, string message, DateTime sendtime, string pSmallerImagePath, bool isme, string url)
|
||||
public ChatMessage(string pUsername, string pMessageText, DateTime pSendTime, string pSmallerImagePath, bool pIsLoggedInUsersMessage, string pUrl, long pGroupId)
|
||||
{
|
||||
Username = username;
|
||||
UserMessage = message;
|
||||
SendTime = sendtime;
|
||||
IsMyMessage = isme;
|
||||
Username = pUsername;
|
||||
UserMessage = pMessageText;
|
||||
SendTime = pSendTime;
|
||||
IsMyMessage = pIsLoggedInUsersMessage;
|
||||
|
||||
Dokpfad = url;
|
||||
FilePath = pUrl;
|
||||
|
||||
Farbgebung(isme);
|
||||
Farbgebung(pIsLoggedInUsersMessage);
|
||||
|
||||
Thumbnail = Utilities.Utils.CreateImageSourceFromPath(pSmallerImagePath);
|
||||
|
||||
VisibilityRegelung("Dokumente");
|
||||
|
||||
GroupId = pGroupId;
|
||||
}
|
||||
|
||||
public ImageSource Thumbnail { get; }
|
||||
|
||||
#region Farbgebung
|
||||
private void Farbgebung(bool isme)
|
||||
{
|
||||
if (isme)
|
||||
{
|
||||
ChatColor = new BrushConverter().ConvertFromString("#ff5e00") as SolidColorBrush;
|
||||
Posi = "Right";
|
||||
_farbeRechtsColor = new BrushConverter().ConvertFromString("#505050") as SolidColorBrush;
|
||||
_farbeLinksColor = new BrushConverter().ConvertFromString("#505050") as SolidColorBrush;
|
||||
}
|
||||
else
|
||||
{
|
||||
ChatColor = new BrushConverter().ConvertFromString("#FFFFFF") as SolidColorBrush; //"#cccccc"
|
||||
Posi = "Left";
|
||||
_farbeRechtsColor = new BrushConverter().ConvertFromString("#505050") as SolidColorBrush;
|
||||
_farbeLinksColor = new BrushConverter().ConvertFromString("#505050") as SolidColorBrush;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Visibility Regelung
|
||||
_farbeRechtsColor = new BrushConverter().ConvertFromString("#505050") as SolidColorBrush;
|
||||
_farbeLinksColor = new BrushConverter().ConvertFromString("#505050") as SolidColorBrush;
|
||||
}
|
||||
|
||||
private void VisibilityRegelung(string Ansicht)
|
||||
{
|
||||
switch (Ansicht)
|
||||
@@ -141,9 +128,6 @@ namespace ChatController.ChatKlassen
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Hyperlink Detection
|
||||
|
||||
private static readonly Regex UrlRegex = new Regex(@"(?#Protocol)(?:(?:ht|f)tp(?:s?)\:\/\/|~/|/)?(?#Username:Password)(?:\w+:\w+@)?(?#Subdomains)(?:(?:[-\w]+\.)+(?#TopLevel Domains)(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))(?#Port)(?::[\d]{1,5})?(?#Directories)(?:(?:(?:/(?:[-\w~!$+|.,=]|%[a-f\d]{2})+)+|/)+|\?|#)?(?#Query)(?:(?:\?(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)(?:&(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*(?#Anchor)(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)?");
|
||||
|
||||
@@ -186,10 +170,6 @@ namespace ChatController.ChatKlassen
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Variablen
|
||||
|
||||
public bool IsMyMessage { get; set; }
|
||||
public string Username { get; }
|
||||
public string UserMessage { get; }
|
||||
@@ -210,7 +190,6 @@ namespace ChatController.ChatKlassen
|
||||
|
||||
public Visibility ChatVisibility { get; set; }
|
||||
public Visibility HyperlinkVisibility { get; set; }
|
||||
|
||||
|
||||
private Visibility _pictureVisibility;
|
||||
public Visibility PictureVisibility
|
||||
@@ -247,11 +226,10 @@ namespace ChatController.ChatKlassen
|
||||
|
||||
public Visibility DokumentVisibility { get; set; }
|
||||
public ImageSource ImageSources { get; }
|
||||
public object Dokpfad { get; }
|
||||
public object FilePath { get; }
|
||||
|
||||
public long? ChatMessageOid { get; private set; }
|
||||
|
||||
//Farbe Links MEssageHeader
|
||||
private Brush _farbeLinksColor;
|
||||
public Brush FarbeLinksColor
|
||||
{
|
||||
@@ -264,7 +242,6 @@ namespace ChatController.ChatKlassen
|
||||
}
|
||||
}
|
||||
|
||||
//Farbe Rechts MessageHeader
|
||||
private Brush _farbeRechtsColor;
|
||||
public Brush FarbeRechtsColor
|
||||
{
|
||||
@@ -277,6 +254,8 @@ namespace ChatController.ChatKlassen
|
||||
}
|
||||
}
|
||||
|
||||
public long GroupId { get; }
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
protected virtual void OnPropertyChanged(string propertyName)
|
||||
@@ -284,6 +263,5 @@ namespace ChatController.ChatKlassen
|
||||
var handler = PropertyChanged;
|
||||
handler?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user