General account details settings and some marking mail issues

This commit is contained in:
Burak Kaan Köse
2026-04-01 01:41:17 +02:00
parent 6f61605c12
commit 7b369201b0
11 changed files with 536 additions and 435 deletions
+4 -2
View File
@@ -12,6 +12,8 @@ namespace Wino.Core.Requests.Mail;
public record ChangeFlagRequest(MailCopy Item, bool IsFlagged) : MailRequestBase(Item),
ICustomFolderSynchronizationRequest
{
private readonly bool _originalIsFlagged = Item.IsFlagged;
public List<Guid> SynchronizationFolderIds => [Item.FolderId];
public bool ExcludeMustHaveFolders => true;
@@ -22,7 +24,7 @@ public record ChangeFlagRequest(MailCopy Item, bool IsFlagged) : MailRequestBase
/// Gets whether this request represents an actual state change.
/// If the mail is already in the desired flagged state, no change is needed.
/// </summary>
public bool IsNoOp => Item.IsFlagged == IsFlagged;
public bool IsNoOp { get; } = Item.IsFlagged == IsFlagged;
public override void ApplyUIChanges()
{
@@ -39,7 +41,7 @@ public record ChangeFlagRequest(MailCopy Item, bool IsFlagged) : MailRequestBase
// Skip UI revert if this was a no-op request
if (IsNoOp) return;
Item.IsFlagged = !IsFlagged;
Item.IsFlagged = _originalIsFlagged;
WeakReferenceMessenger.Default.Send(new MailUpdatedMessage(Item, MailUpdateSource.ClientReverted, MailCopyChangeFlags.IsFlagged));
}
+4 -2
View File
@@ -11,6 +11,8 @@ namespace Wino.Core.Requests.Mail;
public record MarkReadRequest(MailCopy Item, bool IsRead) : MailRequestBase(Item), ICustomFolderSynchronizationRequest
{
private readonly bool _originalIsRead = Item.IsRead;
public List<Guid> SynchronizationFolderIds => [Item.FolderId];
public override MailSynchronizerOperation Operation => MailSynchronizerOperation.MarkRead;
@@ -21,7 +23,7 @@ public record MarkReadRequest(MailCopy Item, bool IsRead) : MailRequestBase(Item
/// Gets whether this request represents an actual state change.
/// If the mail is already in the desired read state, no change is needed.
/// </summary>
public bool IsNoOp => Item.IsRead == IsRead;
public bool IsNoOp { get; } = Item.IsRead == IsRead;
public override void ApplyUIChanges()
{
@@ -38,7 +40,7 @@ public record MarkReadRequest(MailCopy Item, bool IsRead) : MailRequestBase(Item
// Skip UI revert if this was a no-op request
if (IsNoOp) return;
Item.IsRead = !IsRead;
Item.IsRead = _originalIsRead;
WeakReferenceMessenger.Default.Send(new MailUpdatedMessage(Item, MailUpdateSource.ClientReverted, MailCopyChangeFlags.IsRead));
}