* 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>
* feat: Enhanced sender avatars with gravatar and favicons integration
* chore: Remove unused known companies thumbnails
* feat(thumbnail): add IThumbnailService and refactor usage
- Introduced a new interface `IThumbnailService` for handling thumbnail-related functionalities.
- Registered `IThumbnailService` with its implementation `ThumbnailService` in the service container.
- Updated `NotificationBuilder` to use an instance of `IThumbnailService` instead of static methods.
- Refactored `ThumbnailService` from a static class to a regular class with instance methods and variables.
- Modified `ImagePreviewControl` to utilize the new `IThumbnailService` instance.
- Completed integration of `IThumbnailService` in the application by registering it in `App.xaml.cs`.
* style: Show favicons as squares
- Changed `hintCrop` in `NotificationBuilder` to `None` for app logo display.
- Added `FaviconSquircle`, `FaviconImage`, and `isFavicon` to `ImagePreviewControl` for favicon handling.
- Updated `UpdateInformation` method to manage favicon visibility.
- Introduced `GetBitmapImageAsync` for converting Base64 to Bitmap images.
- Enhanced XAML to include `FaviconSquircle` for improved UI appearance.
* refactor thumbnail service
* Removed old code and added clear method
* added prefetch function
* Change key from host to email
* Remove redundant code
* Test event
* Fixed an issue with the thumbnail updated event.
* Fix cutted favicons
* exclude some domain from favicons
* add yandex.ru
* fix buttons in settings
* remove prefetch method
* Added thumbnails propagation to mailRenderingPage
* Revert MailItemViewModel to object
* Remove redundant code
* spaces
* await load parameter added
* fix spaces
* fix case sensativity for mail list thumbnails
* change duckdns to google
* Some cleanup.
---------
Co-authored-by: Aleh Khantsevich <aleh.khantsevich@gmail.com>
Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
* Added sync error factories for outlook and gmail.
* Implement ObjectCannotBeDeletedHandler for OutlookSynchronizer.
* Remove debug code.
* Implement del key to delete on mail list.
* Revert debug code.
1. Moved the IsBackground property assignment into the object initializer for the Thread object.
2. Replaced e.Args[e.Args.Length - 1] with e.Args[^1]
3. Added a conditional check to see if GetWindowThreadProcessId returns 0, which indicates failure. If it fails, throw a Win32Exception with the last Win32 error.
4. Removed unused assignment to the variable process
5. Changed the return type of the ConfigureServices method from IServiceProvider to ServiceProvider. It is more specific and faster.
6. Changed notifyIcon to _notifyIcon according to private var naming scheme.
7. Added the CharSet = CharSet.Unicode attribute to the DllImport declarations to specify that the string arguments should be marshaled as Unicode.
* Very basic online search for gmail.
* Server side of handling offline search and listing part in listing page.
* Default search mode implementation and search UI improvements.
* Online search for Outlook.
* Very basic online search for gmail.
* Server side of handling offline search and listing part in listing page.
* Default search mode implementation and search UI improvements.
* Online search for Outlook.
* Online search for imap without downloading the messages yet. TODO
* Completing imap search.
* Remove AppCenter usage and libraries.
* Remove redundant pacakges and add the app insights sink.
* Diagnostic id support and manipulating telemetries.
* Handling of appdomain unhandled exceptions.
* Remove unused package identity package from mail project.
* Fixing printing.
* Fixing an issue where scrollviewer overrides a part of template in mail list. Adjusted zoomed out header grid's corner radius.
* IDLE implementation, imap synchronization strategies basics and condstore synchronization.
* Adding iCloud and Yahoo as special IMAP handling scenario.
* iCloud special imap handling.
* Support for killing synchronizers.
* Update privacy policy url.
* Batching condstore downloads into 50, using SORT extension for searches if supported.
* Bumping some nugets. More on the imap synchronizers.
* Delegating idle synchronizations to server to post-sync operations.
* Update mailkit to resolve qresync bug with iCloud.
* Fixing remote highest mode seq checks for qresync and condstore synchronizers.
* Yahoo custom settings.
* Bump google sdk package.
* Fixing the build issue....
* NRE on canceled token accounts during setup.
* Server crash handlers.
* Remove ARM32. Upgrade server to .NET 9.
* Fix icons for yahoo and apple.
* Fixed an issue where disabled folders causing an exception on forced sync.
* Remove smtp encoding constraint.
* Remove commented code.
* Fixing merge conflict
* Addressing double registrations for mailkit remote folder events in synchronizers.
* Making sure idle canceled result is not reported.
* Fixing custom imap server dialog opening.
* Fixing the issue with account creation making the previously selected account as selected as well.
* Fixing app close behavior and logging app close.
* Ground work for NET9 UWP switch.
* Add launch settings for Wino.Mail
* Added new test WAP project
* fix platforms in slnx solution
* ManagePackageVersionsCentrally set default
* Fixing assets and couple issues with the new packaging project.
* Add back markdown
* Fix nuget warnings
* FIx error in WAP about build tools
* Add build.props with default language preview
* Some AOT compilation progress.
* More AOT stuff.
* Remove deprecated protocol auth activation handler.
* Fix remaining protocol handler for google auth.
* Even more AOT
* More more AOT fixes
* Fix a few more AOT warnings
* Fix signature editor AOT
* Fix composer and renderer AOT JSON
* Outlook Sync AOT
* Fixing bundle generation and package signing.
---------
Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
* Fix an incorrect namespace for copy auth url request.
* Implemented SSL handshake process for testing imap configuration.
* Implemented SSL handshake process for testing imap configuration.
* Replace certificate PathIcon with WinoFontIcon in XAML.
* Implemented copying auth URL for Gmail authentication.
* Update Button icon and add row spacing in Flyout grid
The icon used in the Button.Content has been updated to a new
design and is now wrapped inside a Viewbox with a width of 20
to ensure proper scaling. Additionally, the Grid inside the
Flyout now includes RowSpacing="12" to improve visual separation
between rows.
* Separation of messages. Introducing Wino.Messages library.
* Wino.Server and Wino.Packaging projects. Enabling full trust for UWP and app service connection manager basics.
* Remove debug code.
* Enable generating assembly info to deal with unsupported os platform warnings.
* Fix server-client connection.
* UIMessage communication. Single instancing for server and re-connection mechanism on suspension.
* Removed IWinoSynchronizerFactory from UWP project.
* Removal of background task service from core.
* Delegating changes to UI and triggering new background synchronization.
* Fix build error.
* Moved core lib messages to Messaging project.
* Better client-server communication. Handling of requests in the server. New synchronizer factory in the server.
* WAM broker and MSAL token caching for OutlookAuthenticator. Handling account creation for Outlook.
* WinoServerResponse basics.
* Delegating protocol activation for Gmail authenticator.
* Adding margin to searchbox to match action bar width.
* Move libraries into lib folder.
* Storing base64 encoded mime on draft creation instead of MimeMessage object. Fixes serialization/deserialization issue with S.T.Json
* Scrollbar adjustments
* WınoExpander for thread expander layout ıssue.
* Handling synchronizer state changes.
* Double init on background activation.
* FIxing packaging issues and new Wino Mail launcher protocol for activation from full thrust process.
* Remove debug deserialization.
* Remove debug code.
* Making sure the server connection is established when the app is launched.
* Thrust -> Trust string replacement...
* Rename package to Wino Mail
* Enable translated values in the server.
* Fixed an issue where toast activation can't find the clicked mail after the folder is initialized.
* Revert debug code.
* Change server background sync to every 3 minute and Inbox only synchronization.
* Revert google auth changes.
* App preferences page.
* Changing tray icon visibility on preference change.
* Start the server with invisible tray icon if set to invisible.
* Reconnect button on the title bar.
* Handling of toast actions.
* Enable x86 build for server during packaging.
* Get rid of old background tasks and v180 migration.
* Terminate client when Exit clicked in server.
* Introducing SynchronizationSource to prevent notifying UI after server tick synchronization.
* Remove confirmAppClose restricted capability and unused debug code in manifest.
* Closing the reconnect info popup when reconnect is clicked.
* Custom RetryHandler for OutlookSynchronizer and separating client/server logs.
* Running server on Windows startup.
* Fix startup exe.
* Fix for expander list view item paddings.
* Force full sync on app launch instead of Inbox.
* Fix draft creation.
* Fix an issue with custom folder sync logic.
* Reporting back account sync progress from server.
* Fix sending drafts and missing notifications for imap.
* Changing imap folder sync requirements.
* Retain file count is set to 3.
* Disabled swipe gestures temporarily due to native crash
with SwipeControl
* Save all attachments implementation.
* Localization for save all attachments button.
* Fix logging dates for logs.
* Fixing ARM64 build.
* Add ARM64 build config to packaging project.
* Comment out OutOfProcPDB for ARM64.
* Hnadling GONE response for Outlook folder synchronization.