Adding contact details for loaded mails and fixing background notification actions.

This commit is contained in:
Burak Kaan Köse
2024-08-23 01:07:00 +02:00
parent 0fbeb11304
commit f45580be70
26 changed files with 523 additions and 427 deletions

View File

@@ -11,12 +11,13 @@ namespace Wino.Mail.ViewModels.Data
/// </summary>
public partial class MailItemViewModel(MailCopy mailCopy) : ObservableObject, IMailItem
{
public MailCopy MailCopy { get; private set; } = mailCopy;
[ObservableProperty]
private MailCopy mailCopy = mailCopy;
// public MailCopy MailCopy { get; private set; } = mailCopy;
public Guid UniqueId => ((IMailItem)MailCopy).UniqueId;
public string ThreadId => ((IMailItem)MailCopy).ThreadId;
public string MessageId => ((IMailItem)MailCopy).MessageId;
public string FromName => ((IMailItem)MailCopy).FromName ?? FromAddress;
public DateTime CreationDate => ((IMailItem)MailCopy).CreationDate;
public string References => ((IMailItem)MailCopy).References;
public string InReplyTo => ((IMailItem)MailCopy).InReplyTo;
@@ -33,6 +34,12 @@ namespace Wino.Mail.ViewModels.Data
set => SetProperty(MailCopy.IsFlagged, value, MailCopy, (u, n) => u.IsFlagged = n);
}
public string FromName
{
get => string.IsNullOrEmpty(MailCopy.FromName) ? MailCopy.FromAddress : MailCopy.FromName;
set => SetProperty(MailCopy.FromName, value, MailCopy, (u, n) => u.FromName = n);
}
public bool IsFocused
{
get => MailCopy.IsFocused;
@@ -93,20 +100,22 @@ namespace Wino.Mail.ViewModels.Data
public Guid FileId => ((IMailItem)MailCopy).FileId;
public void Update(MailCopy updatedMailItem)
{
MailCopy = updatedMailItem;
public AccountContact SenderContact => ((IMailItem)MailCopy).SenderContact;
OnPropertyChanged(nameof(IsRead));
OnPropertyChanged(nameof(IsFocused));
OnPropertyChanged(nameof(IsFlagged));
OnPropertyChanged(nameof(IsDraft));
OnPropertyChanged(nameof(DraftId));
OnPropertyChanged(nameof(Subject));
OnPropertyChanged(nameof(PreviewText));
OnPropertyChanged(nameof(FromAddress));
OnPropertyChanged(nameof(HasAttachments));
}
//public void Update(MailCopy updatedMailItem)
//{
// MailCopy = updatedMailItem;
// //OnPropertyChanged(nameof(IsRead));
// //OnPropertyChanged(nameof(IsFocused));
// //OnPropertyChanged(nameof(IsFlagged));
// //OnPropertyChanged(nameof(IsDraft));
// //OnPropertyChanged(nameof(DraftId));
// //OnPropertyChanged(nameof(Subject));
// //OnPropertyChanged(nameof(PreviewText));
// //OnPropertyChanged(nameof(FromAddress));
// //OnPropertyChanged(nameof(HasAttachments));
//}
public IEnumerable<Guid> GetContainingIds() => new[] { UniqueId };
}

View File

@@ -15,6 +15,7 @@ namespace Wino.Mail.ViewModels.Data
public partial class ThreadMailItemViewModel : ObservableObject, IMailItemThread, IComparable<string>, IComparable<DateTime>
{
public ObservableCollection<IMailItem> ThreadItems => ((IMailItemThread)_threadMailItem).ThreadItems;
public AccountContact SenderContact => ((IMailItemThread)_threadMailItem).SenderContact;
private readonly ThreadMailItem _threadMailItem;