Bilder werden wieder angezeigt

This commit is contained in:
2026-03-23 16:11:06 +01:00
parent 0f8d538136
commit 1cfc856407
8 changed files with 35 additions and 57 deletions

View File

@@ -70,7 +70,7 @@ namespace ChatController.ChatKlassen
OriginalImage = originalImage; OriginalImage = originalImage;
OriginalImageName = imageName; OriginalImageName = imageName;
if(MessageId == 0 && MessageType == ChatMessageType.Image && !(logo is null)) if(MessageId == 0 && MessageType == ChatMessageType.Image && false == logo is null)
{ {
PictureSource = logo; PictureSource = logo;
PicturePlaceholderHeight = (int) logo.Height; PicturePlaceholderHeight = (int) logo.Height;

View File

@@ -295,7 +295,7 @@ namespace ChatController
var contact = _ContactList.FirstOrDefault(a => a.Contact.GroupId == pGroupId); var contact = _ContactList.FirstOrDefault(a => a.Contact.GroupId == pGroupId);
if(!(contact is null)) if(false == contact is null)
{ {
notificationIcon = Utils.ImageSourceToIcon(contact.Contact.Image); notificationIcon = Utils.ImageSourceToIcon(contact.Contact.Image);
} }
@@ -396,7 +396,7 @@ namespace ChatController
_ScrollPrueferAktivieren = false; _ScrollPrueferAktivieren = false;
if(contact?.HasUnreadMessages ?? false) if((bool) contact?.HasUnreadMessages)
{ {
contact.HasUnreadMessages = false; contact.HasUnreadMessages = false;
@@ -404,22 +404,20 @@ namespace ChatController
OnPropertyChanged(nameof(ContactList)); OnPropertyChanged(nameof(ContactList));
} }
var currentContact = contact;
contact.IsNewMessage = false; contact.IsNewMessage = false;
var shouldChangeIcon = _ContactList.Any(contactDependencyObject => contactDependencyObject?.Contact?.IsNewMessage ?? false); var shouldChangeIcon = _ContactList.Any(contactDependencyObject => contactDependencyObject?.Contact?.IsNewMessage ?? false);
if(shouldChangeIcon && ContainingWindow != null) if(shouldChangeIcon && false == ContainingWindow is null)
{ {
ContainingWindow.Icon = Utils.ConvertIconToImageSource(Resource.ownchat_favicon); ContainingWindow.Icon = Utils.ConvertIconToImageSource(Resource.ownchat_favicon);
} }
CurrentContact = currentContact; CurrentContact = contact;
OnPropertyChanged(nameof(IsSendButtonEnabled)); OnPropertyChanged(nameof(IsSendButtonEnabled));
if(!(Clientlist is null)) if(false == Clientlist is null)
{ {
foreach(var obj in Clientlist.Items) foreach(var obj in Clientlist.Items)
{ {
@@ -433,7 +431,7 @@ namespace ChatController
_ChatMessages?.Clear(); _ChatMessages?.Clear();
OnPropertyChanged(nameof(_ChatMessages)); OnPropertyChanged(nameof(_ChatMessages));
Chat?.LoadChatMessagesForContactAsync(currentContact, GetFirstMessage(), chatMessages => Chat?.LoadChatMessagesForContactAsync(contact, GetFirstMessage(), chatMessages =>
{ {
this.Dispatch(() => this.Dispatch(() =>
{ {
@@ -656,7 +654,7 @@ namespace ChatController
return; return;
} }
StartWaitingImmediately("Skaliere Bild ..."); StartWaitingImmediately("Skaliere Bild...");
var scalingTask = new Task(() => var scalingTask = new Task(() =>
{ {
@@ -745,7 +743,7 @@ namespace ChatController
{ {
_ChatMessageFileWrapper = value; _ChatMessageFileWrapper = value;
OnPropertyChanged(nameof(ChatMessageFileWrapper)); OnPropertyChanged();
OnPropertyChanged(nameof(IsSendButtonEnabled)); OnPropertyChanged(nameof(IsSendButtonEnabled));
OnPropertyChanged(nameof(FilePreviewGridVisibility)); OnPropertyChanged(nameof(FilePreviewGridVisibility));
OnPropertyChanged(nameof(ChatListBoxVisibility)); OnPropertyChanged(nameof(ChatListBoxVisibility));
@@ -781,23 +779,6 @@ namespace ChatController
private void Chatbox_OnKeyDownHandler(object sender, KeyEventArgs e) private void Chatbox_OnKeyDownHandler(object sender, KeyEventArgs e)
{ {
//if (e.Key == Key.Return)
//{
// if(CurrentContact != null && !string.IsNullOrEmpty(Chatbox.Text))
// {
// Chat.AddNewMessage(Chatbox.Text, CurrentContact.GroupId);
// OnPropertyChanged(nameof(CurrentChatMessages));
// ChatListBox.Items.MoveCurrentToLast();
// ChatListBox.ScrollIntoView(ChatListBox.Items.CurrentItem);
// Chat.SendMessage(Chatbox.Text, CurrentContact.GroupId);
// Chatbox.Text = string.Empty;
// }
//}
OnPropertyChanged(nameof(IsBroadcastButtonEnabled)); OnPropertyChanged(nameof(IsBroadcastButtonEnabled));
OnPropertyChanged(nameof(IsSendButtonEnabled)); OnPropertyChanged(nameof(IsSendButtonEnabled));
} }
@@ -934,13 +915,12 @@ namespace ChatController
var userOid = Chat.ChatDaten.LoggedInUser.Response.User.Oid; var userOid = Chat.ChatDaten.LoggedInUser.Response.User.Oid;
var senderId = contactDependencyObject.Contact.ReceivedMessage?.UserId; var senderId = contactDependencyObject.Contact.ReceivedMessage?.UserId;
var receiverId = userOid;
var receiverGroupId = newContact.GroupId; var receiverGroupId = newContact.GroupId;
var selectedGroupId = selectedContact?.GroupId; var selectedGroupId = selectedContact?.GroupId;
if(senderId != receiverId && (_IsInBackground || receiverGroupId != selectedGroupId)) if(senderId != userOid && (_IsInBackground || receiverGroupId != selectedGroupId))
{ {
if(!(ContainingWindow is null)) if(false == ContainingWindow is null)
{ {
ContainingWindow.Icon = Utils.ConvertIconToImageSource(Resource.oC_favico_NewMessage); ContainingWindow.Icon = Utils.ConvertIconToImageSource(Resource.oC_favico_NewMessage);
} }
@@ -949,7 +929,7 @@ namespace ChatController
} }
// Wenn der momentan ausgewählte Kontakt der aktuelle Kontakt in der Schleife ist, werden die Nachrichten nicht als ungelesen angezeigt, sonst schon. // Wenn der momentan ausgewählte Kontakt der aktuelle Kontakt in der Schleife ist, werden die Nachrichten nicht als ungelesen angezeigt, sonst schon.
if(!(CurrentContact is null) && newContact.GroupId == CurrentContact.GroupId) if(false == CurrentContact is null && newContact.GroupId == CurrentContact.GroupId)
{ {
contactDependencyObject.Contact.HasUnreadMessages = false; contactDependencyObject.Contact.HasUnreadMessages = false;
} }

View File

@@ -13,6 +13,7 @@ using System.Net.Http;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web.UI.WebControls;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data; using System.Windows.Data;
@@ -88,7 +89,7 @@ namespace ChatController.HauptKlassen
// Führt zu doppelter neuester Nachricht, wenn man vorher eine verschickt hat! // Führt zu doppelter neuester Nachricht, wenn man vorher eine verschickt hat!
public void LoadChatMessagesForContactAsync(Contact contact, ChatMessage previousMessage, Action<List<ChatMessage>> callback) public void LoadChatMessagesForContactAsync(Contact contact, ChatMessage previousMessage, Action<List<ChatMessage>> callback)
{ {
if(!(contact is null)) if(false == contact is null)
{ {
LoadMessagesFromServerAsync(contact.GroupId, delegate LoadMessagesFromServerAsync(contact.GroupId, delegate
{ {
@@ -946,14 +947,14 @@ namespace ChatController.HauptKlassen
var clientZone = TimeZoneInfo.Local; var clientZone = TimeZoneInfo.Local;
var formattedTime = TimeZoneInfo.ConvertTimeFromUtc(time, clientZone); var formattedTime = TimeZoneInfo.ConvertTimeFromUtc(time, clientZone);
var isLoggedInUsersMessage = !(ChatDaten.Userid is null) && message.UserId == ChatDaten.Userid.Value; var isLoggedInUsersMessage = false == ChatDaten.Userid is null && message.UserId == ChatDaten.Userid.Value;
var messageText = message.Text ?? (string.IsNullOrEmpty(message.File) ? string.Empty : message.OriginalFilename); var messageText = message.Text ?? (string.IsNullOrEmpty(message.FileProtected) ? string.Empty : message.OriginalFilename);
if(!string.IsNullOrEmpty(message.File)) if(false == string.IsNullOrEmpty(message.FileProtected))
{ {
var message2Add = Constants.ImageFileExtensions.Contains(Path.GetExtension(message.File).ToUpperInvariant()) ? //SmallerImage ist null var message2Add = Constants.ImageFileExtensions.Contains(Path.GetExtension(message.FileProtected).ToUpperInvariant()) ? //SmallerImage ist null
new ChatMessage(message.GroupId, message.Id, message.UserName, messageText, formattedTime, isLoggedInUsersMessage, message.FileSize, message.SmallerImage, message.File, message.OriginalFilename, null, null, ChatMessageType.Image, message.UserId) : new ChatMessage(message.GroupId, message.Id, message.UserName, messageText, formattedTime, isLoggedInUsersMessage, message.FileSize, message.SmallerImage, message.FileProtected, message.OriginalFilename, null, null, ChatMessageType.Image, message.UserId) :
new ChatMessage(message.GroupId, message.Id, message.UserName, messageText, formattedTime, isLoggedInUsersMessage, 0, message.File, null, null, message.SmallerImage, null, ChatMessageType.Document, message.UserId); new ChatMessage(message.GroupId, message.Id, message.UserName, messageText, formattedTime, isLoggedInUsersMessage, 0, message.FileProtected, null, null, message.SmallerImage, null, ChatMessageType.Document, message.UserId);
result.AddIfNotIn(message2Add); result.AddIfNotIn(message2Add);
} }
@@ -975,9 +976,7 @@ namespace ChatController.HauptKlassen
chatMessages = new List<ChatMessage>(); chatMessages = new List<ChatMessage>();
} }
var test = chatMessages.Any(a => a is null); var messagesWithoutSeparators = chatMessages.Where(message => message != null && false == message.IsSeparator).OrderBy(message => message.SendTime).ToList();
var messagesWithoutSeparators = chatMessages.Where(message => !message.IsSeparator).OrderBy(message => message.SendTime).ToList();
var separators = new List<ChatMessage>(); var separators = new List<ChatMessage>();
@@ -985,7 +984,7 @@ namespace ChatController.HauptKlassen
foreach(var message in messagesWithoutSeparators.OrderBy(message => message.SendTime)) foreach(var message in messagesWithoutSeparators.OrderBy(message => message.SendTime))
{ {
if(!message.Equals(previousMessage) && !(previousMessage is null)) if(false == message.Equals(previousMessage) && false == previousMessage is null)
{ {
if(message.SendTime.Date != previousMessage.SendTime.Date) if(message.SendTime.Date != previousMessage.SendTime.Date)
{ {

View File

@@ -3,10 +3,6 @@ using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
using System.Web; using System.Web;
using System.Windows; using System.Windows;
using ChatController.Core; using ChatController.Core;

View File

@@ -211,7 +211,7 @@ namespace ChatController
} }
var debugFile = @"C:\Users\Lyndon\Documents\ownchat-desktop-debug-info.txt"; var debugFile = @"C:\Users\Lyndon\Documents\ownchat-desktop-debug-info.txt";
if (File.Exists(debugFile)) if(File.Exists(debugFile))
{ {
using(var streamReader2 = new StreamReader(debugFile, true)) using(var streamReader2 = new StreamReader(debugFile, true))
{ {

View File

@@ -1,5 +1,4 @@
using System; using Newtonsoft.Json;
using Newtonsoft.Json;
namespace ChatController.LoginKlassen namespace ChatController.LoginKlassen
{ {
@@ -50,6 +49,9 @@ namespace ChatController.LoginKlassen
[JsonProperty("file")] [JsonProperty("file")]
public string File { get; set; } public string File { get; set; }
[JsonProperty("file_protected")]
public string FileProtected { get; set; }
[JsonProperty("original_filename")] [JsonProperty("original_filename")]
public string OriginalFilename { get; set; } public string OriginalFilename { get; set; }

View File

@@ -5,7 +5,6 @@ using System.Runtime.CompilerServices;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using ChatController.Annotations; using ChatController.Annotations;
using ChatController.Core;
namespace ChatController.Utilities namespace ChatController.Utilities
{ {
@@ -20,7 +19,7 @@ namespace ChatController.Utilities
set set
{ {
_OriginalFilePath = value; _OriginalFilePath = value;
OnPropertyChanged(nameof(OriginalFilePath)); OnPropertyChanged();
OnPropertyChanged(nameof(FileName)); OnPropertyChanged(nameof(FileName));
} }
} }
@@ -32,7 +31,7 @@ namespace ChatController.Utilities
set set
{ {
_ScaledFilePath = value; _ScaledFilePath = value;
OnPropertyChanged(nameof(ScaledFilePath)); OnPropertyChanged();
} }
} }
@@ -44,7 +43,7 @@ namespace ChatController.Utilities
private set private set
{ {
_ChatMessageImageSource = value; _ChatMessageImageSource = value;
OnPropertyChanged(nameof(ChatMessageImageSource)); OnPropertyChanged();
} }
} }
@@ -55,7 +54,7 @@ namespace ChatController.Utilities
var uri = new Uri(scaledFilePath); var uri = new Uri(scaledFilePath);
if (Constants.ImageFileExtensions.Contains(Path.GetExtension(scaledFilePath).ToUpperInvariant()) && uri.IsFile) if(Constants.ImageFileExtensions.Contains(Path.GetExtension(scaledFilePath).ToUpperInvariant()) && uri.IsFile)
{ {
var bitmap = new BitmapImage(uri); var bitmap = new BitmapImage(uri);
bitmap.Freeze(); bitmap.Freeze();

View File

@@ -36,6 +36,8 @@ namespace ChatController.Utilities
} }
} }
private static readonly object _Lock = new object();
/// <summary> /// <summary>
/// Lädt ein Bild aus einer Nachricht herunter. /// Lädt ein Bild aus einer Nachricht herunter.
/// </summary> /// </summary>
@@ -80,7 +82,7 @@ namespace ChatController.Utilities
request.AddHeader(Constants.Token, AuthToken); request.AddHeader(Constants.Token, AuthToken);
request.AddHeader(Constants.CustomerId, Tenant); request.AddHeader(Constants.CustomerId, Tenant);
client.ExecuteAsync(request, null); client.ExecuteAsync(request, (a,b)=>{});
} }
private static Rotation GetRotationFromExifTag(int value) private static Rotation GetRotationFromExifTag(int value)
@@ -110,7 +112,7 @@ namespace ChatController.Utilities
var cachedImage = cache.GetImageSourceFromCache(key, uri, cacheCategory); var cachedImage = cache.GetImageSourceFromCache(key, uri, cacheCategory);
if(!(cachedImage is null)) if(false == cachedImage is null)
{ {
callback?.Invoke(cachedImage); callback?.Invoke(cachedImage);
return; return;