Initial integration.

This commit is contained in:
Burak Kaan Köse
2025-12-26 20:46:48 +01:00
parent 10b85ea135
commit 014b5aa671
79 changed files with 4694 additions and 432 deletions
@@ -27,7 +27,7 @@ using Wino.Messaging.UI;
namespace Wino.Mail.ViewModels;
public partial class AppShellViewModel : MailBaseViewModel,
public partial class MailAppShellViewModel : MailBaseViewModel,
IRecipient<NavigateManageAccountsRequested>,
IRecipient<MailtoProtocolMessageRequested>,
IRecipient<RefreshUnreadCountsMessage>,
@@ -83,7 +83,7 @@ public partial class AppShellViewModel : MailBaseViewModel,
private readonly SemaphoreSlim accountInitFolderUpdateSlim = new SemaphoreSlim(1);
public AppShellViewModel(IMailDialogService dialogService,
public MailAppShellViewModel(IMailDialogService dialogService,
INavigationService navigationService,
IMimeFileService mimeFileService,
INativeAppService nativeAppService,
@@ -392,7 +392,7 @@ public partial class AppShellViewModel : MailBaseViewModel,
var args = new NavigateMailFolderEventArgs(baseFolderMenuItem, folderInitAwaitTask);
NavigationService.Navigate(WinoPage.MailListPage, args, NavigationReferenceFrame.ShellFrame);
NavigationService.Navigate(WinoPage.MailListPage, args, NavigationReferenceFrame.InnerShellFrame);
UpdateWindowTitleForFolder(baseFolderMenuItem);
});
@@ -587,15 +587,15 @@ public partial class AppShellViewModel : MailBaseViewModel,
}
else if (clickedMenuItem is SettingsItem)
{
NavigationService.Navigate(WinoPage.SettingsPage, parameter, NavigationReferenceFrame.ShellFrame, NavigationTransitionType.None);
NavigationService.Navigate(WinoPage.SettingsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None);
}
else if (clickedMenuItem is ManageAccountsMenuItem)
{
NavigationService.Navigate(WinoPage.ManageAccountsPage, parameter, NavigationReferenceFrame.ShellFrame, NavigationTransitionType.None);
NavigationService.Navigate(WinoPage.ManageAccountsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None);
}
else if (clickedMenuItem is ContactsMenuItem)
{
NavigationService.Navigate(WinoPage.ContactsPage, parameter, NavigationReferenceFrame.ShellFrame, NavigationTransitionType.None);
NavigationService.Navigate(WinoPage.ContactsPage, parameter, NavigationReferenceFrame.InnerShellFrame, NavigationTransitionType.None);
}
else if (clickedMenuItem is IAccountMenuItem clickedAccountMenuItem)
{
@@ -1003,7 +1003,7 @@ public partial class AppShellViewModel : MailBaseViewModel,
accountMenuItem.TotalItemsToSync = message.TotalItemsToSync;
accountMenuItem.RemainingItemsToSync = message.RemainingItemsToSync;
accountMenuItem.SynchronizationStatus = message.SynchronizationStatus;
// If this account is part of a merged inbox, update the merged inbox progress as well
if (accountMenuItem.ParentMenuItem is MergedAccountMenuItem mergedAccountMenuItem)
{
@@ -1040,6 +1040,9 @@ public partial class AppShellViewModel : MailBaseViewModel,
{
base.UnregisterRecipients();
Messenger.Unregister<AccountCreatedMessage>(this);
Messenger.Unregister<AccountRemovedMessage>(this);
Messenger.Unregister<AccountUpdatedMessage>(this);
Messenger.Unregister<NavigateManageAccountsRequested>(this);
Messenger.Unregister<MailtoProtocolMessageRequested>(this);
Messenger.Unregister<RefreshUnreadCountsMessage>(this);
+4 -2
View File
@@ -43,7 +43,9 @@ public class MailBaseViewModel : CoreBaseViewModel,
protected override void RegisterRecipients()
{
base.RegisterRecipients();
UnregisterRecipients();
Messenger.Register<MailAddedMessage>(this);
Messenger.Register<MailRemovedMessage>(this);
Messenger.Register<MailUpdatedMessage>(this);
@@ -58,7 +60,7 @@ public class MailBaseViewModel : CoreBaseViewModel,
protected override void UnregisterRecipients()
{
base.UnregisterRecipients();
Messenger.Unregister<MailAddedMessage>(this);
Messenger.Unregister<MailRemovedMessage>(this);
Messenger.Unregister<MailUpdatedMessage>(this);
@@ -1,13 +0,0 @@
using Microsoft.Extensions.DependencyInjection;
using Wino.Core;
namespace Wino.Mail.ViewModels;
public static class MailViewModelsContainerSetup
{
public static void RegisterViewModelService(this IServiceCollection services)
{
// View models use core services.
services.RegisterCoreServices();
}
}