Fix couple issues with starting mode.

This commit is contained in:
Burak Kaan Köse
2026-02-27 10:22:52 +01:00
parent 4b22608bc5
commit e1ce85698c
4 changed files with 165 additions and 79 deletions
+32 -3
View File
@@ -35,6 +35,21 @@ public class NavigationService : NavigationServiceBase, INavigationService
WinoPage.ComposePage
};
private static readonly WinoPage[] MailOnlyPages =
[
WinoPage.MailListPage,
WinoPage.MailRenderingPage,
WinoPage.ComposePage,
WinoPage.IdlePage,
WinoPage.WelcomePage
];
private static readonly WinoPage[] CalendarOnlyPages =
[
WinoPage.CalendarPage,
WinoPage.EventDetailsPage
];
public NavigationService(IStatePersistanceService statePersistanceService)
{
_statePersistanceService = statePersistanceService;
@@ -140,9 +155,17 @@ public class NavigationService : NavigationServiceBase, INavigationService
var pageType = GetPageType(page);
if (pageType == null) return false;
var currentApplicationMode = GetCoreFrame(NavigationReferenceFrame.ShellFrame)?.Content?.GetType() == typeof(MailAppShell)
? WinoApplicationMode.Mail
: WinoApplicationMode.Calendar;
var currentApplicationMode = _statePersistanceService.ApplicationMode;
if (currentApplicationMode == WinoApplicationMode.Calendar && IsMailOnlyPage(page))
{
return false;
}
if (currentApplicationMode == WinoApplicationMode.Mail && IsCalendarOnlyPage(page))
{
return false;
}
_statePersistanceService.IsReadingMail = _renderingPageTypes.Contains(page);
_statePersistanceService.IsEventDetailsVisible = page == WinoPage.EventDetailsPage;
@@ -248,6 +271,12 @@ public class NavigationService : NavigationServiceBase, INavigationService
return false;
}
private static bool IsMailOnlyPage(WinoPage page)
=> MailOnlyPages.Contains(page);
private static bool IsCalendarOnlyPage(WinoPage page)
=> CalendarOnlyPages.Contains(page);
private static LoadCalendarMessage CreateLoadCalendarMessage(CalendarPageNavigationArgs args)
{
var targetDate = args.RequestDefaultNavigation