1483 Commits

Author SHA1 Message Date
Doug 6a75d80081 Add the initial implementation for managing spaces. (#4963)
This isn't hooked up into the flows yet.
2026-01-16 15:29:27 +00: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 1feae5100a Tidy up the naming of spaces a bit more. (#4955)
* Rename SpaceListScreen to SpacesScreen

To avoid confusion with the SpaceRoomListProxy.

* Rename SpaceExplorerFlowCoordinator to SpacesTabFlowCoordinator and ChatsFlowCoordinator to ChatsTabFlowCoordinator.
2026-01-14 13:45:25 +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
Doug 334df3f5cd Rename SpaceRoomProxy to SpaceServiceRoom and stop proxying the struct. (#4952)
* Rename SpaceRoomProxy to SpaceServiceRoom.

The underlying type is a struct, we don't need to proxy it.

* Actually stop proxying the SpaceRoom.
2026-01-13 12:00:20 +00:00
Mauro 4cfedefcca Create room redesign and refactor (#4942) 2026-01-12 17:49:31 +00:00
Doug 99e160ddc4 Update dependencies. (#4940)
* Minor dependency updates.

Plus SwiftSyntax 509 → 601

* Update MapLibre to v6.

* Update Sentry to v9.
2026-01-09 16:48:03 +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
Skye Elliot 00dc901ce1 Bump the Rust SDK to v26.01.06 (#4933) 2026-01-08 10:40:00 +00:00
Doug c1bb838517 Add support for linking new devices in the QRCodeLoginScreen. (#4891)
* Adds the remaining parts for showing/scanning a QR code to link a new device.

* Refactor the QRCodeLoginService to work the same way as the LinkNewDeviceService.
2026-01-07 12:18:39 +00:00
Doug 44f88adfb0 Refactor SpaceServiceProxy.joinedSpaces to topLevelSpaces. 2026-01-06 10:57:37 +00:00
Doug 3cbeca82bd Update the SDK and handle the API breaks. 2026-01-06 10:57:37 +00:00
Mauro Romito 88cd816392 implemented a way to filter out roles that can't be assigned to permission, and disable permissions that are above the current power level of the user. 2025-12-19 11:34:21 +01: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
Mauro Romito 57cd5dd794 fix for leaving a space with no joined rooms showing the incorrect subtitle 2025-12-18 13:21:01 +01:00
Mauro Romito b1abb729aa better check if an user can edit addresses 2025-12-18 11:54:23 +01:00
Stefan Ceriu 4bf3d5099c Bump the RustSDK to v25.12.17 2025-12-17 13:57:25 +02:00
Doug 841cdc291a General tidy-up related to QR codes. (#4865)
* Tidy-up Rust to Swift mapping.

* Refactor out a dedicated QRCodeErrorView.

* Use the new QRCodeErrorView for most error state snapshots.

* Simplify QRCodeErrorView structure.

Also updates the background to match the designs.

* Fix a small compile error in the unit tests.
2025-12-16 15:59:59 +00: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
Milton Moura c5f6353769 fix: remove unused MatrixRustSDK imports
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
2025-12-13 10:11:57 +02:00
Milton Moura b4268e0a88 fix: remove unused Kingfisher import
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
2025-12-13 10:11:57 +02:00
Mauro Romito 55e88245f5 handle the case where a non parent joined space is already available in the existing restricted join rule 2025-12-12 12:13:58 +01:00
Doug 4ea1aaecdd Add a Link New Device screen (behind a feature flag). (#4811) 2025-12-11 11:45:23 +00:00
Doug d130dffaf3 Remove eraseToStream now that any AsyncSequence is available to us. (#4836)
* Remove `eraseToStream` now that `any AsyncSequence` is available to us.

* Remove the now unnecessary backport of Mutex.

* Silence a couple more deprecation warnings.
2025-12-10 18:33:15 +00:00
Mauro Romito 13f04d76f7 the sec and privacy screen is only displayed if at least one available action can be displayed. 2025-12-10 17:22:29 +01:00
Stefan Ceriu ffb42752de Bump the RustSDK to v25.12.07 2025-12-07 12:39:00 +02:00
Doug d545a2b904 Fix missing read receipts in the timeline and edits in the room list. (#4807)
* Update the enterprise submodule.

* Update the SDK.
2025-12-02 15:49:23 +00:00
Mauro Romito 656648fc7c drop iOS 17 and removed all #available and #unavaible checks for 17 and 18 2025-12-01 14:19:52 +01:00
Doug 4a38e2cca6 Update the SDK. (#4792) 2025-11-27 21:15:27 +00:00
Doug 62930968f8 Show the last message state in the room list. 2025-11-27 16:43:48 +00:00
Doug dc8f5ef5a9 Enable the latest event sorter. 2025-11-27 16:43:48 +00:00
Mauro Romito 051e5ceda6 updated existing preview tests and added a test for the single space cases
fixed a bug where was not possible to re-select the space members option with unknown spaces.

pr suggestions
2025-11-27 13:19:10 +01:00
Mauro Romito 997353fdec single space access implementation
also added the copies for the single and multiple spaces selection
2025-11-27 13:19:10 +01:00
Doug f2607affd2 Adopt the new latest event API. (#4779) 2025-11-25 11:52:48 +00:00
Mauro Romito 8e52ef363b 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
Doug 022bc76c52 Add @MainActor to some of the hook points. 2025-11-18 16:25:11 +02: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
Mauro Romito f32921ce70 update SDK 2025-11-13 14:05:52 +01:00
Mauro Romito 6bda04ed04 implemented the manage space rooms permission 2025-11-13 14:05:52 +01: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
Doug 2be321862f Fix another bug where the app could crash on launch if the access token had expired. (#4733)
Updates the SDK.
2025-11-11 15:29:23 +00:00
Mauro Romito beb7900017 Always show security and privacy, and just hide the knocking jojn rule option through the feature flag 2025-11-11 12:31:04 +01: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 096e2d1713 Space Settings: Leave Room (#4700)
* Implementation for all navigations inside the space settings aside the left space action

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

* refactored the leave space view to use its own view model

# Conflicts:
#	ElementX.xcodeproj/project.pbxproj

* implemented the leave space view model also in the settings screen, and corrected some tests

* reusing the details coordinator for the space settings screen

* leave space from settings implemented

* fix project

* minor pr fixes

* code improvements
2025-11-07 12:11:21 +01:00
Mauro Romito 6dee4176f2 pr suggestions and implemented a simpler way to clear the route, that always brings back to the initial coordinator 2025-11-06 12:57:39 +01:00
Doug 419c18cabb 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:
https://github.com/element-hq/matrix-rust-components-swift/commit/3f0075fb8acaf202755512dfbafc28024e5125b2
2025-11-03 19:09:31 +00:00
Mauro dc9ab56972 Space Settings UI tweaks (#4678)
* design tweaks for the space settings flow

* pr suggestions

* update proj
2025-10-31 12:52:56 +01:00
Doug 933891614c Introduce a StartChatFlowCoordinator instead of handing a navigation stack to the Screen Coordinator. (#4674)
* Introduce a basic StartChatFlowCoordinator.

* Move the rest of the start chat flow from the screen coordinator into the flow coordinator.

* Add a UI test for the entire start chat flow.

* Refactor CreateRoom… to CreateRoomScreen…
2025-10-30 16:12:56 +00:00