* Load `JoinedRoom` in `HomeFlowNode.navigateToRoom`, then pass it to the next navigation nodes
* Add delayed loading indicator for cases when loading the room takes too long
* Avoid an extra FFI call in `RustRoomFactory`.
Use `RoomInfo.membership` instead.
Also use `computation` dispatcher, since it should reduce the delay when switching contexts.
* Remove the dispatcher usage when loading the room in `HomeFlowNode`, we immediately call a method that changes the dispatcher used
* Make sure only a single room is opened at a time
- Add `AnalyticsService.startTransaction(...)` to start a logging transaction that can be uploaded to Sentry if the user enabled the analytics upload.
- Add `AnalyticsTransaction` wrapper to abstract the Sentry ones.
- Added several helper methods to improve the UX around these transactions.
- Then measure:
- Time until the first sync, and how it ended.
- Time until the first rooms are displayed.
- Time to load a room or a preview.
- Time to load a timeline.
This isn't necessary and overrides the existing data previously saved by the SDK, resulting in losing data such as the `Client::server` (the discovery server URL).
In turn, this caused the app to be unable to refresh the server info in some homeservers.
* Add media retention policy.
Add `ByteSize` class to help with conversions between byte units.
* Use bit shifting instead of multiplication
Improve the tests too
* Update dependency org.matrix.rustcomponents:sdk-android to v25.11.11
* Fix API breaks:
- `Client.loginWithQrCode` is now `Client.newLoginWithQrCodeHandler`.
- Rust's `OtherState` can now have `RoomCreate` and `RoomHistoryVisibility` values.
- Fix fixtures
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
* Use the SDK `Client` to check whether a HS is compatible
* Remove usage of unused `WellKnown`, keep `ElementWellKnown`
* Make `HomeServerLoginCompatibilityChecker.check` return `true/false` values to distinguish non-valid homeservers from a failed check
* Use `inMemoryStore` and `serverNameOrHomeserverUrl`
* Do some cleanup of `isValid` and `isWellknownValid`
* Make the debounce for starting the search a bit higher, as checking for the homeservers seems more resource-intensive now
This will display a fallback notification. I don't see how the current code could cause it, but I tried to re-structure it a bit so we don't have nested `use` usages and `timestamp` is fetched ahead of time.