Commit Graph

309 Commits

Author SHA1 Message Date
Stefan Ceriu
e375950ba1 Remove the shouldDisambiguateDisplayNames parameter from the RoomEvent and RoomStateEvent string builders. 2026-04-02 12:30:43 +03:00
Stefan Ceriu
d27b6697a9 Introduce the RoomThreadListServiceProxy and expose it from the RoomProxy
Also update the sdk and app mocks and add a simple `RoomThreadListServiceProxyMock`

# Conflicts:
#	ElementX.xcodeproj/project.pbxproj
#	ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
#	SDKMocks/Sources/Generated/SDKGeneratedMocks.swift
#	project.yml
2026-03-31 18:21:14 +03:00
Stefan Ceriu
0104ad06aa 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
Doug
e1d2c1d415 Update the SDK. (#5141) 2026-02-24 16:29:30 +00:00
Mauro Romito
bf9c54b1e2 make .invited the default history visibility of a dm 2026-02-16 10:45:42 +01:00
Doug
77496934ce 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
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
Stefan Ceriu
fcee23d519 Clean up the Signposter implementation and align on new metrics 2026-01-30 13:19:05 +02:00
Stefan Ceriu
04053ae69b Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Mauro Romito
758f1c03c2 pr suggestion rename isPrivate to isVisibilityPrivate 2026-01-22 16:40:25 +01:00
Mauro Romito
4fba0d1ce6 started implementing the logic behind the access type and the creation parameters 2026-01-22 16:40:25 +01:00
Mauro
56f6fd294a 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
9b03ceb7c6 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
2b28b70871 Create room redesign and refactor (#4942) 2026-01-12 17:49:31 +00:00
Doug
15eae621b2 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
5d57b21222 Update the SDK and handle the API breaks. 2026-01-06 10:57:37 +00:00
Stefan Ceriu
79b8db8db2 Display the store sizes under the developer options menu 2025-12-19 11:12:36 +02:00
Stefan Ceriu
2880ee9135 Perform client store optimizations when migrating versions. 2025-12-19 11:12:36 +02:00
Doug
8df57abc1e 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
fe9aa48aab Add a Link New Device screen (behind a feature flag). (#4811) 2025-12-11 11:45:23 +00:00
Doug
7e3efb4ce5 Adopt the new latest event API. (#4779) 2025-11-25 11:52:48 +00:00
Stefan Ceriu
c7f3e8243a 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
15720558ef Silence some warnings. (#4747) 2025-11-14 16:59:54 +00:00
Doug
cbcb61d8f3 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
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
940801f400 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
c6f3de8be7 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
dd387a7aa2 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 b9d1558216.

* Better docs.
2025-09-08 17:48:58 +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
b9d1558216 Address the real lifetime issue of the SDK's Client by making Context.mediaProvider weak. (#4466)
This reverts commit 8d069fb74c.
2025-09-05 17:18:14 +00:00
Doug
8d069fb74c 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
b731c9f2d0 Use the SDK's SpaceService, SpaceRoom and SpaceRoomList. (#4455) 2025-09-01 15:22:37 +01:00
Doug
da77e30be6 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
624f74816e Remove the share_pos developer option. (#4406) 2025-08-13 08:36:40 +00:00
Doug
442df0e0bc Remove unnecessary slidingSyncVersion calls.
It's all native now :D
2025-07-30 14:42:59 +01:00
Doug
85cefdac97 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
05fc508632 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
14924a4546 Add some logs to help debug waiting for rooms. (#4360) 2025-07-28 12:07:04 +00:00
Stefan Ceriu
3726bcd012 Fix various new SDK breaking changes. 2025-07-24 14:55:34 +03:00
Mauro
5837ebdca3 added a feature flag for share pos + updated the SDK (#4312) 2025-07-10 15:03:03 +02:00
Stefan Ceriu
009da42b08 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
797d5fd022 Expose isLiveKitRTCSupported on the ClientProxy. (#4238) 2025-06-23 11:21:36 +01:00
Mauro Romito
a80e8ca9b8 pr suggestion 2025-06-20 10:07:58 +02:00
Mauro Romito
ec944a99bf show alert when trying to accept invalid invites 2025-06-20 10:07:58 +02:00
Stefan Ceriu
a03be6ec6a Pass the thread feature flag into room timelines 2025-06-10 15:09:20 +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
f56b060250 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
ebbe0eb646 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
f6c2405427 Remove the RoomListItem from the JoinedRoomProxy 2025-05-26 13:22:57 +03:00
Stefan Ceriu
c7e86a3c0f Apply the logic from the previous commit and the JoinRoomProxy to the KnockedRoomProxy 2025-05-26 13:22:57 +03:00