* Revert "Address the real lifetime issue of the SDK's `Client` by making `Context.mediaProvider` weak. (#4466)"
This reverts commit c794144ef1.
* Better docs.
* 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.
* 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.
* Remove the huge conditional compilation block on AppSettings.
It is still required for the ElementCallBaseURL however.
* Add a feature flag for spaces.
Without them, following the link fails as previously the server could use the server name from the room ID (which in and of itself seems somewhat error prone).
* 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.
* 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>
* 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
* 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
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.
* 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.
* 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.
* Move the rageshakeURL configuration from the BugReportService to AppSettings.
* Refactor Target to return a handle when configuring.
This helps with reconfiguration and removes the @MainActor constraint.
* Merge the AuthenticationServer with the QRCodeLoginService.
* Merge AuthenticationClientBuilderFactory and AuthenticationClientBuilder into AuthenticationClientFactory
The separation is no longer needed now that password/OIDC login and QR code login have a similar API shape.
* Forward JoinedRoomProxy.markAsRead to the timeline
The room version was building a fresh timeline even though we already had one.
* Run swiftformat 0.57.0.