Swipe action implementations.

This commit is contained in:
Burak Kaan Köse
2025-10-27 23:22:55 +01:00
parent 4f85fa6ba9
commit c461a4daed
4 changed files with 260 additions and 59 deletions
+26 -1
View File
@@ -41,7 +41,8 @@ public partial class MailListPageViewModel : MailBaseViewModel,
IRecipient<AccountSynchronizerStateChanged>,
IRecipient<AccountCacheResetMessage>,
IRecipient<ThumbnailAdded>,
IRecipient<PropertyChangedMessage<bool>>
IRecipient<PropertyChangedMessage<bool>>,
IRecipient<SwipeActionRequested>
{
private bool isChangingFolder = false;
@@ -1126,4 +1127,28 @@ public partial class MailListPageViewModel : MailBaseViewModel,
}
}
}
public async void Receive(SwipeActionRequested message)
{
if (message.MailItem == null) return;
// Get mail copies based on the mail item type
IEnumerable<MailCopy> mailCopies;
if (message.MailItem is MailItemViewModel singleItem)
{
mailCopies = new[] { singleItem.MailCopy };
}
else if (message.MailItem is ThreadMailItemViewModel threadItem)
{
mailCopies = threadItem.ThreadEmails.Select(e => e.MailCopy);
}
else
{
return; // Unknown mail item type
}
var package = new MailOperationPreperationRequest(message.Operation, mailCopies);
await ExecuteMailOperationAsync(package);
}
}