Commit Graph

23 Commits

Author SHA1 Message Date
Mauro 2462ddea85 Swift 6 migration for NSE (#5608)
* swift 6 support for NSE and concurrency safe implementations for it

* enforcing required Sendable conformance for swift 6 migration in NSE

* use Mutex to access the string builder cache

* use an async stream to update timeline items diffs

* fix for Sendable appHooks
2026-05-21 20:21:57 +02:00
Michael dd0de4d7b0 Custom Notification Tones (#5527)
* added foundation for custom notifications

* feat: add localizations for tone names

also, if available, include the pro sound in the element x sound list

* use a static file location to store the notification tone

and update the file at that location when selected

* if there's a problem previewing or setting the alert tone, toast the user with the error

* rename tone directory

* create NotificationToneManager to handle tone business logic

* conform to project formatting

* assign custom sound to actual notifications

* dry up notification generation in the nse

* add compilation condition for including notification alert tone and remove from share extension

* swift format had some opinions

* flatten the notification tone ui, removing system/elementx designations

* fix stored file url breaking due to sandbox path changes

* tone manager can import custom tones and provide a list of imported tones

* ui support for custom tones

* can delete custom imported tones

* sort the custom tones

* add additional preset sounds

* can choose caf files for custom sounds and fix location persistence issues

* store sound locations with relative links

this is a better solution than storing bookmarks since bookmark resolution can be variable and differ from freshly derived urls

* add docs for new notification features

* run tone conversion in background

* resolved several ai found issues

* added protocol and mocks for notification tone manager

* added tests for notification settings screen vm interactions with the tone manager

* add tests for notification tone manager

* rename element tone names per feedback

* move custom tone option to the top of the notification tone list

* rename Tone to Sound for consistency with Android

* remove additional bundled tones

* restore accidentally deleted Element Default sound file

* system alert tones are filtered by what's available on the system prior to finalizing the collection

* Add a couple more caf file conversion log statements

* Simplify the notification sound conversion logic

* Update notification sound strings in sync with Android

* update xcodeproj after rebase

* remove conditional compilation and include NotificationAlertSound in share extension

* Use AudioPlayer instead of custom tone previewer and remove the previewer

* rename NotificationTone

* Consolidate and move errors to top of NotificationToneManager

* tone manager no longer depends on userinterfacecontroller

* Move static Tone properties to NotificationToneManager

* resolve view model initializer feedback

* update xcodeproj

* fatalerror when tone manager cannot init

* Remove banner icon on alert tone error

* fixup review feedback

* Moved URL handling to NotificationToneManager
2026-05-20 15:40:34 +03:00
Doug eb72815e74 Fix a bug where calls don't ring when quiet notifications are hidden. 2026-04-25 11:26:43 +03:00
Stefan Ceriu 823e2afa97 Refactor the RoomMessageEventStringBuilder to take a Style instead of a Destination
This make its usage clearer and makes different styles reusable
2026-03-31 18:21:14 +03:00
Valere fec4f7d9ee call: Support voice only incoming call 2026-03-30 17:49:46 +02:00
Doug c35550408e Stop messages disappearing and then re-appearing after being sent. (#5162)
Update the SDK.
2026-03-03 17:09:34 +00:00
Doug 9207f004b0 Define the notification sound name in AppSettings. (#5106) 2026-02-13 16:36:45 +00:00
Doug 3cbeca82bd Update the SDK and handle the API breaks. 2026-01-06 10:57:37 +00:00
Valere Fedronic cd411b57e0 MSC4075 Use expirationTS to define the call ringing window (#4652)
* Listen to call decline to stop ringing when declined from other device

* MSC4075 Use expirationTS to define the call ringing window

* Implement ElementCallService tests.

* Update acknowledgements.
2025-11-12 12:59:09 +00:00
Mauro f7dd9cdcf8 Update copyright holding and dates (#4640)
* Update copyright holding and dates

* compound IDE Macros updated

* update copyright

* update copyrights done

* update templates and README
2025-10-21 14:34:56 +02:00
Doug d571e27637 Update the SDK. (#4517) 2025-09-17 15:43:38 +01:00
Valere Fedronic df47858e7d Element Call: Send rtc.decline event when incoming call is declined (#4499) 2025-09-16 09:14:04 +01:00
Doug 5a7dbf8a50 Add a couple of logs to debug badge counts. (#4425) 2025-08-20 10:26:45 +01:00
Stefan Ceriu de608b486e Fix breaking changes following SDK update. 2025-06-10 15:09:20 +03:00
Stefan Ceriu 97e23b556f Allow multiple room info updates when receiving a call before deciding the room doesn't have an active call anymore. 2025-06-05 11:06:07 +03:00
Mauro aef91b5bc9 Handle media previews and invite avatars through the account data (#4142)
* added account data media display policy handling to NSE

* pr suggestions

* update compound

* code improvement
2025-05-28 19:51:34 +02:00
Doug 542d382870 Add a developer option that hides notification alerts when a sound wouldn't be played.
Enabling this makes isNoisy behave like iMessage's Hide Alerts option.
2025-05-26 16:05:38 +03:00
Stefan Ceriu 5053a37eea Always set the push notification badge, even if the unread count is missing. 2025-05-02 11:41:46 +03:00
Stefan Ceriu 2f5c447cc4 Fix compilation errors - make sure we update the push notification badge using the received, server-provided unread count. 2025-05-02 11:27:49 +03:00
Stefan Ceriu a625ad0ee6 Make sure we update the push notification badge using the received, server-provided unread count. 2025-05-02 11:18:10 +03:00
Stefan Ceriu cad21daeea Replace the old RoomInfoUpdateListener with the SDKListener 2025-04-29 19:45:55 +03:00
Stefan Ceriu 690ff3caa6 Rely on the room's info to decide whether a call ringing notification is outdated and should be ignored as opposed to a time based approach. 2025-04-29 19:45:55 +03:00
Stefan Ceriu 308d7bad30 Introduce a NotificationHandler object to split out notification content handling from the rest of the NSE core logic. 2025-04-17 15:24:12 +03:00