Commit Graph

887 Commits

Author SHA1 Message Date
Burak Kaan Köse 9877656eea RSVP options. 2026-01-03 19:33:36 +01:00
Burak Kaan Köse a64627e7d6 Reminders. 2026-01-01 15:02:40 +01:00
Burak Kaan Köse 3b485dc1fe Event details UI improvements. 2026-01-01 10:07:56 +01:00
Burak Kaan Köse e71c050724 Item update and delete scenarios. 2025-12-31 15:33:13 +01:00
Burak Kaan Köse d54a9f6279 copilot instructions 2025-12-31 14:15:12 +01:00
Burak Kaan Köse f917e4a721 New setting options. 2025-12-31 14:09:57 +01:00
Burak Kaan Köse 61fb10a951 Calendar settings on settings page. 2025-12-31 13:28:53 +01:00
Burak Kaan Köse d3704a0f09 More coverage for Esc to unselect all items. 2025-12-31 11:08:30 +01:00
Burak Kaan Köse c584929db5 Fix outlook sync. 2025-12-30 23:49:25 +01:00
Burak Kaan Köse ea4cf20746 +2 years sync for Outlook 2025-12-30 23:41:53 +01:00
Burak Kaan Köse 2056a2d783 Handle deleted events. 2025-12-30 23:32:00 +01:00
Burak Kaan Köse b81ab0ca15 Creating events. 2025-12-30 11:59:54 +01:00
Burak Kaan Köse 70ac2d2bea New grouped collection for quick event dialog. 2025-12-30 10:36:27 +01:00
Burak Kaan Köse 07f3dabff6 win2d -> skia, some improvements on rendering. 2025-12-30 10:02:24 +01:00
Burak Kaan Köse 72e43e4b7a Recalculate recurrences when a new event added. 2025-12-30 08:51:50 +01:00
Burak Kaan Köse 0519bf86b3 I dont know some improvements on reacting calendar changes. 2025-12-29 23:13:32 +01:00
Burak Kaan Köse 6ba2f1f3e2 Make sure outlook correctly calls datetime for delta api. 2025-12-29 14:46:31 +01:00
Burak Kaan Köse 8613e92b31 Fixed the display date of the calendar items. Created test project for core library, included tests for recurring calendar events. 2025-12-29 14:10:09 +01:00
Burak Kaan Köse f79305f0a6 Fix the AOT issue with custom binding of IsSelected property through CVS in Mail List. 2025-12-28 07:28:20 +01:00
Burak Kaan Köse 0f6aa66b21 Small warning. 2025-12-28 07:27:27 +01:00
Burak Kaan Köse 51540c89d1 Fix auto nav to calendar on launch. 2025-12-28 06:58:06 +01:00
Burak Kaan Köse a5227abd40 Some UI shit. 2025-12-27 19:16:24 +01:00
Burak Kaan Köse 014b5aa671 Initial integration. 2025-12-26 20:46:48 +01:00
Burak Kaan Köse 10b85ea135 Fixing attachment icons. 2025-12-25 19:48:42 +01:00
Burak Kaan Köse f6e94e89c9 Fixing an issue where DeleteAsync calls expect PK. 2025-12-25 17:21:23 +01:00
Burak Kaan Köse 8a68fafedf Fixed an issue with loading mails with infinite scroll. 2025-12-15 21:06:13 +01:00
Burak Kaan Köse 9fbbd00dc5 Object deleted error fix. 2025-11-30 17:51:44 +01:00
Burak Kaan Köse a8a5d3c3d6 Fixed the issue with mail rendering page not getting disposed properly. 2025-11-24 20:54:57 +01:00
Maicol Battistini beb3bf9d1d feat: S/MIME signing and encryption (#693)
* feat: add S/MIME certificate management

- Introduced `ISmimeCertificateService` interface for managing S/MIME certificates.
- Implemented `SmimeCertificateService` class to handle certificate operations.
- Updated `WinoPage` enum to include `SignatureAndEncryptionPage`.
- Added resource entries in `resources.json` for S/MIME related messages.
- Created `SignatureAndEncryptionPage` view and logic for user interaction.
- Modified configuration files to integrate the new service and page.
- Updated project files to include necessary dependencies for certificate management.

* refactor(SmimeCertificateService): ♻️ Use constant for certificate name

Refactored the `SmimeCertificateService` to replace the hardcoded string "Wino Mail Certificate" with a constant `CertificateFriendlyName`. This change enhances code maintainability by centralizing the definition of the certificate's friendly name.

• Introduced a constant for the certificate's friendly name.
• Updated the certificate retrieval and import logic to use the new constant.

* feat(alias):  Add S/Mime certificate selection for every alias

Added new properties and methods in `MailAccountAlias` to manage signing and encryption certificates, including their thumbprints. This enhancement allows for better handling of S/Mime certificates within the application.

• Introduced new properties for signing and encryption certificates.
• Updated `resources.json` with new translations for S/Mime certificates.
• Enhanced `AliasManagementPageViewModel` to include a dependency on the S/Mime certificate service and updated alias loading methods.
• Modified `AliasManagementPage.xaml` to include ComboBox controls for selecting certificates.
• Implemented methods in `AliasManagementPage.xaml.cs` to handle certificate selection from dropdowns.

This change improves the user experience by allowing users to select and manage their S/Mime certificates directly within the alias management interface.

* feat(mail):  Add S/MIME support and file picker updates

Enhanced the `MailRenderModel` class by adding a new property `IsSmimeSigned` to indicate if an email is S/MIME signed. The constructor has been updated to accept `MailRenderingOptions`.

Updated the file selection logic in `DialogServiceBase` to replace the `FolderPicker` with a `FileSavePicker`, streamlining the process of saving files. Removed unnecessary commented code and added logic to handle file extensions.

In `MailRenderingPageViewModel`, a new property `IsSmimeSigned` reflects the S/MIME status of the current render model, along with a new method `ShowSmimeCertificateInfoAsync` to display S/MIME certificate details.

Added a `HyperlinkButton` in `MailRenderingPage.xaml` to indicate S/MIME status, which is only visible for signed emails, providing a tooltip and command for more information.

In `MimeFileService`, implemented logic to detect S/MIME signatures in messages and exclude S/MIME signature parts from attachments.

* refactor(viewmodel): ♻️ Replace dialog service messages

Refactored the `SignatureAndEncryptionPageViewModel.cs` to replace calls to `_dialogService.ShowMessageAsync` with `_dialogService.InfoBarMessage`. This change improves the handling of success messages during certificate import and removal processes.

* feat(mail):  Add S/MIME encryption indicator

Implemented support for S/MIME email handling in the MailRenderingPageViewModel. This includes the addition of a new property to check if an email is encrypted and updates to methods for displaying S/MIME certificate information.

A new column was added in the MailRenderingPage.xaml to indicate if an email is encrypted, along with updated tooltips and commands. The MimeFileService was also modified to detect S/MIME encryption and to exclude S/MIME signature certificates during attachment processing.

* fix: Added missing property

* feat: Added S/Mime decryption and signing verification and improvements

* i18n(resources): 🌐 Add S/MIME translation strings

Added new translation strings for S/MIME functionalities in `resources.json`, including messages for signatures and certificates in both English and Italian. The code has been updated to utilize these new translation strings, enhancing the application's internationalization.

Updated `MailRenderingPageViewModel.cs` to use the new translation strings for signature and certificate messages, improving code readability and consistency with translations. Additionally, the tooltips for S/MIME signing and encryption buttons in `MailRenderingPage.xaml` have been updated to use the new translation strings, enhancing the user experience for Italian-speaking users.

* fix: Extract body from MultipartSigned message

* feat(smime):  Enhance S/MIME certificate handling

Updated the `SmimeCertificateService` to improve the loading of PKCS12 certificate collections by adding `X509KeyStorageFlags.DefaultKeySet` and `X509KeyStorageFlags.Exportable` for better key management.

In `ComposePageViewModel`, imported necessary namespaces for S/MIME certificate handling and added a new dependency for `ISmimeCertificateService`. Implemented logic in `OpenAttachmentAsync` to load alias certificates and manage message signing and encryption based on user-selected certificates.

This change enhances the security and flexibility of email handling within the application.

* feat: Replaced Smime encryption certificate combobox with checkbox

Cert selection is useless for encryption

* feat: Added S/Mime togglebuttons when composing an email

* i18n(translations): 🌐 Add new composer translations

Added new translation strings for composer features, including themes, text formatting, and S/MIME signing and encryption options. Updated button labels to utilize these new strings, enhancing the application's internationalization.

Additionally, removed an obsolete string related to S/MIME certificate file information.

* Example for relay command and fix settings pages runtime error

* refactor(viewmodel): ♻️ Update certificate import/export commands

Refactored the certificate import and export commands in the `SignatureAndEncryptionPageViewModel`. Changed methods from `async void` to `async Task` for better error handling and tracking of asynchronous operations. Added `[RelayCommand]` attributes to improve adherence to the MVVM pattern.

Updated the XAML file to bind buttons directly to the new command methods, removing the need for event handlers. This enhances separation of concerns and simplifies the code.

Removed obsolete event handlers from the code-behind file, streamlining the implementation.

* fix: export folderPath parameter contains file name

* fix: QRESYNC initial modseq should be 1 (#734)

* Fix typo in reorder accounts dialog (#754)

* fix: Missing commas in translations files

* fix: merge issues

* Fix mege conflicts.

* Some more conflict fixes.

* Fixing context.

* Fixing saving file with suggested file name.

---------

Co-authored-by: Aleh Khantsevich <aleh.khantsevich@gmail.com>
Co-authored-by: Konstantin Shkel <null+github@pcho.la>
Co-authored-by: Cas Cornelissen <cas.cornelissen@onefinity.io>
Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
2025-11-23 20:56:57 +01:00
Burak Kaan Köse 1a2590e2c3 Missing import. 2025-11-23 17:05:11 +01:00
Burak Kaan Köse 8858ef08c2 Better progress for outlook synchronizer. 2025-11-23 17:04:38 +01:00
Burak Kaan Köse 4520e16048 Make sure gmail sdk is trimmable. 2025-11-23 16:48:54 +01:00
Burak Kaan Köse 56cd29429e Remove Bindings for maill ist page. 2025-11-16 01:56:10 +01:00
Burak Kaan Köse 07aeaf8c8f Removal of Bindings 2025-11-16 00:23:23 +01:00
Burak Kaan Köse a2c7e5f29a Remove old projects. 2025-11-16 00:08:45 +01:00
Burak Kaan Köse b3130d9441 New assets. 2025-11-16 00:02:55 +01:00
Burak Kaan Köse 0dd907e314 Merge core project into winui project. 2025-11-15 14:52:01 +01:00
Burak Kaan Köse 12a39064dc Some item templates and removal of sqlkata. 2025-11-15 13:29:02 +01:00
Burak Kaan Köse b356af8eb4 Main app aot compatibility. 2025-11-14 18:51:48 +01:00
Burak Kaan Köse ae64094feb Make winui core library aot compatible. 2025-11-14 14:48:03 +01:00
Burak Kaan Köse 472cc3d7f2 Fix warnings for core view models. 2025-11-14 14:44:56 +01:00
Burak Kaan Köse dbaed6094b Make core library aot compatible. 2025-11-14 14:42:05 +01:00
Burak Kaan Köse 8cb8f27e00 Make services aot compatible. 2025-11-14 14:28:10 +01:00
Burak Kaan Köse d9ef81729f Enable aot for libs 2025-11-14 13:59:38 +01:00
Burak Kaan Köse d592d1c235 Nuget bump 2025-11-14 13:51:46 +01:00
Burak Kaan Köse e185301277 Fix missing window handler for outlook authenticator. 2025-11-14 13:29:49 +01:00
Burak Kaan Köse 249a950dc1 Fix soem dispaly date issues. 2025-11-14 12:56:37 +01:00
Burak Kaan Köse 540a4e5117 Fix single instancing. 2025-11-14 12:51:19 +01:00
Burak Kaan Köse 3d5da92c74 Revert debug code. 2025-11-14 12:51:12 +01:00
Burak Kaan Köse 88fe141b16 Handle attention in sync manager. 2025-11-14 12:31:24 +01:00