Merge main

This commit is contained in:
Aleh Khantsevich
2024-06-24 01:30:20 +02:00
10 changed files with 299 additions and 157 deletions

View File

@@ -21,7 +21,7 @@
<Identity
Name="58272BurakKSE.WinoMailPreview"
Publisher="CN=51FBDAF3-E212-4149-89A2-A2636B3BC911"
Version="1.7.3.0" />
Version="1.7.4.0" />
<mp:PhoneIdentity PhoneProductId="0f6f3c1b-6ffd-4212-9c91-a16e8d1fa437" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>

View File

@@ -379,25 +379,32 @@
</Page.Resources>
<wino:BasePage.ShellContent>
<AutoSuggestBox
x:Name="SearchBar"
VerticalAlignment="Center"
BorderBrush="Transparent"
GotFocus="SearchBoxFocused"
IsFocusEngagementEnabled="False"
IsTabStop="False"
LostFocus="SearchBarUnfocused"
PlaceholderText="{x:Bind domain:Translator.SearchBarPlaceholder}"
QueryIcon="Find"
TabIndex="1000"
Text="{x:Bind ViewModel.SearchQuery, Mode=TwoWay}"
TextChanged="SearchBar_TextChanged">
<i:Interaction.Behaviors>
<ic:EventTriggerBehavior EventName="QuerySubmitted">
<ic:InvokeCommandAction Command="{x:Bind ViewModel.PerformSearchCommand}" />
</ic:EventTriggerBehavior>
</i:Interaction.Behaviors>
</AutoSuggestBox>
<Grid>
<!-- Hidden focus receiver... -->
<TextBox
Grid.Column="1"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Opacity="0"
Visibility="Collapsed" />
<AutoSuggestBox
x:Name="SearchBar"
VerticalAlignment="Center"
BorderBrush="Transparent"
GotFocus="SearchBoxFocused"
LostFocus="SearchBarUnfocused"
PlaceholderText="{x:Bind domain:Translator.SearchBarPlaceholder}"
QueryIcon="Find"
Text="{x:Bind ViewModel.SearchQuery, Mode=TwoWay}"
TextChanged="SearchBar_TextChanged">
<i:Interaction.Behaviors>
<ic:EventTriggerBehavior EventName="QuerySubmitted">
<ic:InvokeCommandAction Command="{x:Bind ViewModel.PerformSearchCommand}" />
</ic:EventTriggerBehavior>
</i:Interaction.Behaviors>
</AutoSuggestBox>
</Grid>
</wino:BasePage.ShellContent>
<Grid x:Name="RootGrid">
@@ -439,147 +446,160 @@
<!-- Top Commands -->
<Grid
Grid.Row="0"
Padding="4"
Padding="2,0"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
CornerRadius="8">
<Grid.RowDefinitions>
<RowDefinition Height="48" />
<RowDefinition Height="2" />
</Grid.RowDefinitions>
<!-- Commands -->
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
Command="{x:Bind ViewModel.SyncFolderCommand}"
IsEnabled="{x:Bind ViewModel.CanSynchronize, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}">
<Button.Content>
<controls:WinoFontIcon FontSize="16" Icon="Sync" />
</Button.Content>
</Button>
<Button
Command="{x:Bind ViewModel.SyncFolderCommand}"
IsEnabled="{x:Bind ViewModel.CanSynchronize, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}">
<Button.Content>
<controls:WinoFontIcon FontSize="16" Icon="Sync" />
</Button.Content>
</Button>
<ToggleButton
x:Name="SelectionModeToggle"
Grid.Column="1"
Checked="SelectionModeToggleChecked"
Style="{StaticResource TopCommandBarToggleButtonStyle}"
Unchecked="SelectionModeToggleUnchecked">
<ToggleButton.Content>
<controls:WinoFontIcon FontSize="18" Icon="MultiSelect" />
</ToggleButton.Content>
</ToggleButton>
<ToggleButton
x:Name="SelectionModeToggle"
Grid.Column="1"
Checked="SelectionModeToggleChecked"
Style="{StaticResource TopCommandBarToggleButtonStyle}"
Unchecked="SelectionModeToggleUnchecked">
<ToggleButton.Content>
<controls:WinoFontIcon FontSize="18" Icon="MultiSelect" />
</ToggleButton.Content>
</ToggleButton>
<AppBarSeparator Grid.Column="2" Margin="2,0" />
<AppBarSeparator Grid.Column="2" Margin="2,0" />
<Button
x:Name="ArchiveAppBarButton"
Grid.Column="3"
x:Load="{x:Bind helpers:XamlHelpers.ReverseBoolConverter(ViewModel.IsArchiveSpecialFolder), Mode=OneWay}"
Command="{x:Bind ViewModel.MailOperationCommand}"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}"
ToolTipService.ToolTip="{x:Bind domain:Translator.MailOperation_Archive}">
<Button.Content>
<controls:WinoFontIcon FontSize="18" Icon="Archive" />
</Button.Content>
<Button.CommandParameter>
<enums:MailOperation>Archive</enums:MailOperation>
</Button.CommandParameter>
</Button>
<Button
x:Name="ArchiveAppBarButton"
Grid.Column="3"
x:Load="{x:Bind helpers:XamlHelpers.ReverseBoolConverter(ViewModel.IsArchiveSpecialFolder), Mode=OneWay}"
Command="{x:Bind ViewModel.MailOperationCommand}"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}"
ToolTipService.ToolTip="{x:Bind domain:Translator.MailOperation_Archive}">
<Button.Content>
<controls:WinoFontIcon FontSize="18" Icon="Archive" />
</Button.Content>
<Button.CommandParameter>
<enums:MailOperation>Archive</enums:MailOperation>
</Button.CommandParameter>
</Button>
<Button
x:Name="UnarchiveAppBarButton"
Grid.Column="3"
x:Load="{x:Bind ViewModel.IsArchiveSpecialFolder, Mode=OneWay}"
Command="{x:Bind ViewModel.MailOperationCommand}"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}"
ToolTipService.ToolTip="{x:Bind domain:Translator.MailOperation_Unarchive}">
<Button.Content>
<controls:WinoFontIcon FontSize="18" Icon="UnArchive" />
</Button.Content>
<Button.CommandParameter>
<enums:MailOperation>UnArchive</enums:MailOperation>
</Button.CommandParameter>
</Button>
<Button
x:Name="UnarchiveAppBarButton"
Grid.Column="3"
x:Load="{x:Bind ViewModel.IsArchiveSpecialFolder, Mode=OneWay}"
Command="{x:Bind ViewModel.MailOperationCommand}"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}"
ToolTipService.ToolTip="{x:Bind domain:Translator.MailOperation_Unarchive}">
<Button.Content>
<controls:WinoFontIcon FontSize="18" Icon="UnArchive" />
</Button.Content>
<Button.CommandParameter>
<enums:MailOperation>UnArchive</enums:MailOperation>
</Button.CommandParameter>
</Button>
<Button
Grid.Column="4"
Command="{x:Bind ViewModel.MailOperationCommand}"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}"
ToolTipService.ToolTip="{x:Bind domain:Translator.MailOperation_Delete}">
<Button.CommandParameter>
<enums:MailOperation>SoftDelete</enums:MailOperation>
</Button.CommandParameter>
<Button.Content>
<controls:WinoFontIcon FontSize="18" Icon="Delete" />
</Button.Content>
</Button>
<Button
Grid.Column="4"
Command="{x:Bind ViewModel.MailOperationCommand}"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}"
ToolTipService.ToolTip="{x:Bind domain:Translator.MailOperation_Delete}">
<Button.CommandParameter>
<enums:MailOperation>SoftDelete</enums:MailOperation>
</Button.CommandParameter>
<Button.Content>
<controls:WinoFontIcon FontSize="18" Icon="Delete" />
</Button.Content>
</Button>
<Button
x:Name="MoveButtonAppBarButton"
Grid.Column="5"
Command="{x:Bind ViewModel.MailOperationCommand}"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}"
ToolTipService.ToolTip="{x:Bind domain:Translator.MailOperation_Move}">
<Button.CommandParameter>
<enums:MailOperation>Move</enums:MailOperation>
</Button.CommandParameter>
<Button.Content>
<controls:WinoFontIcon FontSize="18" Icon="Move" />
</Button.Content>
</Button>
<Button
x:Name="MoveButtonAppBarButton"
Grid.Column="5"
Command="{x:Bind ViewModel.MailOperationCommand}"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}"
ToolTipService.ToolTip="{x:Bind domain:Translator.MailOperation_Move}">
<Button.CommandParameter>
<enums:MailOperation>Move</enums:MailOperation>
</Button.CommandParameter>
<Button.Content>
<controls:WinoFontIcon FontSize="18" Icon="Move" />
</Button.Content>
</Button>
<Button
Grid.Column="6"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}">
<Button.Content>
<controls:WinoFontIcon FontSize="20" Icon="More" />
</Button.Content>
<Button.Flyout>
<MenuFlyout AreOpenCloseAnimationsEnabled="False" Placement="BottomEdgeAlignedLeft">
<MenuFlyoutItem Command="{x:Bind ViewModel.MailOperationCommand}" Text="{x:Bind domain:Translator.MailOperation_SetFlag}">
<MenuFlyoutItem.CommandParameter>
<enums:MailOperation>SetFlag</enums:MailOperation>
</MenuFlyoutItem.CommandParameter>
<MenuFlyoutItem.Icon>
<controls:WinoFontIcon Icon="Flag" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem Command="{x:Bind ViewModel.MailOperationCommand}" Text="{x:Bind domain:Translator.MailOperation_ClearFlag}">
<MenuFlyoutItem.CommandParameter>
<enums:MailOperation>ClearFlag</enums:MailOperation>
</MenuFlyoutItem.CommandParameter>
<MenuFlyoutItem.Icon>
<controls:WinoFontIcon Icon="ClearFlag" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem Command="{x:Bind ViewModel.MailOperationCommand}" Text="{x:Bind domain:Translator.MailOperation_MarkAsRead}">
<MenuFlyoutItem.CommandParameter>
<enums:MailOperation>MarkAsRead</enums:MailOperation>
</MenuFlyoutItem.CommandParameter>
<MenuFlyoutItem.Icon>
<controls:WinoFontIcon Icon="MarkRead" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem Command="{x:Bind ViewModel.MailOperationCommand}" Text="{x:Bind domain:Translator.MailOperation_MarkAsUnread}">
<MenuFlyoutItem.CommandParameter>
<enums:MailOperation>MarkAsUnread</enums:MailOperation>
</MenuFlyoutItem.CommandParameter>
<MenuFlyoutItem.Icon>
<controls:WinoFontIcon Icon="MarkUnread" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
</MenuFlyout>
</Button.Flyout>
</Button>
<Button
Grid.Column="6"
IsEnabled="{x:Bind ViewModel.HasSelectedItems, Mode=OneWay}"
Style="{StaticResource TopCommandBarButtonStyle}">
<Button.Content>
<controls:WinoFontIcon FontSize="20" Icon="More" />
</Button.Content>
<Button.Flyout>
<MenuFlyout AreOpenCloseAnimationsEnabled="False" Placement="BottomEdgeAlignedLeft">
<MenuFlyoutItem Command="{x:Bind ViewModel.MailOperationCommand}" Text="{x:Bind domain:Translator.MailOperation_SetFlag}">
<MenuFlyoutItem.CommandParameter>
<enums:MailOperation>SetFlag</enums:MailOperation>
</MenuFlyoutItem.CommandParameter>
<MenuFlyoutItem.Icon>
<controls:WinoFontIcon Icon="Flag" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem Command="{x:Bind ViewModel.MailOperationCommand}" Text="{x:Bind domain:Translator.MailOperation_ClearFlag}">
<MenuFlyoutItem.CommandParameter>
<enums:MailOperation>ClearFlag</enums:MailOperation>
</MenuFlyoutItem.CommandParameter>
<MenuFlyoutItem.Icon>
<controls:WinoFontIcon Icon="ClearFlag" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem Command="{x:Bind ViewModel.MailOperationCommand}" Text="{x:Bind domain:Translator.MailOperation_MarkAsRead}">
<MenuFlyoutItem.CommandParameter>
<enums:MailOperation>MarkAsRead</enums:MailOperation>
</MenuFlyoutItem.CommandParameter>
<MenuFlyoutItem.Icon>
<controls:WinoFontIcon Icon="MarkRead" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem Command="{x:Bind ViewModel.MailOperationCommand}" Text="{x:Bind domain:Translator.MailOperation_MarkAsUnread}">
<MenuFlyoutItem.CommandParameter>
<enums:MailOperation>MarkAsUnread</enums:MailOperation>
</MenuFlyoutItem.CommandParameter>
<MenuFlyoutItem.Icon>
<controls:WinoFontIcon Icon="MarkUnread" />
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
</MenuFlyout>
</Button.Flyout>
</Button>
</Grid>
<muxc:ProgressBar
x:Name="LoadingProgressBar"
Grid.Row="1"
x:Load="{x:Bind ViewModel.IsInitializingFolder, Mode=OneWay}"
IsIndeterminate="True" />
</Grid>
<!-- Pivot + Sync + Multi Select -->
@@ -794,6 +814,9 @@
Grid.Column="1"
IsNavigationStackEnabled="False" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="AdaptiveStates" CurrentStateChanged="AdaptivenessChanged">
<VisualState x:Name="NormalState">
@@ -840,4 +863,3 @@
</VisualStateManager.VisualStateGroups>
</Grid>
</abstract:MailListPageAbstract>