* Simplify session verification:
- Reuse Rust `Client` instances created on the login process so we don't need to restore one right before the session verification.
- Remove unnecessary sources of verification state updates.
- Add an intermediate FTUE flow step which will display an indeterminate progress indicator instead of a blank screen.
* Remove unnecessary workaround: the SDK should already handle this
* Add regression tests for noop analytics service usage.
* Add `services.analytics.noop` module to the test dependencies
---------
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Update dependency org.matrix.rustcomponents:sdk-android to v0.2.60
* Fix SDK API breaks:
- Map new `QueueWedgeError` cases.
- Add `MediaUploadOnSendQueue` feature flag enabled on debug and nightly builds: this will by used by `Timeline.send*` media functions fot its new `useSendQueue` parameter.
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Add more log to the state machines
Ensure the block cannot be cancelled, else if the Rust SDK emit a new state during the API execution, the state machine may cancel the api call.
Let VerificationFlowState values match the SDK api for code clarity.
Rename sub interface for clarity.
Migrate tests to the new FakeVerificationService.
* Bump rust-sdk version to rust-sdk 0.2.57
* rust sdk update: Support persisted WedgeQueueError
* Trust & Decoration | Support new expected UTD causes
* Room Subscribtion settings not needed anymore (see https://github.com/matrix-org/matrix-rust-sdk/pull/4159)
* File/Attachement upload: update to support `storeInCache`
* feat(knock): update API to use reason and serverNames
* Add another `Konsist` exception
* Update screenshots
---------
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Adapt to changes in the SDK
* Update dependency org.matrix.rustcomponents:sdk-android to v0.2.50
* Use lambda instead of overriding the `EventDebugInfoProvider` interface
* Fix test proposal.
We may find a better way to compare data class instance if we need to do more comparison in the future...
---------
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Add `InvitedRoom` to wrap Rust SDK Rooms in 'invited' membership state.
At the moment, this is a wrapper that allows us to call `Room.leave()` without having to initialise the room's timeline (which is impossible).
* Add `MatrixRoom.getInvitedRoom(roomId)` to get one of these rooms.
Also, `RustRoomFactory` now has a `createInvitedRoom` method for this.
* Adapt `AcceptDeclineInvitePresenter` to use the new APIs.
* Add `MatrixClient.isSlidingSyncProxySupported` function
* Update localazy strings
* Modify `ErrorDialog` to have an `onSubmit` call, which will be used for the submit action.
Also make the title text optional and dismissing the dialog by tapping outside/going back configurable.
* Check if a forced migration to SSS is needed because the proxy is no longer available.
In that case, display the non-dismissable dialog and force the user to log out after enabling SSS.
* Enable native/simplified sliding sync by default.
* Refactor the login to make sure we:
1. Always try native/simplified sliding sync login first, if available.
2. Then, if it wasn't available or failed with an sliding sync not supported error, try with the proxy instead (either discovered proxy or forced custom one).
* Move logic to `LoggedInPresenter` and the UI to `LoggedInView`
* Update screenshots
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>