Fixed the issue with mail rendering page not getting disposed properly.
This commit is contained in:
@@ -461,10 +461,10 @@ public partial class MailRenderingPageViewModel : MailBaseViewModel,
|
|||||||
// TODO: FromName and FromAddress is probably not correct here for mail lists.
|
// TODO: FromName and FromAddress is probably not correct here for mail lists.
|
||||||
FromAddress = message.From.Mailboxes.FirstOrDefault()?.Address ?? Translator.UnknownAddress;
|
FromAddress = message.From.Mailboxes.FirstOrDefault()?.Address ?? Translator.UnknownAddress;
|
||||||
FromName = message.From.Mailboxes.FirstOrDefault()?.Name ?? Translator.UnknownSender;
|
FromName = message.From.Mailboxes.FirstOrDefault()?.Name ?? Translator.UnknownSender;
|
||||||
|
|
||||||
// Use the received date from MailCopy if available, otherwise fall back to the sent date from MIME message
|
// Use the received date from MailCopy if available, otherwise fall back to the sent date from MIME message
|
||||||
CreationDate = initializedMailItemViewModel?.MailCopy.CreationDate ?? message.Date.DateTime;
|
CreationDate = initializedMailItemViewModel?.MailCopy.CreationDate ?? message.Date.DateTime;
|
||||||
|
|
||||||
ContactPicture = initializedMailItemViewModel?.MailCopy.SenderContact?.Base64ContactPicture;
|
ContactPicture = initializedMailItemViewModel?.MailCopy.SenderContact?.Base64ContactPicture;
|
||||||
|
|
||||||
// Automatically disable images for Junk folder to prevent pixel tracking.
|
// Automatically disable images for Junk folder to prevent pixel tracking.
|
||||||
@@ -535,7 +535,10 @@ public partial class MailRenderingPageViewModel : MailBaseViewModel,
|
|||||||
{
|
{
|
||||||
base.OnNavigatedFrom(mode, parameters);
|
base.OnNavigatedFrom(mode, parameters);
|
||||||
|
|
||||||
renderCancellationTokenSource.Cancel();
|
renderCancellationTokenSource?.Cancel();
|
||||||
|
renderCancellationTokenSource?.Dispose();
|
||||||
|
renderCancellationTokenSource = null;
|
||||||
|
|
||||||
CurrentDownloadPercentage = 0d;
|
CurrentDownloadPercentage = 0d;
|
||||||
|
|
||||||
initializedMailItemViewModel = null;
|
initializedMailItemViewModel = null;
|
||||||
@@ -878,7 +881,7 @@ public partial class MailRenderingPageViewModel : MailBaseViewModel,
|
|||||||
protected override void RegisterRecipients()
|
protected override void RegisterRecipients()
|
||||||
{
|
{
|
||||||
base.RegisterRecipients();
|
base.RegisterRecipients();
|
||||||
|
|
||||||
Messenger.Register<NewMailItemRenderingRequestedEvent>(this);
|
Messenger.Register<NewMailItemRenderingRequestedEvent>(this);
|
||||||
Messenger.Register<ThumbnailAdded>(this);
|
Messenger.Register<ThumbnailAdded>(this);
|
||||||
}
|
}
|
||||||
@@ -886,7 +889,7 @@ public partial class MailRenderingPageViewModel : MailBaseViewModel,
|
|||||||
protected override void UnregisterRecipients()
|
protected override void UnregisterRecipients()
|
||||||
{
|
{
|
||||||
base.UnregisterRecipients();
|
base.UnregisterRecipients();
|
||||||
|
|
||||||
Messenger.Unregister<NewMailItemRenderingRequestedEvent>(this);
|
Messenger.Unregister<NewMailItemRenderingRequestedEvent>(this);
|
||||||
Messenger.Unregister<ThumbnailAdded>(this);
|
Messenger.Unregister<ThumbnailAdded>(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ using Wino.Core.Domain;
|
|||||||
using Wino.Core.Domain.Enums;
|
using Wino.Core.Domain.Enums;
|
||||||
using Wino.Core.Domain.Interfaces;
|
using Wino.Core.Domain.Interfaces;
|
||||||
using Wino.Core.Domain.Models.Printing;
|
using Wino.Core.Domain.Models.Printing;
|
||||||
using Wino.Mail.WinUI.Extensions;
|
|
||||||
using Wino.Mail.ViewModels.Data;
|
using Wino.Mail.ViewModels.Data;
|
||||||
using Wino.Mail.WinUI;
|
using Wino.Mail.WinUI;
|
||||||
|
using Wino.Mail.WinUI.Extensions;
|
||||||
using Wino.Messaging.Client.Mails;
|
using Wino.Messaging.Client.Mails;
|
||||||
using Wino.Messaging.Client.Shell;
|
using Wino.Messaging.Client.Shell;
|
||||||
using Wino.Views.Abstract;
|
using Wino.Views.Abstract;
|
||||||
@@ -149,6 +149,9 @@ public sealed partial class MailRenderingPage : MailRenderingPageAbstract,
|
|||||||
// Disposing the page.
|
// Disposing the page.
|
||||||
// Make sure the WebView2 is disposed properly.
|
// Make sure the WebView2 is disposed properly.
|
||||||
|
|
||||||
|
ViewModel.SaveHTMLasPDFFunc = null;
|
||||||
|
ViewModel.DirectPrintFuncAsync = null;
|
||||||
|
|
||||||
DisposeWebView2();
|
DisposeWebView2();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,7 +328,7 @@ public sealed partial class MailRenderingPage : MailRenderingPageAbstract,
|
|||||||
protected override void RegisterRecipients()
|
protected override void RegisterRecipients()
|
||||||
{
|
{
|
||||||
base.RegisterRecipients();
|
base.RegisterRecipients();
|
||||||
|
|
||||||
WeakReferenceMessenger.Default.Register<HtmlRenderingRequested>(this);
|
WeakReferenceMessenger.Default.Register<HtmlRenderingRequested>(this);
|
||||||
WeakReferenceMessenger.Default.Register<CancelRenderingContentRequested>(this);
|
WeakReferenceMessenger.Default.Register<CancelRenderingContentRequested>(this);
|
||||||
WeakReferenceMessenger.Default.Register<ApplicationThemeChanged>(this);
|
WeakReferenceMessenger.Default.Register<ApplicationThemeChanged>(this);
|
||||||
@@ -334,7 +337,7 @@ public sealed partial class MailRenderingPage : MailRenderingPageAbstract,
|
|||||||
protected override void UnregisterRecipients()
|
protected override void UnregisterRecipients()
|
||||||
{
|
{
|
||||||
base.UnregisterRecipients();
|
base.UnregisterRecipients();
|
||||||
|
|
||||||
WeakReferenceMessenger.Default.Unregister<HtmlRenderingRequested>(this);
|
WeakReferenceMessenger.Default.Unregister<HtmlRenderingRequested>(this);
|
||||||
WeakReferenceMessenger.Default.Unregister<CancelRenderingContentRequested>(this);
|
WeakReferenceMessenger.Default.Unregister<CancelRenderingContentRequested>(this);
|
||||||
WeakReferenceMessenger.Default.Unregister<ApplicationThemeChanged>(this);
|
WeakReferenceMessenger.Default.Unregister<ApplicationThemeChanged>(this);
|
||||||
|
|||||||
Reference in New Issue
Block a user