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;
|
2026-04-01 01:41:17 +02:00
|
|
|
using Wino.Core.ViewModels.Data;
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-08 21:21:34 +01:00
|
|
|
private void OnTabSelectionChanged(object sender, SelectionChangedEventArgs e)
|
2026-01-06 17:23:58 +01:00
|
|
|
{
|
2026-03-08 21:21:34 +01:00
|
|
|
if (TabSelector.SelectedItem != null)
|
|
|
|
|
ViewModel.SelectedTabIndex = 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
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 01:41:17 +02:00
|
|
|
private async void CalendarColorItemClick(object sender, ItemClickEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (sender is GridView { Tag: AccountCalendarSettingsItemViewModel calendarItem } && e.ClickedItem is AppColorViewModel color)
|
|
|
|
|
{
|
|
|
|
|
await ViewModel.UpdateCalendarColorAsync(calendarItem, color);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
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-08 21:21:34 +01:00
|
|
|
targetTabIndex = 0;
|
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
|
|
|
}
|