Swipe action implementations.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user