* 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>
* 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.
* Revert "Address the real lifetime issue of the SDK's `Client` by making `Context.mediaProvider` weak. (#4466)"
This reverts commit b9d1558216.
* 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.
* 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.
The room list items no longer hold any timeline instances and they can now be created through the normal `room.timelineWithConfiguration` mechanism.
This also means that we can move the UTD hook away from the sync service and into the client itself but setting it is now fallible as it can only be set once.
- adopt new async throwing methods
- use the sdk side TimelineStart virtual timeline item
- remove async from `directRoomForUserID` as it's not async on the rust side
- remove async from `retryDecryption` as it's spawning not blocking on the rust side
* Bump the RustSDK to v25.03.11
* Replace oidc login prompt with nil following the changes from https://github.com/matrix-org/matrix-rust-sdk/pull/4761
```
/// * `prompt` - The desired user experience in the web UI. No value means
/// that the user wishes to login into an existing account, and a value of
/// `Create` means that the user wishes to register a new account.
```
* Fix trailing closure warnings
* Update the client proxy after making `getNotificationSettings()` and `cachedAvatarUrl()` async (they used to be blocking on the rust side).
* Move `Room.isEncrypted` to the info publisher and manually update the encryption state when creating the room.
* Bump the SDK again to v25.03.12 - This introduces a new way to configure the tokio runtime that we can use to have extensions use less memory
- introduce a new Target struct that takes care of setting up rust services (tracing and tokio) for our various targets
- cleanup MXLog and friends
* Address PR comments
* Bump the SDK again, switch back to using `.consent` as the OIDC login prompt (which was reintroduced in matrix-org/matrix-rust-sdk/pull/4791)
- throw an error during the init
- to have its init directly instantiate the sync service and the providers
Update ElementX/Sources/Services/UserSession/UserSessionStore.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
renamed
- adopt the new timeline configuration which now exposes read receipts tracking. For now it should be set to `false` for all timelines except the live one, which still gets configured properly on the rust side through `init_timeline`. Eventually we will converge on this configuration API for all of them.
- also adopt the new rust side cache clearing method and remove our own
* trying to debug why sometimes the value
is missing even if it appears in the room list
* static room provider implementation
* set the page size through the init
* removed reset filters on .cancel
since using the sop function is safer
* added a way to render the room and the message
pills, but is WIP
* permalinks now get converted into pills!
* fixed an issue where room address mentions
were not adding a URL properly but a string
* updated tests
* c
* Revert "c"
This reverts commit 5c80252fa23dba7e4d44f2a07fbf1e9500e37c82.
* updated tests
* more tests
* created APIs to get a specific RoomSummary
given the id or the alias
* small mention builder improvement
* pr suggestions
* Introduce a `UserIdentityProxy` and have it combine upstream methods into an easy to digest `UserIdentityVerificationState`. Use it in a dedicated `VerificationBadge` UI component
* Show a DMs counterpart verification state in the room header
* Show a warning on the room details `People` entry when there are identity verification state violations on any of the members.
* Show verification badges in the room member list
* Show a withdraw verification section on the room member details for users that have pinning violations.
* Remove the verification section from the profile screen as there's no reliable way to keep it up to date
- the underlying Rust SDK Olm Machine can be rebuilt without notice which would break any existing user identity change streams.
* Update preview test snapshots
* added the banned room proxy
and a way to have a consistent loading + a retry alert
* trailing closure
* indent a comment
* push package.resolved
* updated test case
* improved implementation of the unknown state
* forget button in the banned state
* error handling for forbidden access
* added the forget function
fixed DMs, and updated preview tests
* removed banned room proxy
* code polishing and test improvement