feat(preferences): ✨ Add email sync interval setting (#710)
* feat(preferences): ✨ Add email sync interval setting Introduced a new property `EmailSyncIntervalMinutes` in the `IPreferencesService` interface to allow users to configure the email synchronization interval in minutes. This feature enhances user control over email sync behavior. • Updated `resources.json` to include translations for the new setting. • Implemented the logic for the new property in `PreferencesService.cs`, with a default value of 3 minutes. • Added binding and UI support in `AppPreferencesPageViewModel.cs` and `AppPreferencesPage.xaml` to allow users to modify the sync interval. • Integrated the new setting into `ServerContext.cs` to dynamically adjust the synchronization timer based on user preferences. This change improves the user experience by providing customizable email synchronization settings. * Minimum interval and added an icon. * Proper SetProperty usage. * Making sure the minimum sync interval is 1 in the ServerContext. * Making sure the minimum is applied to first trigger of the sync timer. --------- Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
This commit is contained in:
committed by
GitHub
parent
8cd7f68c30
commit
c2bb07ff3d
@@ -26,6 +26,18 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel
|
||||
[NotifyPropertyChangedFor(nameof(IsStartupBehaviorEnabled))]
|
||||
private StartupBehaviorResult startupBehaviorResult;
|
||||
|
||||
private int _emailSyncIntervalMinutes;
|
||||
public int EmailSyncIntervalMinutes
|
||||
{
|
||||
get => _emailSyncIntervalMinutes;
|
||||
set
|
||||
{
|
||||
SetProperty(ref _emailSyncIntervalMinutes, value);
|
||||
|
||||
PreferencesService.EmailSyncIntervalMinutes = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsStartupBehaviorDisabled => !IsStartupBehaviorEnabled;
|
||||
public bool IsStartupBehaviorEnabled => StartupBehaviorResult == StartupBehaviorResult.Enabled;
|
||||
|
||||
@@ -84,6 +96,7 @@ public partial class AppPreferencesPageViewModel : MailBaseViewModel
|
||||
|
||||
SelectedAppTerminationBehavior = _appTerminationBehavior[(int)PreferencesService.ServerTerminationBehavior];
|
||||
SelectedDefaultSearchMode = SearchModes[(int)PreferencesService.DefaultSearchMode];
|
||||
EmailSyncIntervalMinutes = PreferencesService.EmailSyncIntervalMinutes;
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
|
||||
Reference in New Issue
Block a user