Commit Graph

2378 Commits

Author SHA1 Message Date
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
Mauro Romito 256292c5a9 updated ec and sentry 2025-05-28 17:08:23 +02:00
Doug 8a1a0ce1a4 Fix a couple of crashes on macOS from a missing environment object. (#4153) 2025-05-28 11:24:35 +01:00
Stefan Ceriu 182eee2867 Update the Enterprise submodule and make use of the newly added secrets configuration mechanism 2025-05-27 18:21:11 +03:00
Stefan Ceriu b3f0c31b9d Setup the new RustSDK sentry integration 2025-05-27 18:21:11 +03:00
pixlwave 803e4198ea Translations update 2025-05-27 14:45:35 +03:00
Stefan Ceriu f9b3281172 Bump the SDK to v25.05.26-2 and update the breaking changes following the RoomListItem removal 2025-05-26 18:11:24 +03: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 4adfa7c98d Stop relying on the room list service and its items when retrieving room from the ClientProxy 2025-05-26 13:22:57 +03:00
Stefan Ceriu ccf437f5fb Remove the reliance on a room list item and the preview api from the BannedRoomProxy 2025-05-26 13:22:57 +03:00
Stefan Ceriu 154c44b701 Remove the RoomListItem from the JoinedRoomProxy 2025-05-26 13:22:57 +03:00
Stefan Ceriu 54a4656469 Apply the logic from the previous commit and the JoinRoomProxy to the KnockedRoomProxy 2025-05-26 13:22:57 +03:00
Stefan Ceriu ae42540ec0 Bump the RustSDK to v25.05.26 and handle breaking changes
- the new sentry integration will be handled in #4145
2025-05-26 13:22:57 +03:00
Stefan Ceriu a7c4a32285 Pass the full room into the invited room proxy and stop automatically retrieving the preview
- this will help speed up leaving invites but also stop fetching previews twice in the join room screen
2025-05-26 13:22:57 +03:00
Stefan Ceriu 29cfcb0b85 Better document the various protocols and classes involved in dealing with room timelines. 2025-05-23 16:08:18 +03:00
Stefan Ceriu 972084aaf7 Rename the TimelineProvider to TimelineItemProvider 2025-05-23 16:08:18 +03:00
Stefan Ceriu d058e7cd25 Introduce a new SwiftUI TimelineView layer (wrapping the representable) to hold all the timeline specific bindings that are currently duplicated throughout the screens a timeline is used. 2025-05-23 16:08:18 +03:00
Stefan Ceriu 250a7ed451 Move the pinned timeline in line with the other timeline creation methods and have it report errors just like the others 2025-05-22 18:14:55 +03:00
Stefan Ceriu 909aa086f2 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
Doug d76b76d041 Don't group timeline items if more than 5 minutes has passed. (#4138)
Matches the behaviour on web.
2025-05-21 10:34:22 +01:00
Stefan Ceriu de5dbdcdf8 Fix Type 'MXLog' has no member 'dev' CI error 2025-05-21 09:06:32 +03:00
Doug 5197e41928 Show an account provider picker on the server confirmation screen when required. (#4137)
* Add a picker mode to the ServerConfirmationScreen.

* Hook up the account provider picker in authentication the flow.

Simplify the authentication flow coordinator, removing the restricted state.

* UI/Snapshot tests.
2025-05-20 17:21:08 +01:00
Mauro Romito 18519c15dd integration tests: support for the bottom sheet 2025-05-20 17:39:12 +02:00
Velin92 a618f140ed Translations update 2025-05-20 13:01:35 +02:00
Doug 390553f5fe Allow the app to be configured to bypass the server selection screen. (#4131)
* Make account provider configuration more flexible.

- Change defaultHomeserverAddress to an array of providers (needs UI).
- Add allowOtherAccountProviders to prevent the user from manually entering a provider.

* Refactor QR code scan failures into a common type.

* Validate scanned QR codes against the allowed account providers.

* Hide the login flow on the QR code screen when restricted.
2025-05-20 11:09:50 +01:00
Stefan Ceriu 10fb2b5dda Add mechanism for opening up a threaded timeline 2025-05-20 12:18:55 +03:00
Hugh Nimmo-Smith 2f938d3cbf Send full user agent header to server during OIDC authentication and when viewing Account and Device management screens (#4106) 2025-05-19 15:09:11 +00:00
Mauro Romito 693d6130ad updated the SDK to 25.05.19 2025-05-19 16:34:37 +02:00
Mauro 9a8819ac26 Always open manage member sheet (#4110)
* always open manage member sheet

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* pr suggestions and handled the buttons actions correctly

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/View/ManageRoomMemberSheetView.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* fixed some compilation errors

* added some documentation

* using a struct instead of a protocol

* using arguments instead of a struct

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2025-05-19 14:17:57 +00:00
Stefan Ceriu 35f615ddd1 Observe room info updates and automatically dismiss the room if meanwhile left or banned (#4122)
* Fix #3302 - Observe room info updates and automatically dismiss the room if meanwhile left or banned.
2025-05-16 12:55:33 +03:00
Doug f5089e8d81 Update the SDK. 2025-05-16 09:58:05 +03:00
Stefan Ceriu 5af330cf6e 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 e1984ccdc0 Fix room list heroes label format
- change from `Alice, Bob and Charlie` to `Alice, Bob, Charlie and 42 others` (when applicable)
2025-05-12 19:40:14 +03:00
Doug 876618d557 Add support for Account Provisioning links. (#4108)
* Add support for account provisioning links and route them to the authentication flow.

* Use the provisioning parameters to configure the authentication flow.

* Add UI tests for the provisioned authentication flow.

* Record new preview snapshots.

* Add unit tests.

* Make the domain configurable in the app settings.

* Use the loginHint in the login screen too.
2025-05-12 13:28:34 +01:00
pixlwave bc1cd400c1 Translations update 2025-05-12 09:24:20 +03:00
Mauro Romito 36242bc271 added argument to voice over on the search bar automatically
- also removed the geomtry reader in favour of a `readWidth` function
2025-05-09 10:18:34 +02:00
Doug 489f784640 Add a state machine to the AuthenticationFlowCoordinator. (#4103) 2025-05-08 15:41:52 +01:00
Stefan Ceriu d77bad61dd Fixes #3484 - Correctly interpret application state transitions for the screen lock when running on the Mac 2025-05-08 17:40:21 +03:00
Mauro Romito 895210cde9 updated learn more link in identity confirmation 2025-05-07 11:42:13 +02:00
stefanceriu 34f9538c9b Translations update 2025-05-05 10:01:43 +03:00
Stefan Ceriu 0c5be93a75 Move where the developer options are shown and store them in the app settings. 2025-05-02 15:13:59 +03:00
Doug d47c802fec Fix the UI tests. (#4085)
* Compile errors 😬

* Update server selection snapshots.

The default footer string has changed.

* Remove the TemplateScreen UI tests.

We use preview tests for snapshots now, UI tests are for flow coordinators.

* Add the same looping on the OIDC UI test (but disable the test in the end).

* Run UI tests separately for iPhone and iPad.

GitHub runners don't seem to have enough memory to handle 2 simulators at once.
2025-05-02 12:47:31 +01:00
Doug 3262fb4cab Fix the integration tests. (#4084)
* Fix logging/alerts during OIDC cancellation.

- Cancelling from within the web view wasn't being handled since moving the UserIndicatorController into the presenter.
- The WAS canceledLogin error code is also used when the system cancels the login. When the system cancels there's a failure reason included in the error.

* Allow UI tests to tap on any point within a view.

* Make the homeserver optional in integration tests.

* Dismiss the keyboard after entering a username to reveal the password text field.

Do the same after entering the password field too, just in case.

* Add a loop while waiting for the WAS prompt to be shown.
2025-05-01 12:07:04 +01:00
Doug d45b232072 Adopt StateStoreViewModelV2 in the authentication screens and some settings screens. (#4083)
* Add some tests for DeferredFulfillment with Observation.

* Use StateStoreViewModelV2 in AuthenticationStartScreen.

* Use StateStoreViewModelV2 in ServerConfirmationScreen.

* Use StateStoreViewModelV2 in ServerSelectionScreen.

* Use StateStoreViewModelV2 in SoftLogoutScreen.

* Use StateStoreViewModelV2 in SettingsScreen.

* Use StateStoreViewModelV2 in DeveloperOptionsScreen.

* Use StateStoreViewModelV2 in AdvancedSettingsScreen.
2025-05-01 09:35:59 +01:00
Doug 61a427b8e5 Update the template screen to use the new(ish) Observation framework. (#4077)
* Update the template screen to use the new(ish) Observation framework.

* Add a variant of deferFulfillment that supports observables.

* Update snapshot fulfilment to work with either a publisher or a stream.
2025-04-30 16:49:23 +01:00
Stefan Ceriu 7391da7fa2 Update the generated SDK mocks. 2025-04-30 12:33:20 +02:00
Mauro Romito 0f53ad6724 updated SDK and improved report flow
the report flow is now based on the matrix version and the new one will only be used if the SDK checks if the server supports it.
2025-04-30 11:41:19 +02:00
Stefan Ceriu cad21daeea Replace the old RoomInfoUpdateListener with the SDKListener 2025-04-29 19:45:55 +03:00
Stefan Ceriu 4e2e2649fc 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 6c8cb2bbe5 Increase the duration after which a call notification is considered outdated. 2025-04-29 19:45:55 +03:00