Add capability-first account and calendar setup flow

This commit is contained in:
Burak Kaan Köse
2026-04-20 19:38:30 +02:00
parent 54148716bb
commit d85812ed7b
41 changed files with 1369 additions and 333 deletions
@@ -61,6 +61,7 @@ public sealed class ImapCalDavSetupResult
{
public string DisplayName { get; init; }
public string EmailAddress { get; init; }
public bool IsMailAccessGranted { get; init; }
public bool IsCalendarAccessGranted { get; init; }
public CustomServerInformation ServerInformation { get; init; }
}
@@ -21,6 +21,12 @@ public partial class WelcomeWizardContext : ObservableObject
[ObservableProperty]
public partial InitialSynchronizationRange SelectedInitialSynchronizationRange { get; set; } = InitialSynchronizationRange.SixMonths;
[ObservableProperty]
public partial bool IsMailAccessEnabled { get; set; } = true;
[ObservableProperty]
public partial bool IsCalendarAccessEnabled { get; set; } = true;
// Special IMAP fields (iCloud/Yahoo)
[ObservableProperty]
public partial string DisplayName { get; set; }
@@ -66,7 +72,9 @@ public partial class WelcomeWizardContext : ObservableObject
AccountName,
BuildSpecialImapProviderDetails(),
AccountColorHex,
SelectedInitialSynchronizationRange);
SelectedInitialSynchronizationRange,
IsMailAccessEnabled,
IsCalendarAccessEnabled);
}
public void Reset()
@@ -75,6 +83,8 @@ public partial class WelcomeWizardContext : ObservableObject
AccountName = null;
AccountColorHex = null;
SelectedInitialSynchronizationRange = InitialSynchronizationRange.SixMonths;
IsMailAccessEnabled = true;
IsCalendarAccessEnabled = true;
DisplayName = null;
EmailAddress = null;
AppSpecificPassword = null;