Fix wrong logic for set/unset flag
This commit is contained in:
@@ -80,27 +80,26 @@ namespace Wino.Core.Services
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool isAllFlagged = selectedMailItems.All(a => a.IsFlagged);
|
|
||||||
bool isAllRead = selectedMailItems.All(a => a.IsRead);
|
bool isAllRead = selectedMailItems.All(a => a.IsRead);
|
||||||
bool isAllUnread = selectedMailItems.All(a => !a.IsRead);
|
bool isAllUnread = selectedMailItems.All(a => !a.IsRead);
|
||||||
|
bool isAllFlagged = selectedMailItems.All(a => a.IsFlagged);
|
||||||
|
bool isAllNotFlagged = selectedMailItems.All(a => !a.IsFlagged);
|
||||||
|
|
||||||
if (isAllRead)
|
List<MailOperationMenuItem> readOperations = (isAllRead, isAllUnread) switch
|
||||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.MarkAsUnread));
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (!isAllUnread)
|
(true, false) => [MailOperationMenuItem.Create(MailOperation.MarkAsUnread)],
|
||||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.MarkAsUnread));
|
(false, true) => [MailOperationMenuItem.Create(MailOperation.MarkAsRead)],
|
||||||
|
_ => [MailOperationMenuItem.Create(MailOperation.MarkAsRead), MailOperationMenuItem.Create(MailOperation.MarkAsUnread)]
|
||||||
|
};
|
||||||
|
operationList.AddRange(readOperations);
|
||||||
|
|
||||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.MarkAsRead));
|
List<MailOperationMenuItem> flagsOperations = (isAllFlagged, isAllNotFlagged) switch
|
||||||
}
|
|
||||||
|
|
||||||
if (isAllFlagged)
|
|
||||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.ClearFlag));
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.ClearFlag));
|
(true, false) => [MailOperationMenuItem.Create(MailOperation.ClearFlag)],
|
||||||
operationList.Add(MailOperationMenuItem.Create(MailOperation.SetFlag));
|
(false, true) => [MailOperationMenuItem.Create(MailOperation.SetFlag)],
|
||||||
}
|
_ => [MailOperationMenuItem.Create(MailOperation.SetFlag), MailOperationMenuItem.Create(MailOperation.ClearFlag)]
|
||||||
|
};
|
||||||
|
operationList.AddRange(flagsOperations);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore
|
// Ignore
|
||||||
|
|||||||
Reference in New Issue
Block a user