Ground work for Wino Calendar. (#475)

Wino Calendar abstractions.
This commit is contained in:
Burak Kaan Köse
2024-11-10 23:28:25 +01:00
committed by GitHub
parent a979e8430f
commit d1d6f12f05
486 changed files with 7969 additions and 2708 deletions

View File

@@ -4,17 +4,17 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:abstract="using:Wino.Views.Abstract"
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
xmlns:domain="using:Wino.Core.Domain"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<ScrollViewer>
<StackPanel Spacing="3">
<Image
Source="ms-appx:///Assets/StoreLogo.png"
Width="50"
Height="50" />
Height="50"
Source="ms-appx:///Assets/StoreLogo.png" />
<TextBlock
Margin="0,6,0,4"
HorizontalAlignment="Center"
@@ -133,9 +133,9 @@
</controls:SettingsExpander.HeaderIcon>
<controls:SettingsExpander.Items>
<controls:SettingsCard Header="{x:Bind domain:Translator.SettingsEnableLogs_Title}" Description="{x:Bind domain:Translator.SettingsEnableLogs_Description}">
<controls:SettingsCard Description="{x:Bind domain:Translator.SettingsEnableLogs_Description}" Header="{x:Bind domain:Translator.SettingsEnableLogs_Title}">
<StackPanel Orientation="Horizontal" Spacing="12">
<Button Content="{x:Bind domain:Translator.Buttons_Share}" Command="{x:Bind ViewModel.ShareWinoLogCommand}" />
<Button Command="{x:Bind ViewModel.ShareWinoLogCommand}" Content="{x:Bind domain:Translator.Buttons_Share}" />
<ToggleSwitch IsOn="{x:Bind ViewModel.PreferencesService.IsLoggingEnabled, Mode=TwoWay}" />
</StackPanel>
</controls:SettingsCard>

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Core.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,10 +1,10 @@
using Windows.UI.Xaml.Navigation;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{
public abstract class AccountManagementPageAbstract : BasePage<AccountManagementViewModel>
{
}
}

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Windows.UI.Xaml;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Core.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,10 +1,9 @@
using Windows.UI.Xaml;
using Wino.Mail.ViewModels;
using Wino.Core.ViewModels;
namespace Wino.Views.Abstract
{
public abstract class PersonalizationPageAbstract : SettingsPageBase<PersonalizationPageViewModel>
{
}
}

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,8 +0,0 @@
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{
public abstract class SettingOptionsPageAbstract : SettingsPageBase<SettingOptionsPageViewModel>
{
}
}

View File

@@ -1,6 +0,0 @@
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{
public abstract class SettingsPageAbstract : BasePage<SettingsPageViewModel> { }
}

View File

@@ -1,16 +0,0 @@
using Windows.UI.Xaml;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{
public class SettingsPageBase<T> : BasePage<T> where T : BaseViewModel
{
public string Title
{
get { return (string)GetValue(TitleProperty); }
set { SetValue(TitleProperty, value); }
}
public static readonly DependencyProperty TitleProperty = DependencyProperty.Register(nameof(Title), typeof(string), typeof(SettingsPageBase<T>), new PropertyMetadata(string.Empty));
}
}

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -1,4 +1,5 @@
using Wino.Mail.ViewModels;
using Wino.Core.UWP;
using Wino.Mail.ViewModels;
namespace Wino.Views.Abstract
{

View File

@@ -5,6 +5,7 @@
xmlns:abstract="using:Wino.Views.Abstract"
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
xmlns:controls1="using:Wino.Controls"
xmlns:coreControls="using:Wino.Core.UWP.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:entites="using:Wino.Core.Domain.Entities"
@@ -32,7 +33,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<controls1:WinoFontIcon FontSize="20" Icon="{x:Bind helpers:XamlHelpers.GetSpecialFolderPathIconGeometry(SpecialFolderType)}" />
<coreControls:WinoFontIcon FontSize="20" Icon="{x:Bind helpers:XamlHelpers.GetSpecialFolderPathIconGeometry(SpecialFolderType)}" />
<TextBlock
Grid.Column="1"
Margin="12,0"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -4,10 +4,11 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:abstract="using:Wino.Views.Abstract"
xmlns:controls="using:Wino.Controls"
xmlns:coreControls="using:Wino.Core.UWP.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:data="using:Wino.Mail.ViewModels.Data"
xmlns:domain="using:Wino.Core.Domain"
xmlns:entities="using:Wino.Core.Domain.Entities"
xmlns:entities="using:Wino.Core.Domain.Entities.Shared"
xmlns:helpers="using:Wino.Helpers"
xmlns:mailkit="using:MimeKit"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@@ -165,7 +166,7 @@
ToolTipService.ToolTip="Light Theme"
Visibility="{x:Bind IsComposerDarkMode, Mode=OneWay}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="LightEditor" />
<coreControls:WinoFontIcon Icon="LightEditor" />
</AppBarButton.Icon>
</AppBarButton>
@@ -175,18 +176,18 @@
ToolTipService.ToolTip="Dark Theme"
Visibility="{x:Bind IsComposerDarkMode, Mode=OneWay, Converter={StaticResource ReverseBooleanToVisibilityConverter}}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="DarkEditor" />
<coreControls:WinoFontIcon Icon="DarkEditor" />
</AppBarButton.Icon>
</AppBarButton>
<AppBarButton Command="{x:Bind ViewModel.DiscardCommand}" Label="{x:Bind domain:Translator.Buttons_Discard}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Delete" />
<coreControls:WinoFontIcon Icon="Delete" />
</AppBarButton.Icon>
</AppBarButton>
<AppBarButton Command="{x:Bind ViewModel.SendCommand}" Label="{x:Bind domain:Translator.Buttons_Send}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Send" />
<coreControls:WinoFontIcon Icon="Send" />
</AppBarButton.Icon>
</AppBarButton>
</toolkit:TabbedCommandBarItem>

View File

@@ -25,7 +25,7 @@ using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media.Animation;
using Windows.UI.Xaml.Navigation;
using Wino.Core.Domain;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.Reader;
using Wino.Extensions;

View File

@@ -1,12 +1,12 @@
<abstract:IdlePageAbstract
xmlns:abstract="using:Wino.Views.Abstract"
x:Class="Wino.Views.IdlePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:helpers="using:Wino.Helpers"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:abstract="using:Wino.Views.Abstract"
xmlns:controls="using:Wino.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:helpers="using:Wino.Helpers"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<!-- Empty page for disposing composer or renderer page. -->

View File

@@ -5,7 +5,7 @@ using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using Wino.Core.Domain;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Models.Accounts;
using Wino.Core.Domain.Models.AutoDiscovery;
using Wino.Messaging.Client.Mails;

View File

@@ -2,9 +2,9 @@
x:Class="Wino.Views.ImapSetup.ImapConnectionFailedPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Wino.Views.ImapSetup"
xmlns:domain="using:Wino.Core.Domain"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:local="using:Wino.Views.ImapSetup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
@@ -16,7 +16,7 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Text="{x:Bind domain:Translator.IMAPSetupDialog_ConnectionFailedTitle}" Style="{StaticResource SubtitleTextBlockStyle}" />
<TextBlock Style="{StaticResource SubtitleTextBlockStyle}" Text="{x:Bind domain:Translator.IMAPSetupDialog_ConnectionFailedTitle}" />
<TextBlock
x:Name="ConnectionFailedMessage"
@@ -36,14 +36,14 @@
<TextBlock
x:Name="ProtocolLogHeader"
Foreground="{ThemeResource InfoBarWarningSeverityIconBackground}"
VerticalAlignment="Center"
Foreground="{ThemeResource InfoBarWarningSeverityIconBackground}"
Text="{x:Bind domain:Translator.ProtocolLogAvailable_Message}" />
<Button
Content="{x:Bind domain:Translator.Buttons_Copy}"
Grid.Column="1"
Click="CopyProtocolLogButtonClicked"
Grid.Column="1" />
Content="{x:Bind domain:Translator.Buttons_Copy}" />
</Grid>
<!-- Dismis / GoBack -->
@@ -57,16 +57,16 @@
</Grid.ColumnDefinitions>
<Button
Content="{x:Bind domain:Translator.Buttons_Close}"
HorizontalAlignment="Stretch"
Click="CloseClicked"
HorizontalAlignment="Stretch" />
Content="{x:Bind domain:Translator.Buttons_Close}" />
<Button
Content="{x:Bind domain:Translator.Buttons_TryAgain}"
Click="TryAgainClicked"
Style="{ThemeResource AccentButtonStyle}"
Grid.Column="1"
HorizontalAlignment="Stretch" />
HorizontalAlignment="Stretch"
Click="TryAgainClicked"
Content="{x:Bind domain:Translator.Buttons_TryAgain}"
Style="{ThemeResource AccentButtonStyle}" />
</Grid>
</Grid>
</Page>

View File

@@ -15,7 +15,7 @@ namespace Wino.Views.ImapSetup
private string _protocolLog;
private readonly IClipboardService _clipboardService = App.Current.Services.GetService<IClipboardService>();
private readonly IDialogService _dialogService = App.Current.Services.GetService<IDialogService>();
private readonly IMailDialogService _dialogService = App.Current.Services.GetService<IMailDialogService>();
public ImapConnectionFailedPage()
{

View File

@@ -2,30 +2,30 @@
x:Class="Wino.Views.ImapSetup.PreparingImapFoldersPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Wino.Views.ImapSetup"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:domain="using:Wino.Core.Domain"
xmlns:local="using:Wino.Views.ImapSetup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d">
<Grid>
<!-- Preparing Folders Panel -->
<StackPanel
x:Name="PreparingFoldersPanel"
VerticalAlignment="Center"
HorizontalAlignment="Center">
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Viewbox
VerticalAlignment="Center"
HorizontalAlignment="Center"
Width="26"
Height="26">
Height="26"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<PathIcon Data="M1024,317.5L1024,507C1014.67,495.333 1004.67,484.167 994,473.5C983.333,462.833 972,453 960,444L960,320C960,311.333 958.333,303.083 955,295.25C951.667,287.417 947.083,280.583 941.25,274.75C935.417,268.917 928.583,264.333 920.75,261C912.917,257.667 904.667,256 896,256L522,256L458,298.5C436,312.833 412.333,320 387,320L64,320L64,832C64,841 65.6667,849.417 69,857.25C72.3333,865.083 76.8333,871.833 82.5,877.5C88.1667,883.167 94.9167,887.667 102.75,891C110.583,894.333 119,896 128,896L404.5,896C410.167,907.333 416.25,918.333 422.75,929C429.25,939.667 436.333,950 444,960L125.5,960C108.833,960 92.9167,956.583 77.75,949.75C62.5833,942.917 49.25,933.75 37.75,922.25C26.25,910.75 17.0833,897.417 10.25,882.25C3.41667,867.083 0,851.167 0,834.5L0,189.5C0,172.833 3.41667,156.917 10.25,141.75C17.0833,126.583 26.25,113.25 37.75,101.75C49.25,90.25 62.5833,81.0834 77.75,74.25C92.9167,67.4167 108.833,64.0001 125.5,64L368,64C388,64.0001 407.167,68.5001 425.5,77.5C443.833,86.5001 458.833,99.0001 470.5,115L528,192L898.5,192C915.167,192 931.083,195.417 946.25,202.25C961.417,209.083 974.75,218.25 986.25,229.75C997.75,241.25 1006.92,254.583 1013.75,269.75C1020.58,284.917 1024,300.833 1024,317.5ZM466,216L419,153.5C413,145.5 405.5,139.25 396.5,134.75C387.5,130.25 378,128 368,128L128,128C119,128 110.667,129.667 103,133C95.3333,136.333 88.5833,140.917 82.75,146.75C76.9167,152.583 72.3333,159.333 69,167C65.6667,174.667 64,183 64,192L64,256L387,256C394.333,256 401.5,254.667 408.5,252C415.5,249.333 422.25,246 428.75,242C435.25,238 441.583,233.667 447.75,229C453.917,224.333 460,220 466,216ZM1024,736C1024,775.667 1016.42,813 1001.25,848C986.083,883 965.5,913.5 939.5,939.5C913.5,965.5 883,986.083 848,1001.25C813,1016.42 775.667,1024 736,1024C696,1024 658.5,1016.5 623.5,1001.5C588.5,986.5 558,966 532,940C506,914 485.5,883.5 470.5,848.5C455.5,813.5 448,776 448,736C448,696.333 455.583,659 470.75,624C485.917,589 506.5,558.5 532.5,532.5C558.5,506.5 589,485.917 624,470.75C659,455.583 696.333,448 736,448C762.333,448 787.75,451.417 812.25,458.25C836.75,465.083 859.667,474.75 881,487.25C902.333,499.75 921.833,514.833 939.5,532.5C957.167,550.167 972.25,569.667 984.75,591C997.25,612.333 1006.92,635.25 1013.75,659.75C1020.58,684.25 1024,709.667 1024,736ZM896,576C896,567.333 892.833,559.833 886.5,553.5C880.167,547.167 872.667,544 864,544C857.667,544 852.5,545.167 848.5,547.5C844.5,549.833 841.25,552.917 838.75,556.75C836.25,560.583 834.5,565 833.5,570C832.5,575 832,580.167 832,585.5C816.333,577.167 800.917,570.833 785.75,566.5C770.583,562.167 754,560 736,560C724,560 711.75,561.25 699.25,563.75C686.75,566.25 674.5,569.917 662.5,574.75C650.5,579.583 639.083,585.417 628.25,592.25C617.417,599.083 608,607 600,616C597,619.333 594.667,622.75 593,626.25C591.333,629.75 590.5,633.833 590.5,638.5C590.5,647.5 593.667,655.167 600,661.5C606.333,667.833 614,671 623,671C628.667,671 634.75,668.583 641.25,663.75C647.75,658.917 655.333,653.5 664,647.5C672.667,641.5 682.75,636.083 694.25,631.25C705.75,626.417 719.333,624 735,624C746.667,624 757.5,625.25 767.5,627.75C777.5,630.25 787.667,634.333 798,640L785,640C779,640 773.083,640.25 767.25,640.75C761.417,641.25 756.167,642.583 751.5,644.75C746.833,646.917 743.083,650.167 740.25,654.5C737.417,658.833 736,664.667 736,672C736,680.667 739.167,688.167 745.5,694.5C751.833,700.833 759.333,704 768,704L864,704C872.667,704 880.167,700.833 886.5,694.5C892.833,688.167 896,680.667 896,672ZM881.5,833C881.5,824.333 878.333,816.833 872,810.5C865.667,804.167 858.167,801 849.5,801C842.833,801 836.333,803.417 830,808.25C823.667,813.083 816.333,818.5 808,824.5C799.667,830.5 789.833,835.917 778.5,840.75C767.167,845.583 753.333,848 737,848C725.333,848 714.5,846.75 704.5,844.25C694.5,841.75 684.333,837.667 674,832L687,832C692.667,832 698.417,831.75 704.25,831.25C710.083,830.75 715.333,829.417 720,827.25C724.667,825.083 728.5,821.833 731.5,817.5C734.5,813.167 736,807.333 736,800C736,791.333 732.833,783.833 726.5,777.5C720.167,771.167 712.667,768 704,768L608,768C599.333,768 591.833,771.167 585.5,777.5C579.167,783.833 576,791.333 576,800L576,896C576,904.667 579.167,912.167 585.5,918.5C591.833,924.833 599.333,928 608,928C614.333,928 619.5,926.833 623.5,924.5C627.5,922.167 630.75,919.083 633.25,915.25C635.75,911.417 637.5,907 638.5,902C639.5,897 640,891.833 640,886.5C655.667,894.833 671.083,901.167 686.25,905.5C701.417,909.833 718,912 736,912C748,912 760.333,910.75 773,908.25C785.667,905.75 797.917,902.083 809.75,897.25C821.583,892.417 832.833,886.583 843.5,879.75C854.167,872.917 863.667,865 872,856C878.333,849.333 881.5,841.667 881.5,833Z" />
</Viewbox>
<TextBlock Text="{x:Bind domain:Translator.PreparingFoldersMessage}" />
<muxc:ProgressBar IsIndeterminate="True" Margin="0,4,0,0" />
<muxc:ProgressBar Margin="0,4,0,0" IsIndeterminate="True" />
</StackPanel>
</Grid>
</Page>

View File

@@ -3,6 +3,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Wino.Controls"
xmlns:controls1="using:Wino.Core.UWP.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:local="using:Wino.Views.ImapSetup"
@@ -44,7 +45,7 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<controls:WinoFontIcon FontSize="46" Icon="Certificate" />
<controls1:WinoFontIcon FontSize="46" Icon="Certificate" />
<TextBlock
Grid.Row="1"

View File

@@ -5,7 +5,7 @@ using Microsoft.Extensions.DependencyInjection;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using Wino.Core.Domain;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Exceptions;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.AutoDiscovery;

File diff suppressed because one or more lines are too long

View File

@@ -6,7 +6,7 @@ using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using Wino.Core.Domain;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Exceptions;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.AutoDiscovery;

View File

@@ -6,6 +6,7 @@
xmlns:collections="using:CommunityToolkit.Mvvm.Collections"
xmlns:controls="using:Wino.Controls"
xmlns:converters="using:Wino.Converters"
xmlns:coreControls="using:Wino.Core.UWP.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:enums="using:Wino.Core.Domain.Enums"
@@ -22,7 +23,7 @@
xmlns:toolkit="using:CommunityToolkit.WinUI.Controls"
xmlns:toolkitExt="using:CommunityToolkit.WinUI"
xmlns:viewModelData="using:Wino.Mail.ViewModels.Data"
xmlns:wino="using:Wino"
xmlns:wino="using:Wino.Core.UWP"
x:Name="root"
SizeChanged="PageSizeChanged"
mc:Ignorable="d">
@@ -75,7 +76,7 @@
Invoked="LeftSwipeItemInvoked"
Text="{x:Bind domain:Translator.MailOperation_Delete}">
<muxc:SwipeItem.IconSource>
<controls:WinoFontIconSource Icon="Delete" />
<coreControls:WinoFontIconSource Icon="Delete" />
</muxc:SwipeItem.IconSource>
<muxc:SwipeItem.Background>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
@@ -95,7 +96,7 @@
Invoked="RightSwipeItemInvoked"
Text="{x:Bind domain:Translator.MarkReadUnread}">
<muxc:SwipeItem.IconSource>
<controls:WinoFontIconSource Icon="MarkRead" />
<coreControls:WinoFontIconSource Icon="MarkRead" />
</muxc:SwipeItem.IconSource>
</muxc:SwipeItem>
</muxc:SwipeItems>-->
@@ -328,7 +329,7 @@
Command="{x:Bind ViewModel.SyncFolderCommand}"
IsEnabled="{x:Bind ViewModel.CanSynchronize, Mode=OneWay}"
ToolTipService.ToolTip="{x:Bind domain:Translator.Buttons_Sync}">
<controls:WinoFontIcon FontSize="14" Icon="Sync" />
<coreControls:WinoFontIcon FontSize="14" Icon="Sync" />
</Button>
<ToggleButton
x:Name="SelectionModeToggle"
@@ -340,7 +341,7 @@
IsChecked="{x:Bind ViewModel.IsMultiSelectionModeEnabled, Mode=TwoWay}"
ToolTipService.ToolTip="{x:Bind domain:Translator.Buttons_Multiselect}"
Unchecked="SelectionModeToggleUnchecked">
<controls:WinoFontIcon FontSize="16" Icon="MultiSelect" />
<coreControls:WinoFontIcon FontSize="16" Icon="MultiSelect" />
</ToggleButton>
<muxc:DropDownButton
Height="36"
@@ -491,7 +492,7 @@
<!-- Update Info Bar -->
<controls:WinoInfoBar
<coreControls:WinoInfoBar
Title="{x:Bind ViewModel.BarTitle, Mode=OneWay}"
Grid.Row="2"
Margin="0,0,0,5"
@@ -532,7 +533,7 @@
Opacity="0.5"
Spacing="6">
<controls:WinoFontIcon FontSize="80" Icon="Mail" />
<coreControls:WinoFontIcon FontSize="80" Icon="Mail" />
<TextBlock
HorizontalAlignment="Center"

View File

@@ -226,7 +226,7 @@ namespace Wino.Views
else
composerPageTransition = NavigationTransitionType.DrillIn;
ViewModel.NavigationService.NavigateCompose(message.SelectedMailItemViewModel, composerPageTransition);
ViewModel.NavigationService.Navigate(WinoPage.ComposePage, message.SelectedMailItemViewModel, NavigationReferenceFrame.RenderingFrame, composerPageTransition);
}
else
{
@@ -239,7 +239,7 @@ namespace Wino.Views
PrepareComposePageWebViewTransition();
}
ViewModel.NavigationService.NavigateRendering(message.SelectedMailItemViewModel);
ViewModel.NavigationService.Navigate(WinoPage.MailRenderingPage, message.SelectedMailItemViewModel, NavigationReferenceFrame.RenderingFrame);
}
}

View File

@@ -6,7 +6,7 @@
xmlns:controls="using:Wino.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:entities="using:Wino.Core.Domain.Entities"
xmlns:entities="using:Wino.Core.Domain.Entities.Shared"
xmlns:helpers="using:Wino.Helpers"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:local="using:Wino.Behaviors"

View File

@@ -25,7 +25,7 @@ namespace Wino.Views
IRecipient<ApplicationThemeChanged>
{
private readonly IPreferencesService _preferencesService = App.Current.Services.GetService<IPreferencesService>();
private readonly IDialogService _dialogService = App.Current.Services.GetService<IDialogService>();
private readonly IMailDialogService _dialogService = App.Current.Services.GetService<IMailDialogService>();
private bool isRenderingInProgress = false;
private TaskCompletionSource<bool> DOMLoadedTask = new TaskCompletionSource<bool>();

View File

@@ -6,12 +6,15 @@
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
xmlns:controls1="using:Wino.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:data="using:Wino.Core.ViewModels.Data"
xmlns:domain="using:Wino.Core.Domain"
xmlns:enums="using:Wino.Core.Domain.Enums"
xmlns:helpers="using:Wino.Helpers"
xmlns:mailSelectors="using:Wino.Selectors"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:personalization="using:Wino.Core.UWP.Models.Personalization"
xmlns:selectors="using:Wino.Selectors"
xmlns:coreSelectors="using:Wino.Core.UWP.Selectors"
xmlns:toolkitExt="using:CommunityToolkit.WinUI"
xmlns:viewModelData="using:Wino.Mail.ViewModels.Data"
x:Name="root"
@@ -133,7 +136,7 @@
</Grid>
</DataTemplate>
<selectors:AppThemePreviewTemplateSelector
<coreSelectors:AppThemePreviewTemplateSelector
x:Key="AppThemePreviewTemplateSelector"
CustomAppTemplate="{StaticResource CustomAppThemeTemplate}"
PreDefinedThemeTemplate="{StaticResource PreDefinedAppThemeTemplate}"
@@ -160,7 +163,7 @@
ShowPreviewText="True" />
</DataTemplate>
<selectors:MailItemDisplayModePreviewTemplateSelector
<mailSelectors:MailItemDisplayModePreviewTemplateSelector
x:Key="MailItemDisplayModePreviewTemplateSelector"
CompactTemplate="{StaticResource CompactDisplayModePreviewTemplate}"
MediumTemplate="{StaticResource MediumDisplayModePreviewTemplate}"
@@ -191,7 +194,7 @@
<StackPanel>
<GridView ItemsSource="{x:Bind ViewModel.Colors}" SelectedItem="{x:Bind ViewModel.SelectedAppColor, Mode=TwoWay}">
<GridView.ItemTemplate>
<DataTemplate x:DataType="viewModelData:AppColorViewModel">
<DataTemplate x:DataType="data:AppColorViewModel">
<Grid
Width="45"
Height="45"

File diff suppressed because one or more lines are too long

View File

@@ -1,25 +1,27 @@
<abstract:AppPreferencesPageAbstract x:Class="Wino.Views.Settings.AppPreferencesPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:abstract="using:Wino.Views.Abstract"
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<abstract:AppPreferencesPageAbstract
x:Class="Wino.Views.Settings.AppPreferencesPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:abstract="using:Wino.Views.Abstract"
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<ScrollViewer>
<StackPanel>
<controls:SettingsCard Header="{x:Bind domain:Translator.SettingsAppPreferences_StartupBehavior_Title}" Description="{x:Bind domain:Translator.SettingsAppPreferences_StartupBehavior_Description}">
<ToggleButton Command="{x:Bind ViewModel.ToggleStartupBehaviorCommand}"
x:Name="StartupEnabledToggleButton"
IsChecked="{x:Bind ViewModel.IsStartupBehaviorEnabled, Mode=OneWay}"
Content="{x:Bind domain:Translator.SettingsAppPreferences_StartupBehavior_Disable}" />
<controls:SettingsCard Description="{x:Bind domain:Translator.SettingsAppPreferences_StartupBehavior_Description}" Header="{x:Bind domain:Translator.SettingsAppPreferences_StartupBehavior_Title}">
<ToggleButton
x:Name="StartupEnabledToggleButton"
Command="{x:Bind ViewModel.ToggleStartupBehaviorCommand}"
Content="{x:Bind domain:Translator.SettingsAppPreferences_StartupBehavior_Disable}"
IsChecked="{x:Bind ViewModel.IsStartupBehaviorEnabled, Mode=OneWay}" />
<controls:SettingsCard.HeaderIcon>
<PathIcon Data="F1 M 9.375 8.125 L 9.375 0.625 C 9.375 0.45573 9.436849 0.309246 9.560547 0.185547 C 9.684244 0.06185 9.830729 0 10 0 C 10.169271 0 10.315755 0.06185 10.439453 0.185547 C 10.56315 0.309246 10.625 0.45573 10.625 0.625 L 10.625 8.125 C 10.625 8.294271 10.56315 8.440756 10.439453 8.564453 C 10.315755 8.688151 10.169271 8.75 10 8.75 C 9.830729 8.75 9.684244 8.688151 9.560547 8.564453 C 9.436849 8.440756 9.375 8.294271 9.375 8.125 Z M 0.625 10.625 C 0.625 9.811198 0.732422 9.008789 0.947266 8.217773 C 1.162109 7.426758 1.469727 6.678061 1.870117 5.97168 C 2.270508 5.265301 2.755534 4.617514 3.325195 4.02832 C 3.894857 3.439129 4.534505 2.942709 5.244141 2.539062 C 5.341797 2.480469 5.449219 2.451172 5.566406 2.451172 C 5.735677 2.451172 5.882161 2.513021 6.005859 2.636719 C 6.129557 2.760418 6.191406 2.906902 6.191406 3.076172 C 6.191406 3.206381 6.163737 3.310547 6.108398 3.388672 C 6.05306 3.466797 5.976562 3.541668 5.878906 3.613281 C 5.651042 3.769531 5.42806 3.920898 5.209961 4.067383 C 4.991862 4.213867 4.778646 4.381511 4.570312 4.570312 C 4.153646 4.947917 3.779297 5.367839 3.447266 5.830078 C 3.115234 6.292318 2.832031 6.7806 2.597656 7.294922 C 2.363281 7.809245 2.184245 8.3431 2.060547 8.896484 C 1.936849 9.44987 1.875 10.009766 1.875 10.576172 C 1.875 11.331381 1.971029 12.055664 2.163086 12.749023 C 2.355143 13.442383 2.625325 14.091797 2.973633 14.697266 C 3.32194 15.302734 3.74349 15.854492 4.238281 16.352539 C 4.733073 16.850586 5.281575 17.277018 5.883789 17.631836 C 6.486002 17.986654 7.133789 18.261719 7.827148 18.457031 C 8.520508 18.652344 9.244791 18.75 10 18.75 C 10.755208 18.75 11.479492 18.652344 12.172852 18.457031 C 12.86621 18.261719 13.513996 17.986654 14.116211 17.631836 C 14.718424 17.277018 15.266927 16.850586 15.761719 16.352539 C 16.25651 15.854492 16.678059 15.302734 17.026367 14.697266 C 17.374674 14.091797 17.644855 13.440756 17.836914 12.744141 C 18.028971 12.047526 18.125 11.32487 18.125 10.576172 C 18.125 10.009766 18.06315 9.44987 17.939453 8.896484 C 17.815754 8.3431 17.636719 7.809245 17.402344 7.294922 C 17.167969 6.7806 16.884766 6.292318 16.552734 5.830078 C 16.220703 5.367839 15.846354 4.947917 15.429688 4.570312 C 15.221354 4.381511 15.008137 4.213867 14.790039 4.067383 C 14.571939 3.920898 14.348958 3.769531 14.121094 3.613281 C 14.023437 3.541668 13.946939 3.466797 13.891602 3.388672 C 13.836263 3.310547 13.808594 3.206381 13.808594 3.076172 C 13.808594 2.906902 13.870442 2.760418 13.994141 2.636719 C 14.117838 2.513021 14.264322 2.451172 14.433594 2.451172 C 14.550781 2.451172 14.658203 2.480469 14.755859 2.539062 C 15.465494 2.942709 16.105143 3.439129 16.674805 4.02832 C 17.244465 4.617514 17.729492 5.265301 18.129883 5.97168 C 18.530273 6.678061 18.837891 7.426758 19.052734 8.217773 C 19.267578 9.008789 19.375 9.811198 19.375 10.625 C 19.375 11.484375 19.262695 12.312826 19.038086 13.110352 C 18.813477 13.907878 18.497721 14.654948 18.09082 15.351562 C 17.683918 16.048178 17.195637 16.681316 16.625977 17.250977 C 16.056314 17.820639 15.423177 18.30892 14.726562 18.71582 C 14.029947 19.122721 13.282877 19.438477 12.485352 19.663086 C 11.687825 19.887695 10.859375 20 10 20 C 9.134114 20 8.302408 19.887695 7.504883 19.663086 C 6.707356 19.438477 5.961914 19.122721 5.268555 18.71582 C 4.575195 18.30892 3.943685 17.820639 3.374023 17.250977 C 2.804362 16.681316 2.316081 16.049805 1.90918 15.356445 C 1.502279 14.663086 1.186523 13.916016 0.961914 13.115234 C 0.737305 12.314453 0.625 11.484375 0.625 10.625 Z " />
</controls:SettingsCard.HeaderIcon>
</controls:SettingsCard>
<controls:SettingsCard Header="{x:Bind domain:Translator.SettingsAppPreferences_CloseBehavior_Title}" Description="{x:Bind domain:Translator.SettingsAppPreferences_CloseBehavior_Description}">
<controls:SettingsCard Description="{x:Bind domain:Translator.SettingsAppPreferences_CloseBehavior_Description}" Header="{x:Bind domain:Translator.SettingsAppPreferences_CloseBehavior_Title}">
<ComboBox ItemsSource="{x:Bind ViewModel.AppTerminationBehavior, Mode=OneWay}" SelectedItem="{x:Bind ViewModel.SelectedAppTerminationBehavior, Mode=TwoWay}" />
<controls:SettingsCard.HeaderIcon>
<PathIcon Data="F1 M 1.591797 15.244141 C 1.591797 15.055339 1.635742 14.912109 1.723633 14.814453 C 1.811523 14.716797 1.930339 14.625651 2.080078 14.541016 C 2.26237 14.443359 2.457682 14.363607 2.666016 14.301758 C 2.874349 14.239909 3.072917 14.169922 3.261719 14.091797 C 3.834635 13.863933 4.394531 13.606771 4.941406 13.320312 C 5.488281 13.033854 6.005859 12.705078 6.494141 12.333984 C 7.106119 11.871745 7.643229 11.352539 8.105469 10.776367 C 8.567708 10.200195 8.95345 9.584961 9.262695 8.930664 C 9.571939 8.276367 9.804688 7.587891 9.960938 6.865234 C 10.117188 6.142578 10.195312 5.400391 10.195312 4.638672 C 10.195312 4.007162 10.144856 3.390301 10.043945 2.788086 C 9.943033 2.185873 9.830729 1.578777 9.707031 0.966797 C 9.700521 0.934246 9.695638 0.904949 9.692383 0.878906 C 9.689127 0.852865 9.6875 0.823568 9.6875 0.791016 C 9.6875 0.582684 9.759114 0.406902 9.902344 0.263672 C 10.045572 0.120443 10.221354 0.048828 10.429688 0.048828 C 10.800781 0.048828 11.183268 0.083008 11.577148 0.151367 C 11.971028 0.219727 12.361653 0.314129 12.749023 0.43457 C 13.136393 0.555014 13.515624 0.694988 13.886719 0.854492 C 14.257812 1.013998 14.602863 1.184896 14.921875 1.367188 C 15.690104 1.809896 16.383463 2.342123 17.001953 2.963867 C 17.620441 3.585613 18.144531 4.270834 18.574219 5.019531 C 19.003906 5.76823 19.334309 6.567384 19.56543 7.416992 C 19.796549 8.266602 19.912109 9.134115 19.912109 10.019531 C 19.912109 10.9375 19.793293 11.821289 19.555664 12.670898 C 19.318033 13.520508 18.981119 14.314779 18.544922 15.053711 C 18.108723 15.792644 17.587891 16.464844 16.982422 17.070312 C 16.376953 17.675781 15.703125 18.194986 14.960938 18.62793 C 14.21875 19.060873 13.422852 19.396158 12.573242 19.633789 C 11.723633 19.87142 10.839844 19.990234 9.921875 19.990234 C 9.140625 19.990234 8.352864 19.890951 7.558594 19.692383 C 6.764323 19.493814 6.005859 19.208984 5.283203 18.837891 C 4.560547 18.466797 3.891602 18.014322 3.276367 17.480469 C 2.661133 16.946615 2.141927 16.3444 1.71875 15.673828 C 1.634115 15.54362 1.591797 15.400391 1.591797 15.244141 Z M 9.921875 18.730469 C 10.722656 18.730469 11.495768 18.626303 12.241211 18.417969 C 12.986652 18.209635 13.683268 17.918295 14.331055 17.543945 C 14.978841 17.169598 15.568033 16.717123 16.098633 16.186523 C 16.62923 15.655925 17.084961 15.068359 17.46582 14.423828 C 17.84668 13.779297 18.141275 13.084311 18.349609 12.338867 C 18.557941 11.593425 18.662109 10.820312 18.662109 10.019531 C 18.662109 9.290365 18.575846 8.583984 18.40332 7.900391 C 18.230793 7.216798 17.983398 6.569012 17.661133 5.957031 C 17.338867 5.345053 16.951496 4.778646 16.499023 4.257812 C 16.046549 3.73698 15.538736 3.276367 14.975586 2.875977 C 14.412435 2.475586 13.802083 2.145184 13.144531 1.884766 C 12.486979 1.62435 11.796874 1.448568 11.074219 1.357422 C 11.184896 1.897787 11.274414 2.439779 11.342773 2.983398 C 11.411133 3.52702 11.445312 4.075521 11.445312 4.628906 C 11.445312 5.579428 11.336263 6.500652 11.118164 7.392578 C 10.900064 8.284506 10.569661 9.150391 10.126953 9.990234 C 9.749349 10.706381 9.309896 11.342773 8.808594 11.899414 C 8.307291 12.456055 7.758789 12.954102 7.163086 13.393555 C 6.567382 13.833008 5.929361 14.222006 5.249023 14.560547 C 4.568685 14.899089 3.863932 15.208334 3.134766 15.488281 C 3.544922 16.002604 4.005534 16.461588 4.516602 16.865234 C 5.027669 17.268881 5.574544 17.609049 6.157227 17.885742 C 6.739908 18.162436 7.348632 18.372396 7.983398 18.515625 C 8.618164 18.658854 9.264322 18.730469 9.921875 18.730469 Z " />

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +0,0 @@
using Wino.Views.Abstract;
namespace Wino.Views.Settings
{
public sealed partial class SettingOptionsPage : SettingOptionsPageAbstract
{
public SettingOptionsPage()
{
InitializeComponent();
}
}
}

View File

@@ -7,7 +7,7 @@
xmlns:controls1="using:CommunityToolkit.WinUI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:entities="using:Wino.Core.Domain.Entities"
xmlns:entities="using:Wino.Core.Domain.Entities.Mail"
xmlns:helpers="using:Wino.Helpers"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"

View File

@@ -1,49 +0,0 @@
<abstract:SettingsPageAbstract
x:Class="Wino.Views.SettingsPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:abstract="using:Wino.Views.Abstract"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:helpers="using:Wino.Helpers"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModelData="using:Wino.Mail.ViewModels.Data"
xmlns:winuiControls="using:Microsoft.UI.Xaml.Controls"
Style="{StaticResource PageStyle}"
mc:Ignorable="d">
<Border Style="{StaticResource PageRootBorderStyle}">
<Grid
MaxWidth="900"
Padding="20"
HorizontalAlignment="Stretch"
RowSpacing="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<winuiControls:BreadcrumbBar
x:Name="Breadcrumb"
ItemClicked="BreadItemClicked"
ItemsSource="{x:Bind PageHistory, Mode=OneWay}">
<winuiControls:BreadcrumbBar.ItemTemplate>
<DataTemplate>
<winuiControls:BreadcrumbBarItem Margin="0,0,8,0">
<winuiControls:BreadcrumbBarItem.ContentTemplate>
<DataTemplate x:DataType="viewModelData:BreadcrumbNavigationItemViewModel">
<TextBlock
Margin="0,0,8,10"
FontWeight="{x:Bind helpers:XamlHelpers.GetFontWeightBySyncState(IsActive), Mode=OneWay}"
Style="{StaticResource TitleTextBlockStyle}"
Text="{Binding Title}" />
</DataTemplate>
</winuiControls:BreadcrumbBarItem.ContentTemplate>
</winuiControls:BreadcrumbBarItem>
</DataTemplate>
</winuiControls:BreadcrumbBar.ItemTemplate>
</winuiControls:BreadcrumbBar>
<Frame x:Name="SettingsFrame" Grid.Row="1" />
</Grid>
</Border>
</abstract:SettingsPageAbstract>

View File

@@ -1,96 +0,0 @@
using System;
using System.Collections.ObjectModel;
using System.Linq;
using CommunityToolkit.Mvvm.Messaging;
using MoreLinq;
using Windows.UI.Xaml.Media.Animation;
using Windows.UI.Xaml.Navigation;
using Wino.Core.Domain;
using Wino.Core.Domain.Enums;
using Wino.Mail.ViewModels.Data;
using Wino.Messaging.Client.Navigation;
using Wino.Views.Abstract;
using Wino.Views.Settings;
namespace Wino.Views
{
public sealed partial class SettingsPage : SettingsPageAbstract, IRecipient<BreadcrumbNavigationRequested>
{
public ObservableCollection<BreadcrumbNavigationItemViewModel> PageHistory { get; set; } = new ObservableCollection<BreadcrumbNavigationItemViewModel>();
public SettingsPage()
{
InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
SettingsFrame.Navigate(typeof(SettingOptionsPage), null, new SuppressNavigationTransitionInfo());
var initialRequest = new BreadcrumbNavigationRequested(Translator.MenuSettings, WinoPage.SettingOptionsPage);
PageHistory.Add(new BreadcrumbNavigationItemViewModel(initialRequest, true));
if (e.Parameter is WinoPage parameterPage)
{
switch (parameterPage)
{
case WinoPage.AppPreferencesPage:
WeakReferenceMessenger.Default.Send(new BreadcrumbNavigationRequested(Translator.SettingsAppPreferences_Title, WinoPage.AppPreferencesPage));
break;
}
}
}
public override void OnLanguageChanged()
{
base.OnLanguageChanged();
// Update Settings header in breadcrumb.
var settingsHeader = PageHistory.FirstOrDefault();
if (settingsHeader == null) return;
settingsHeader.Title = Translator.MenuSettings;
}
private Type GetNavigationPageType(WinoPage page) => page switch
{
WinoPage.AboutPage => typeof(AboutPage),
WinoPage.PersonalizationPage => typeof(PersonalizationPage),
WinoPage.MessageListPage => typeof(MessageListPage),
WinoPage.ReadComposePanePage => typeof(ReadComposePanePage),
WinoPage.LanguageTimePage => typeof(LanguageTimePage),
WinoPage.AppPreferencesPage => typeof(AppPreferencesPage),
_ => null,
};
void IRecipient<BreadcrumbNavigationRequested>.Receive(BreadcrumbNavigationRequested message)
{
var pageType = GetNavigationPageType(message.PageType);
if (pageType == null) return;
SettingsFrame.Navigate(pageType, message.Parameter, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight });
PageHistory.ForEach(a => a.IsActive = false);
PageHistory.Add(new BreadcrumbNavigationItemViewModel(message, true));
}
private void BreadItemClicked(Microsoft.UI.Xaml.Controls.BreadcrumbBar sender, Microsoft.UI.Xaml.Controls.BreadcrumbBarItemClickedEventArgs args)
{
var clickedPageHistory = PageHistory[args.Index];
var activeIndex = PageHistory.IndexOf(PageHistory.FirstOrDefault(a => a.IsActive));
while (PageHistory.FirstOrDefault(a => a.IsActive) != clickedPageHistory)
{
SettingsFrame.GoBack(new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight });
PageHistory.RemoveAt(PageHistory.Count - 1);
PageHistory[PageHistory.Count - 1].IsActive = true;
}
}
}
}