Commit Graph

354 Commits

Author SHA1 Message Date
Doug bff328554a Use our own JoinRule type which doesn't include the reserved .private case. (#5056)
* Stop using Rust's JoinRule.private in mocks.

It isn't used anywhere else (see MSC4413 for more context).

* Use our own JoinRule (and AllowRule) types.

* Update ElementX/Sources/Services/Room/JoinRule.swift

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2026-02-06 13:54:53 +00:00
Stefan Ceriu 61763d9893 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
Stefan Ceriu a2a8527ffc Clean up the Signposter implementation and align on new metrics 2026-01-30 13:19:05 +02:00
Stefan Ceriu 23062901c0 Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Mauro Romito 7d47a290ee pr suggestion rename isPrivate to isVisibilityPrivate 2026-01-22 16:40:25 +01:00
Mauro Romito 204fa5b0ca started implementing the logic behind the access type and the creation parameters 2026-01-22 16:40:25 +01:00
Mauro 648caa4e82 Create space flow (#4957)
* create space flow implementation

# Conflicts:
#	ElementX/Sources/FlowCoordinators/SpacesTabFlowCoordinator.swift

* create space flow fully implemented and working

* updated tests and updated the create room camera button UI

* updated the avatar button in the create room screen, and added power level overrides for spaces

* update power level content overrides to behave just as EW, and removed ask to join when creating a space regardless of the FF

* updated UI tests snapshots

* invite for a public space should always be forced to 50

* pr suggestions + PL override fix

* fix a missed code change
2026-01-15 13:52:18 +00:00
Doug cde9714a83 Implement the SpaceAddRoomsScreen. (#4951)
* Update proxies ready for adding rooms to a space.

- ClientProxy.recentlyVisitedRooms to take a filter and to return room proxies.
- Expose SpaceServiceProxy.addChildToSpace.

* Implement the SpaceAddRoomsScreen.

* Fix the designs of the selected carousels.

Add more snapshot tests for inviting users.

* Fix for screen using wrong avatar size.
2026-01-14 12:07:57 +00:00
Mauro 4cfedefcca Create room redesign and refactor (#4942) 2026-01-12 17:49:31 +00:00
Doug 7cb472a4f7 Add tests for linking a new device. (#4934)
* Replace GrantLoginWithQrCodeHandlerSDKMock with LinkNewDeviceServiceMock.

Add tests for all initial states on the QRCodeLoginScreen.

* Add tests for linking both mobile and desktop devices.

* Add UI tests for linking a new device.

* Don't show the Link Desktop Computer button when running on macOS.

This mirrors the decision to hide the Sign In With QR Code button on the start screen.
2026-01-09 13:10:14 +00:00
Doug 3cbeca82bd Update the SDK and handle the API breaks. 2026-01-06 10:57:37 +00:00
Stefan Ceriu 53a20f2a89 Display the store sizes under the developer options menu 2025-12-19 11:12:36 +02:00
Stefan Ceriu 8a1d0fe8b1 Perform client store optimizations when migrating versions. 2025-12-19 11:12:36 +02:00
Doug 93dfc84a57 Add a service and flow coordinator for the LinkNewDevice feature. (#4859)
* Add a LinkNewDeviceService that exposes the SDK's grant QR code login methods.

* Add a flow coordinator for linking a new device.

Changes the presentation too.
2025-12-15 14:44:26 +00:00
Doug 4ea1aaecdd Add a Link New Device screen (behind a feature flag). (#4811) 2025-12-11 11:45:23 +00:00
Doug f2607affd2 Adopt the new latest event API. (#4779) 2025-11-25 11:52:48 +00:00
Stefan Ceriu 0d581cdf86 Switch the ClientProxy's roomForIdentifier state publisher await to the staticRoomSummaryProvider, similar to the other methods. 2025-11-17 21:01:21 +02:00
Doug eb0ff83bc5 Silence some warnings. (#4747) 2025-11-14 16:59:54 +00:00
Doug 51a9d8b56b Only offer to verify if a cross-signed device is available and improve the UX whilst waiting. (#4710)
* Only offer to verify if a cross-signed device is available

* Wait until we know which verification options are available before showing them.

---------

Co-authored-by: Hubert Chathi <hubertc@matrix.org>
2025-11-07 12:10:12 +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 c2ac60f1e6 Add support for joining rooms from a space. (#4501)
* Add support for joining rooms from a space.

Doesn't yet handle the Join button 🤔

* Handle the join button for both rooms and spaces.

Also refactor more instances of spaceRoom to spaceRoomProxy.
2025-09-11 16:41:19 +01:00
Doug 19189bec06 Add a migration to expire sync sessions so that m.space.* state is up to date. (#4482) 2025-09-09 15:35:32 +01:00
Doug 2f2e6f6226 Revert weak media provider (#4483)
* Revert "Address the real lifetime issue of the SDK's `Client` by making `Context.mediaProvider` weak. (#4466)"

This reverts commit c794144ef1.

* Better docs.
2025-09-08 17:48:58 +01:00
Doug 90504d89c8 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 c794144ef1 Address the real lifetime issue of the SDK's Client by making Context.mediaProvider weak. (#4466)
This reverts commit 927aea4bfe.
2025-09-05 17:18:14 +00:00
Doug 927aea4bfe Workaround: Hold a weak reference to the SDK's Client in MediaLoader so it can be released when clearing the cache. 2025-09-03 17:39:16 +01:00
Doug 049bb7b740 Use the SDK's SpaceService, SpaceRoom and SpaceRoomList. (#4455) 2025-09-01 15:22:37 +01:00
Doug d119964d50 Space flow improvements. (#4430)
* Space flow improvements

- Use a state machine to select a space.
- Add a SpaceFlowCoordinator for recursively presenting subspaces.
- Get the spaceRoomListProxy when tapping on the space so we can indicate failures.
- Fix the total room count in SpaceListScreen.

* Refactor spaceRoom → spaceRoomProxy.

* Add a UI test for the Spaces flow.
2025-08-22 15:49:47 +01:00
Doug 192f4765c3 Remove the share_pos developer option. (#4406) 2025-08-13 08:36:40 +00:00
Doug 4d365e3fd7 Remove unnecessary slidingSyncVersion calls.
It's all native now :D
2025-07-30 14:42:59 +01:00
Doug 5762e1c537 Stop showing the sliding sync proxy alert to any remaining users.
The session will simply fail to restore and the restoration token deleted.
2025-07-30 14:42:59 +01:00
Doug 75bc26d20b Use the maxUploadSize in the media upload screen. (#4359)
* Fix a bug where some files sizes were sent as 0.

* Make FileManger.sizeForItem(at:) a UInt.

The docs specifically say that FileAttributeKey.size returns an unsigned long long so I have no idea why we were returning a Double here…

* Add the maxMediaUploadSize property on ClientProxy.

* Use the maxUploadSize to set a target video size and to show a file too big error.

* Refactor media upload parameter order.
2025-07-29 12:18:53 +01:00
Doug 64978986f2 Add some logs to help debug waiting for rooms. (#4360) 2025-07-28 12:07:04 +00:00
Stefan Ceriu bd49500fa1 Fix various new SDK breaking changes. 2025-07-24 14:55:34 +03:00
Mauro d86d90c15a added a feature flag for share pos + updated the SDK (#4312) 2025-07-10 15:03:03 +02:00
Stefan Ceriu 11c7d07e76 Bump the SDK to v25.06.25-2 which enables (re)storing the sliding sync position in between app runs. 2025-06-25 17:23:22 +03:00
Doug 5b3e045e3c Expose isLiveKitRTCSupported on the ClientProxy. (#4238) 2025-06-23 11:21:36 +01:00
Mauro Romito c8fc4174a6 pr suggestion 2025-06-20 10:07:58 +02:00
Mauro Romito ec2a30c492 show alert when trying to accept invalid invites 2025-06-20 10:07:58 +02:00
Stefan Ceriu 2ee19d609c Pass the thread feature flag into room timelines 2025-06-10 15:09:20 +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
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 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 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
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
Doug 8c9773e4de Refactor SecureBackupControllerListener into SDKListener and use it everywhere. (#4030) 2025-04-16 08:36:57 +01:00
Mauro Romito 9d53b29902 sdk: update to 25.04.14 2025-04-14 14:15:42 +02:00