Commit Graph

2483 Commits

Author SHA1 Message Date
Doug
052d503dee Fix the push animation when selecting a room with the compact layout on iPad.
Also makes sure we don't animate the change of room in the split's detail when using the regular layout
2025-08-08 10:33:08 +01:00
Doug
0685d29fe4 Use @Observable instead of ObservableObject for our NavigationCoordinators. 2025-08-08 10:33:08 +01:00
Doug
2bbba6e4e0 Fix some SwiftLint warnings. 2025-08-08 10:33:08 +01:00
Doug
78f505cbcf Fix a bug when a compact split view doesn't react to a change of root coordinator in the sidebar. 2025-08-08 10:33:08 +01:00
Doug
27757ee5d1 Move the Settings flow from the Chats flow up one level to the UserSession flow. (#4390)
* Add the basis for a state machine to UserSessionFlowCoordinator.

* Move the Settings flow from the Chats flow to UserSession flow.

It now works from the Spaces tab.

* Add a StateMachineFactory and use it to publish the state in the tests.
2025-08-07 12:13:02 +00:00
Doug
5a62dbb0a2 Add a SpaceExplorerFlowCoordinator. (#4383)
* Add a SpaceExplorerFlowCoordinator.

* Project tweaks

- iOS 17.5 so that we can use the simulator.
- Make a Spaces group for common Space related views.
- Fix the tab bar badge colour on iPhone landscape and iPadOS 17 (18 is still wrong 😒)
2025-08-07 12:48:53 +01:00
Doug
2122379c60 Label rageshakes from macOS and report the right operating system. (#4392) 2025-08-07 11:39:29 +00:00
Mauro
979f526f19 Last Owner should edit admins, and not leave when is last (#4372) 2025-08-07 08:40:14 +00:00
Mauro Romito
48bee8c4c3 fix filtering of non spaces
Revert "fix filtering of non spaces"

This reverts commit a45e4726e1712e4c4d2b59157da06c3c95df1c5e.

x
2025-08-05 16:43:43 +02:00
Doug
fead5ff191 Initial setup for the SpaceListScreen. (#4380) 2025-08-05 11:06:26 +01:00
ElementRobot
69223b9601 Translations update (#4381) 2025-08-05 09:05:12 +00:00
Doug
3adf8b0610 Implement tab bar badges, visibility and selection. (#4373) 2025-08-05 09:23:45 +01:00
Doug
974a3ad74f Handle TimelineDiff as an enum with associated values. (#4379)
* Handle TimelineDiff as a true enum.

* Update the SDK.

* Silence some warnings.
2025-08-05 09:23:22 +01:00
Robin
37506cc4c1 Delegate the sending of call notifications to Element Call (#4370)
* Stop sending call notifications manually

The Element Call widget can now assume responsibility for sending them when you start a call.

* Bump Element Call embedded package to v0.14.0

* Delegate the sending of call notifications to Element Call

* Update the SDK.

* Use 'is' prefix for boolean

---------

Co-authored-by: Doug <douglase@element.io>
2025-08-01 18:47:48 +02:00
Mauro
5a87fb4f92 Restore permissions to creator and display them as owners in the list (#4369)
* restore permissions to creator and display them as owners in the list

* improved the code to use actually 5 roles in the app to distinguish a real creator from an owner
2025-07-31 16:52:55 +02:00
Doug
6133a563cf Hide the tab bar whilst we're working on it and add some tests. 2025-07-31 14:09:26 +01:00
Doug
dac804309e Move session related responsibilities from ChatsFlowFlowCoordinator to UserSessionFlowCoordinator.
Specifically: onboarding, session verification and logout.
2025-07-31 14:09:26 +01:00
Doug
a18fc8ff5b Re-introduce a basic UserSessionFlowCoordinator using the NavigationTabCoordinator. 2025-07-31 14:09:26 +01:00
Doug
1503e5aaf1 Rename UserSessionFlowCoordinator to ChatsFlowCoordinator. 2025-07-31 14:09:26 +01:00
Doug
26bc46e6ff Create a NavigationTabCoordinator to manage a TabView. 2025-07-31 14:09:26 +01:00
Mauro
3b8ad24d10 SDK Update + PowerLevels API update (#4366)
* update the sdk, and updated the power levels APIs

Revert "update the sdk, and updated the power levels APIs"

This reverts commit d3b291003d2b6fd6346ef7e445af4970fda62348.

x

* pr suggestions
2025-07-30 14:42:45 +00:00
Doug
ff948e666d Remove the .logoutWithoutConfirmation actions. 2025-07-30 14:42:59 +01:00
Doug
6edb41ebc9 Drop support for the legacy session directory and optional store encryption.
Store encryption became mandatory in #2692
Rust's sessionPath replaced the legacy session directory in #2903
Native sliding sync migration resulted in new restoration tokens for new users in #3071 and later for all users by #3801.
2025-07-30 14:42:59 +01: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
Stefan Ceriu
0915cb81a8 Multi file uploads (#4358)
* Allow MediaPickerScreen users to select the media selection mode (single or multiple)

* Fix cancellation

* Add support for multiple media URLs on the MediaUploadPreviewScreen.

* Support processing more URLs on the `MediaUploadingPreprocessor` and sending more on the `MediaUploadPreviewScreen`

* Add feature flag for `multipleAttachmentUploadEnabled`

* Add a label showing the current preview item index in the MediaUploadPreviewScreen

* Add support for dragging and dropping or pasting multiple items at the same time.

* Support sharing more than one file through the share extension.

* Limit the number of items that can be shared in one go to 5.

* Fix unit tests

* Fix incorrect fatal error when dealing with single selection media pickers.

* Document the `multipleAttachmentUploadEnabled` usage in the context of the MediaPicker.

* Use a task group for processing selected media in the photo library picker.

* Use a task group for processing multiple selected media in the MediaUploadingPreprocessor

* Switch the maximum number of items that can be shared to 10.

* Allow multiple items to be pasted at the same time.
2025-07-30 15:44:05 +03:00
Doug
44de05e185 Add support for Space avatars. (#4362) 2025-07-29 12:20:13 +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
Stefan Ceriu
be6716b30a Update message composer design for unencrypted rooms (#4361)
* Update message composer design for unencrypted rooms.
* Move the encryption banner to the composer toolbar.
2025-07-28 19:21:13 +03:00
Doug
14924a4546 Add some logs to help debug waiting for rooms. (#4360) 2025-07-28 12:07:04 +00:00
ElementRobot
9852a74e52 Translations update (#4357) 2025-07-28 08:48:39 +01:00
Doug
0fb31888ea Re-enable share_pos persistance. (#4355) 2025-07-25 12:12:48 +00:00
Doug
3b4ece5c4a Refactor LoggingTests utilising Rust's new ability to redirect log files at runtime. (#4353) 2025-07-25 08:54:36 +01:00
Stefan Ceriu
3f7e29b406 Flatten out element well known data fetching 2025-07-24 14:55:34 +03:00
Stefan Ceriu
6ef51fa46a Have the EmojiPicker screen take in a TimelineController similar to all the other flows. 2025-07-24 14:55:34 +03:00
Stefan Ceriu
cb6801a6e6 Improve fatal error descriptions when missing room flow coordinator transition TimelineControllers. 2025-07-24 14:55:34 +03:00
Stefan Ceriu
1da0ebb796 Improve attachment sending methods signatures 2025-07-24 14:55:34 +03:00
Stefan Ceriu
2cb5c8aa73 Stop checking the report reason for empty. 2025-07-24 14:55:34 +03:00
Stefan Ceriu
b8a6763d11 Bump the RustSDK to v25.07.23 2025-07-24 14:55:34 +03:00
Stefan Ceriu
e5a0519a9f Enable polls in threads as the SDK supports them now. 2025-07-24 14:55:34 +03:00
Stefan Ceriu
3726bcd012 Fix various new SDK breaking changes. 2025-07-24 14:55:34 +03:00
Stefan Ceriu
23607dd553 Interact with polls through the TimelineController as well (creation still disabled on threaded timeline as it's not yet supported by the SDK) 2025-07-24 14:55:34 +03:00
Stefan Ceriu
0f32d31ea2 Use the new TimelineController message sending methods for sending locations 2025-07-24 14:55:34 +03:00
Stefan Ceriu
3dc56ff8e9 Fix incorrect expectations on TimelineController availability when processing room presentations. 2025-07-24 14:55:34 +03:00
Stefan Ceriu
78cbcc5c26 Use the new TimelineController message sending methods for media uploads. 2025-07-24 14:55:34 +03:00
Stefan Ceriu
75ea2f55c4 Add message sending methods to the TimelineController that will automatically use the correct timeline proxy instance internally. 2025-07-24 14:55:34 +03:00
Stefan Ceriu
808fe4cf62 Reorder the TimelineController send methods 2025-07-24 14:55:34 +03:00
Stefan Ceriu
ed6610f5d4 Fix Cannot explicitly specialize instance method 'deferFulfillment(_:timeout:message:until:) warning 2025-07-24 14:55:34 +03:00
Stefan Ceriu
ed5f991cc7 Remove the threadRootEventID parameter from the actions the ThreadTimelineScreenCoordinator forwards 2025-07-24 14:55:34 +03:00
Stefan Ceriu
a5e1743a78 Remove the threadRootEventID associated value from all the RoomFlowCoordinatorStateMachine states and replace them with a UserInfo passed TimelineController. 2025-07-24 14:55:34 +03:00