2026-01-06 17:23:58 +01:00
|
|
|
using Microsoft.UI.Xaml;
|
2025-11-15 14:52:01 +01:00
|
|
|
using Microsoft.UI.Xaml.Controls;
|
2026-01-06 17:23:58 +01:00
|
|
|
using Microsoft.UI.Xaml.Navigation;
|
2025-09-29 11:16:14 +02:00
|
|
|
using Wino.Core.Domain.Models.Folders;
|
2026-03-07 01:46:07 +01:00
|
|
|
using Wino.Mail.ViewModels;
|
2025-09-29 11:16:14 +02:00
|
|
|
using Wino.Views.Abstract;
|
|
|
|
|
|
|
|
|
|
namespace Wino.Views;
|
|
|
|
|
|
|
|
|
|
public sealed partial class AccountDetailsPage : AccountDetailsPageAbstract
|
|
|
|
|
{
|
|
|
|
|
public AccountDetailsPage()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
2026-01-06 17:23:58 +01:00
|
|
|
|
|
|
|
|
NavigationCacheMode = NavigationCacheMode.Enabled;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnTabSelectionChanged(SelectorBar sender, SelectorBarSelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ViewModel.SelectedTabIndex = TabSelector.SelectedItem == null ? 1 : TabSelector.Items.IndexOf(TabSelector.SelectedItem);
|
2025-09-29 11:16:14 +02:00
|
|
|
}
|
|
|
|
|
|
2026-01-06 17:23:58 +01:00
|
|
|
private async void SyncFolderToggled(object sender, RoutedEventArgs e)
|
2025-09-29 11:16:14 +02:00
|
|
|
{
|
|
|
|
|
if (sender is CheckBox checkBox && checkBox.Tag is IMailItemFolder folder)
|
|
|
|
|
{
|
|
|
|
|
await ViewModel.FolderSyncToggledAsync(folder, checkBox.IsChecked.GetValueOrDefault());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-06 17:23:58 +01:00
|
|
|
private async void UnreadBadgeCheckboxToggled(object sender, RoutedEventArgs e)
|
2025-09-29 11:16:14 +02:00
|
|
|
{
|
|
|
|
|
if (sender is CheckBox checkBox && checkBox.Tag is IMailItemFolder folder)
|
|
|
|
|
{
|
|
|
|
|
await ViewModel.FolderShowUnreadToggled(folder, checkBox.IsChecked.GetValueOrDefault());
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-01-06 17:23:58 +01:00
|
|
|
|
2026-03-07 01:46:07 +01:00
|
|
|
private async void CalendarSynchronizationToggled(object sender, RoutedEventArgs e)
|
2026-01-06 17:23:58 +01:00
|
|
|
{
|
2026-03-07 01:46:07 +01:00
|
|
|
if (sender is ToggleSwitch { Tag: AccountCalendarSettingsItemViewModel calendarItem } toggleSwitch)
|
2026-01-06 17:23:58 +01:00
|
|
|
{
|
2026-03-07 01:46:07 +01:00
|
|
|
calendarItem.IsSynchronizationEnabled = toggleSwitch.IsOn;
|
|
|
|
|
await ViewModel.UpdateCalendarSynchronizationAsync(calendarItem.Calendar, toggleSwitch.IsOn);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async void CalendarShowAsSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (sender is ComboBox { Tag: AccountCalendarSettingsItemViewModel calendarItem, SelectedItem: AccountCalendarShowAsOption option })
|
|
|
|
|
{
|
|
|
|
|
calendarItem.SelectedShowAsOption = option;
|
|
|
|
|
await ViewModel.UpdateCalendarDefaultShowAsAsync(calendarItem.Calendar, option);
|
2026-01-06 17:23:58 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnNavigatedTo(NavigationEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.OnNavigatedTo(e);
|
|
|
|
|
|
2026-03-06 12:31:37 +01:00
|
|
|
var targetTabIndex = ViewModel.SelectedTabIndex;
|
|
|
|
|
if (targetTabIndex < 0 || targetTabIndex >= TabSelector.Items.Count)
|
2026-01-06 17:23:58 +01:00
|
|
|
{
|
2026-03-06 12:31:37 +01:00
|
|
|
targetTabIndex = 1;
|
2026-01-06 17:23:58 +01:00
|
|
|
}
|
2026-03-06 12:31:37 +01:00
|
|
|
|
|
|
|
|
TabSelector.SelectedItem = TabSelector.Items[targetTabIndex];
|
2026-01-06 17:23:58 +01:00
|
|
|
}
|
2025-09-29 11:16:14 +02:00
|
|
|
}
|