Commit Graph

181 Commits

Author SHA1 Message Date
Stefan Ceriu
5d973eb231 Update the RustSDK to v26.03.02 2026-03-02 18:14:21 +02:00
Doug
46be78bc75 Define the notification sound name in AppSettings. (#5106) 2026-02-13 16:36:45 +00:00
Doug
9b6324b295 Add boot detection in the NSE and use this to inform the user that there may be more notifications. (#5054)
* Add an initial implementation of the receivedWhileOfflineNotification.

* Only deliver a single receivedWhileOffline notification per boot and clarify the API.

* Add a 15-minute threshold for the receiveWhileOfflineNotification.
2026-02-06 15:18:09 +00:00
Stefan Ceriu
d480014304 Bump the RustSDK to v26.02.03 (#5051)
Bump the RustSDK to v26.02.03
Fix breaking changes and add support for the new background task error reporting delegate and the new room invite latest event.
2026-02-06 12:08:44 +02:00
Doug
49c889447d Use a few more prints in the NSE. 2026-02-05 09:25:24 +02:00
Doug
e4b2c235de Fix the bug report size check and a bad swiftlint command. (#5045) 2026-02-03 13:10:49 +00:00
Doug
dd8f51e065 Fix notification delivery after powering on a device. (#5035)
* Debugging with Notifications.

* Don't run the NSE until the device is unlocked.

* Let the NSE run long enough to deliver the default notification content.

Turns out that exit(0) results in the notification be discarded when you have the notification filtering entitlement.

* Remove debugging notifications.

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2026-02-03 11:04:32 +00:00
Stefan Ceriu
04053ae69b Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Doug
5d57b21222 Update the SDK and handle the API breaks. 2026-01-06 10:57:37 +00:00
Doug
3ef7ad4c4d Add a specific notification body for space invites. (#4808) 2025-12-02 17:07:03 +00:00
Mauro Romito
ebcc1d2169 add NotificationContentBuilderTests and use the Dynamic swift package to test the communicationContext 2025-11-19 13:20:14 +01:00
Mauro Romito
50c07b4a40 add NSE sources to EX project to easily implement mocking and allow the code to be unit tested 2025-11-19 13:20:14 +01:00
Mauro Romito
46642f7272 removed old notification sound 2025-11-18 15:38:02 +01:00
Mauro Romito
1e08967ece separate displayName from avatarDisplayName in notification icons 2025-11-18 15:37:23 +01:00
Doug
8755178cf3 Add @MainActor to some of the hook points. 2025-11-18 16:25:11 +02:00
Doug
15720558ef Silence some warnings. (#4747) 2025-11-14 16:59:54 +00:00
Valere Fedronic
c75353a903 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
Doug
bf533e0572 Fix a potential bug where the token couldn't be refreshed when the cached server /versions had expired. (#4687)
* Update SDK mocks for UniFFI 0.30.0

* Update the SDK.

* Update the SDK again

Includes a temporary workaround that patches the SDK's generated Swift files so that our tests don't crash:
3f0075fb8a
2025-11-03 19:09:31 +00:00
Doug
ad64315e3c Test out a more prominent version of the new notification sound. (#4667) 2025-10-28 16:52:23 +00:00
Stefan Ceriu
2f599283d9 Remove the DTCoreText dependency 2025-10-28 09:53:15 +00:00
Mauro
dfa5214136 Threaded notifications (#4644)
* implemented grouping

* implemented presenting the thread

* improved the implementation by reusing the presentation action

* add Thread group to DMs to differentiate from non threaded messages of the same DM

* name for a threaded notification in group room

* focus event when tapping on a notification

* pr suggestions

* document
2025-10-23 15:28:45 +02:00
Mauro
6160c44d67 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
28bd7a0d6a Update the SDK. (#4517) 2025-09-17 15:43:38 +01:00
Valere Fedronic
dc1f174d40 Element Call: Send rtc.decline event when incoming call is declined (#4499) 2025-09-16 09:14:04 +01:00
Stefan Ceriu
bae0d02fde Add SwiftSoup to the project 2025-09-09 17:17:40 +01:00
Doug
2b65844ac6 Use the SDK's offline detection everywhere (except for restarting the sync loop). (#4472)
* Use the SDK's offline state to drive the offline indicator.

* Only use network reachability for restarting the sync loop, use the homeserver reachability for requests.

* Add a separate indicator to distinguish when the server is unreachable but the device is online.
2025-09-08 12:18:02 +00:00
Doug
9ff82a478e Add a feature flag for spaces. (#4429)
* Remove the huge conditional compilation block on AppSettings.

It is still required for the ElementCallBaseURL however.

* Add a feature flag for spaces.
2025-08-22 13:47:23 +01:00
Doug
6408432c76 Add a couple of logs to debug badge counts. (#4425) 2025-08-20 10:26:45 +01:00
Doug
974a3ad74f Handle TimelineDiff as an enum with associated values. (#4379)
* Handle TimelineDiff as a true enum.

* Update the SDK.

* Silence some warnings.
2025-08-05 09:23:22 +01:00
Doug
ee9f055822 Add a TracingHook. (#4345) 2025-07-23 14:29:31 +01:00
Doug
b7867dac85 Make the remote settings hook usable within the app extensions. (#4342) 2025-07-22 17:09:53 +01:00
Doug
f65b191c8a Refactor Rageshake URL and Target configuration. (#4337)
* Move the rageshakeURL configuration from the BugReportService to AppSettings.

* Refactor Target to return a handle when configuring.

This helps with reconfiguration and removes the @MainActor constraint.
2025-07-22 10:19:26 +01:00
Mauro
84e095f726 Automatic Accessibility Audits on previews part 1 (#4322)
* setup target

* accessibility tests implementation

* removed ipad check

* pr improvements

* updated project
2025-07-15 14:40:16 +02:00
Stefan Ceriu
4d616c550c Add support for the new client wide threads feature flag
- enable it everywhere as it's safer than dealing with different configurations
2025-07-04 16:04:46 +03:00
Stefan Ceriu
d2933df2d0 Bump the RustSDK to v25.07.04 2025-07-04 16:04:46 +03:00
Richard van der Hoff
24ce5c03de Add a developer option for history sharing on invite
Adds a new developer flag, enabling our experimental support for MSC4268.
2025-06-11 11:24:29 +03:00
Stefan Ceriu
2993f9b6a2 Fix breaking changes following SDK update. 2025-06-10 15:09:20 +03:00
Stefan Ceriu
a6c3b5d4af 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
c1dfce4935 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
Stefan Ceriu
3dd98adeeb Setup the new RustSDK sentry integration 2025-05-27 18:21:11 +03:00
Doug
91195305aa 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
2c4a8b34a7 Bump the SDK to 25.05.21 and adopt the new way of dealing with timelines and delegates.
The room list items no longer hold any timeline instances and they can now be created through the normal `room.timelineWithConfiguration` mechanism.
This also means that we can move the UTD hook away from the sync service and into the client itself but setting it is now fallible as it can only be set once.
2025-05-22 18:14:55 +03:00
Stefan Ceriu
4c7791ab24 Fix various small errors when running in the Swift 6 language mode (#4109)
* Fix various small errors when running in the Swift 6 language mode

* Make the `TargetConfiguration` run on the main actor.

* Fixed a comment

* Add a comment as to why we can't make the whole NSE a main actor.

* Fix the unit tests

* Fix `blankLinesAtStartOfScope` swiftformat error.
2025-05-13 11:43:47 +03:00
Stefan Ceriu
08e265220d Always set the push notification badge, even if the unread count is missing. 2025-05-02 11:41:46 +03:00
Stefan Ceriu
ce1c26c3d4 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
ef7aa3b9b3 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
b4ee531a13 Flatten out the NSE file structure and switch room fetching to the notificationClient instead of the base one
- the notification client uses its internal in-memory store backed client which has up to date data after running the sliding sync loop
- see https://github.com/matrix-org/matrix-rust-sdk/pull/4991 for more details
2025-04-30 12:33:20 +02:00
Stefan Ceriu
16f16b488f Replace the old RoomInfoUpdateListener with the SDKListener 2025-04-29 19:45:55 +03:00
Stefan Ceriu
8d1fab245b Set a total request max retry time for network requests originating in the notification service extension. 2025-04-29 19:45:55 +03:00
Stefan Ceriu
f24e81ae9f 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