Add junk folder empty action and refresh package versions

This commit is contained in:
Burak Kaan Köse
2026-04-18 15:34:14 +02:00
parent 90cb5f86b3
commit 2a93600ede
3 changed files with 38 additions and 10 deletions
+10 -10
View File
@@ -24,9 +24,9 @@
<PackageVersion Include="IsExternalInit" Version="1.0.3" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.5" />
<PackageVersion Include="Microsoft.Graph" Version="5.103.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.6" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.6" />
<PackageVersion Include="Microsoft.Graph" Version="5.104.0" />
<PackageVersion Include="Microsoft.Graphics.Win2D" Version="1.4.0" />
<PackageVersion Include="Microsoft.Identity.Client" Version="4.83.3" />
<PackageVersion Include="Microsoft.Identity.Client.Broker" Version="4.83.3" />
@@ -35,12 +35,12 @@
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools.MSIX" Version="1.7.260316102" />
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="3.0.1" />
<PackageVersion Include="Wino.Mail.Contracts" Version="1.0.18" />
<PackageVersion Include="MimeKit" Version="4.15.1" />
<PackageVersion Include="MimeKit" Version="4.16.0" />
<PackageVersion Include="morelinq" Version="4.4.0" />
<PackageVersion Include="Nito.AsyncEx" Version="5.1.2" />
<PackageVersion Include="Nito.AsyncEx.Tasks" Version="5.1.2" />
<PackageVersion Include="NodaTime" Version="3.3.1" />
<PackageVersion Include="Sentry.Serilog" Version="6.3.1" />
<PackageVersion Include="Sentry.Serilog" Version="6.4.0" />
<PackageVersion Include="Serilog" Version="4.3.1" />
<PackageVersion Include="Serilog.Exceptions" Version="8.4.0" />
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />
@@ -52,21 +52,21 @@
<PackageVersion Include="System.Drawing.Common" Version="10.0.5" />
<PackageVersion Include="System.Private.Uri" Version="4.3.2" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.10" />
<PackageVersion Include="System.Text.Json" Version="10.0.5" />
<PackageVersion Include="System.Text.Json" Version="10.0.6" />
<PackageVersion Include="H.NotifyIcon.Wpf" Version="2.3.0" />
<PackageVersion Include="H.NotifyIcon.WinUI" Version="2.4.1" />
<PackageVersion Include="CommunityToolkit.WinUI.Notifications" Version="7.1.2" />
<PackageVersion Include="Google.Apis.Auth" Version="1.73.0" />
<PackageVersion Include="Google.Apis.Calendar.v3" Version="1.73.0.4073" />
<PackageVersion Include="Google.Apis.Drive.v3" Version="1.73.0.4098" />
<PackageVersion Include="Google.Apis.Drive.v3" Version="1.73.0.4112" />
<PackageVersion Include="Google.Apis.Gmail.v1" Version="1.73.0.4029" />
<PackageVersion Include="Google.Apis.PeopleService.v1" Version="1.72.0.3973" />
<PackageVersion Include="HtmlKit" Version="1.2.0" />
<PackageVersion Include="MailKit" Version="4.15.1" />
<PackageVersion Include="MailKit" Version="4.16.0" />
<PackageVersion Include="TimePeriodLibrary.NET" Version="2.1.6" />
<PackageVersion Include="System.Reactive" Version="6.1.0" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.5" />
<PackageVersion Include="System.Text.Encodings.Web" Version="10.0.5" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.6" />
<PackageVersion Include="System.Text.Encodings.Web" Version="10.0.6" />
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.28000.1721" />
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="2.0.250930001-experimental1" />
<PackageVersion Include="WinUIEx" Version="2.9.0" />
@@ -159,10 +159,14 @@ public partial class MailListPageViewModel : MailBaseViewModel,
[NotifyPropertyChangedFor(nameof(IsFolderSynchronizationEnabled))]
[NotifyPropertyChangedFor(nameof(IsCategoryView))]
[NotifyPropertyChangedFor(nameof(IsSyncButtonVisible))]
[NotifyPropertyChangedFor(nameof(IsJunkFolder))]
[NotifyPropertyChangedFor(nameof(IsEmptyFolderButtonVisible))]
[NotifyCanExecuteChangedFor(nameof(EmptyFolderCommand))]
public partial IBaseFolderMenuItem ActiveFolder { get; set; }
[ObservableProperty]
[NotifyPropertyChangedFor(nameof(CanSynchronize))]
[NotifyCanExecuteChangedFor(nameof(EmptyFolderCommand))]
public partial bool IsAccountSynchronizerInSynchronization { get; set; }
public MailListPageViewModel(IMailDialogService dialogService,
@@ -285,8 +289,10 @@ public partial class MailListPageViewModel : MailBaseViewModel,
public bool CanSynchronize => !IsCategoryView && !IsAccountSynchronizerInSynchronization && IsFolderSynchronizationEnabled;
public bool IsFolderSynchronizationEnabled => ActiveFolder?.IsSynchronizationEnabled ?? false;
public bool IsArchiveSpecialFolder => ActiveFolder?.SpecialFolderType == SpecialFolderType.Archive;
public bool IsJunkFolder => ActiveFolder?.SpecialFolderType == SpecialFolderType.Junk;
public bool IsCategoryView => ActiveFolder is IMailCategoryMenuItem or IMergedMailCategoryMenuItem;
public bool IsSyncButtonVisible => !IsCategoryView;
public bool IsEmptyFolderButtonVisible => IsJunkFolder;
public string SelectedMessageText => IsDragInProgress
? string.Format(Translator.MailsDragging, DraggingItemsCount)
@@ -566,6 +572,20 @@ public partial class MailListPageViewModel : MailBaseViewModel,
}
}
[RelayCommand(CanExecute = nameof(CanEmptyFolder))]
private async Task EmptyFolderAsync()
{
if (!IsJunkFolder || ActiveFolder == null) return;
foreach (var folder in ActiveFolder.HandlingFolders.OfType<MailItemFolder>())
{
var folderPrepRequest = new FolderOperationPreperationRequest(FolderOperation.Empty, folder);
await _winoRequestDelegator.ExecuteAsync(folderPrepRequest);
}
}
private bool CanEmptyFolder() => IsJunkFolder && !IsAccountSynchronizerInSynchronization;
[RelayCommand(CanExecute = nameof(CanLoadMoreItems))]
private async Task LoadMoreItemsAsync()
{
@@ -246,6 +246,14 @@
Grid.Row="1"
Grid.Column="2"
Orientation="Horizontal">
<Button
Background="Transparent"
BorderThickness="0"
Command="{x:Bind ViewModel.EmptyFolderCommand}"
ToolTipService.ToolTip="{x:Bind domain:Translator.FolderOperation_Empty}"
Visibility="{x:Bind ViewModel.IsEmptyFolderButtonVisible, Mode=OneWay}">
<coreControls:WinoFontIcon FontSize="18" Icon="EmptyFolder" />
</Button>
<Button
Width="36"
Height="36"