77 Commits

Author SHA1 Message Date
Letro Bot
77d685cf89 Merge upstream/main into main 2026-05-09 14:51:17 +04:00
Doug
945e34baa6 Tweak the font/icon sizes on the Space visibility label. (#5396) 2026-04-17 09:57:18 +00:00
Doug
e3a074b8b2 Remove the Spaces Announcement sheet. (#5376) 2026-04-10 17:49:28 +01:00
Letro Bot
45808fb72d Customize the new chat and space button in home screen 2026-04-10 01:07:36 +04:00
Mauro Romito
1d08e86982 remove appSettings from SpaceScreen 2026-02-26 16:29:52 +01:00
Mauro Romito
465f832ba5 remove space FFs 2026-02-26 16:29:52 +01:00
Mauro
56eec826df Fix A11y tests (#5104)
* replace NavigationStack with ElementNavigationStack to allow the content to be rendered without a NavigationStack in a11y tests

* fix a11y tests

* update xcodeproject

* swiftformat fix

* use iOS 26.1 for CI

* use a wrapper to solve the issue for a11y tests

* ElementNavigationStack only uses the trick in DEBUG mode, and added a swiftlint rule to prevent the usage of NavigationStack
2026-02-13 16:45:58 +01:00
Doug
9b5099bd90 Re-write the space flow state machine configuration and cover it more in UI tests. (#5098)
* Use the old state machine configuration style.

* Test starting the space settings flow in UI tests.

* Test starting the create space room flow in UI tests.
2026-02-12 13:19:20 +00:00
Doug
b89a9dc794 More Space tweaks. (#5086)
* Centre align the title in the space filter cells.

* Update SpaceRoomCell and SpaceHeaderView with consistent content.
2026-02-10 13:44:04 +00:00
Mauro Romito
ff6df211d6 renamed function to resetRoomList 2026-02-09 18:22:41 +01:00
Mauro Romito
ac86d4cfbc 1. Updated the space selection UI 2. Paginate spaces after room creation 3. Pre-selected space creation defaults to space members access. 2026-02-09 18:22:41 +01:00
Doug
94220bf40e Space tweaks. (#5068) 2026-02-09 11:54:41 +00: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
Mauro Romito
d2fa71c37f refactored the flows to use a state and an event for the transfer ownership screen 2026-01-28 15:42:17 +01:00
Mauro Romito
b3a4929243 implemented the presentation of transfer ownership screen from the space flow and update UI and preview tests 2026-01-28 15:42:17 +01:00
Mauro Romito
ff4e90465e implemented the logic to transfer ownership from a space 2026-01-28 15:42:17 +01:00
Stefan Ceriu
04053ae69b Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Doug
cdf615ae5f Remove the protocol for SpaceServiceRoom given its a struct type. (#5000)
* Remove the protocol for SpaceServiceRoom given its a struct type.

* Fix a few missed mocks in the unit tests.
2026-01-26 09:45:46 +00:00
Doug
06e1a71098 Make sure the selected/available rooms are updated when adding space children fails part way through. (#4997)
* Make sure the available rooms are updated if adding space children fails part way through.

* Additionally handle the case where removing rooms fails part way through.
2026-01-23 17:36:26 +00:00
Mauro Romito
80227edb04 updated the SDK and included the fix for leaving a space when the last owner of a non empty space 2026-01-23 17:49:07 +01:00
Mauro Romito
8090c4a078 added the create button in the empty state of the space screen and refactored some code 2026-01-23 15:18:55 +01:00
Mauro Romito
2fdc37ce72 implemented the flow to create room in a selected space 2026-01-23 15:18:55 +01:00
Doug
ed892fee94 Add the empty state to SpaceScreen. (#4985)
* Rename PaginationState.timelineEndReached to PaginationState.endReached.

* Rename PaginationState to TimelinePaginationState.

Also renames PaginationStatus to PaginationState so that a TimelinePaginationState consists of the forward and backward pagination states.

* Add the empty state to SpaceScreen.

Only has 1 of the 2 buttons for now.
2026-01-22 12:37:34 +00:00
Doug
2720791dc1 Replace a debugging visibility check with the real condition. (#4982) 2026-01-21 17:16:23 +00:00
Doug
e6efdf0e82 Include the Members and Add Rooms screens in the spaces UI tests. (#4981)
* Expand the space flow UI tests to include the add rooms screen.

Also fixes some failures in these tests due to the room/space title now being a button.

* Expand the space flow UI tests to include the space members screen.

* Reset AppSettings before running preview tests.
2026-01-21 15:24:54 +00:00
Doug
8da856e620 Add space management to the flows. (#4978)
* Add the menu entries to add/remove rooms to/from a space.

* Add a user indicator to SpaceAddRoomsScreen.

* Reset the SpaceRoomListProxy after adding/removing any children.

* Calm the animations down a bit when entering EditMode on the SpaceScreen.
2026-01-21 12:46:02 +00:00
Stefan Ceriu
f369a30a64 Fix the setting button's layout and animation on liquid glass 2026-01-21 11:20:39 +02:00
Doug
9dab13eed5 Use more Liquid Glass in the room/space screen toolbars (#4965)
* Add a glass style to the Room/Space header view on iOS 26.

* Update snapshots and fix the join call button.
2026-01-16 19:29:27 +00:00
Doug
b009b8ed66 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
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
ce53a7a5c2 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
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
Doug
a19c7fff1f 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
2d1d62552a Empty spaces list screen (#4936)
* Added an FF to create spaces + empty spaces list state

* removed learn more button and improved spacing

* updated toolbar for chats and spaces to match ios 26 designs
2026-01-09 15:17:43 +01:00
Doug
a78a923b0d Add a dedicated target for SDK mocks to avoid type name conflicts on the generated code. 2026-01-06 10:57:37 +00:00
Doug
9304c3cc65 Refactor SpaceServiceProxy.joinedSpaces to topLevelSpaces. 2026-01-06 10:57:37 +00:00
Mauro Romito
e95d0531fb tapping on the space title will open the settings (if permissions are available) 2025-12-19 11:20:06 +01:00
Mauro Romito
b08d4c9457 fix for leaving a space with no joined rooms showing the incorrect subtitle 2025-12-18 13:21:01 +01:00
Mauro Romito
8e594807f5 use the right check to show sec n privacy section in space settings 2025-12-18 11:54:23 +01:00
Mauro
6b19d109c7 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
cddb4d4053 Space Settings - Navigations (#4691)
* Implementation for all navigations inside the space settings aside the left space action

* pr suggestions
2025-11-05 18:07:44 +01:00
Mauro Romito
806382f5c9 reused the room details view model for the space settings screen 2025-10-31 15:46:16 +01:00
Mauro
0b3633ea57 Space Settings UI tweaks (#4678)
* design tweaks for the space settings flow

* pr suggestions

* update proj
2025-10-31 12:52:56 +01:00
Mauro Romito
1e124792de pr suggestions 2025-10-30 15:23:03 +01:00
Mauro Romito
fdc741da2e Basic implementation of the UI, navigation wil be implemented in the next PR 2025-10-30 15:23:03 +01:00
Mauro Romito
943e550658 implemented the basics of the flow coordinator, the logic and the navigation flow to get to the space settings view 2025-10-30 15:23:03 +01:00
Mauro
23194107bb Display members of a space (#4629)
* Present members of a space

* present the members modally from the space

* Implemented a room members flow coordinator to make such flow more modular and reusable

this is required since we will need to reuse this module also in the space settings, and later we could also replace it in the RoomFlowCoordinator.

* the implementation to support at least the SpaceFlowCoordinator is done a follow UP should do the refactor.

* remove modal usage from the flow, we want to always be a navigation flow

* Improved and implemented the room navigation in the members flow coordinator

* pr suggestions and refactored the start chat flow and the invite screen

* updated copies for managing room members

* Update ElementX/Sources/Screens/Spaces/SpaceScreen/SpaceScreenViewModel.swift

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

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2025-10-27 13:17:50 +01:00
Doug
31bcedcc7f Use the editor toolbar role on iOS 26 instead of left aligning the header by frame. (#4647)
The weird back button animation doesn't happen anymore 🥳
2025-10-22 11:36:14 +01: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
Stefan Ceriu
ecd835f6a0 Fix some small warnings 2025-10-14 18:32:37 +03:00