* Read and import the secrets from ClassicAppAccounts.
* Record snapshots.
* Add some documentation, tidy up tests and fix the dismissal of the backup instructions.
* Workaround flakey tests (the fulfilments weren't always firing).
* Allow a custom Classic App deep link URL to be configured.
* Lock the LinkNewDeviceScreen to portrait.
* Add cancel buttons to the QR Code errors and handle cancel/startOver correctly.
* Use the shared QRCodeErrorView in the LinkNewDeviceScreen.
* Clarify the different QR Error/ErrorStates a bit more.
* Update snapshots.
* Adds the remaining parts for showing/scanning a QR code to link a new device.
* Refactor the QRCodeLoginService to work the same way as the LinkNewDeviceService.
* 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.
* Make account provider configuration more flexible.
- Change defaultHomeserverAddress to an array of providers (needs UI).
- Add allowOtherAccountProviders to prevent the user from manually entering a provider.
* Refactor QR code scan failures into a common type.
* Validate scanned QR codes against the allowed account providers.
* Hide the login flow on the QR code screen when restricted.
* Add support for account provisioning links and route them to the authentication flow.
* Use the provisioning parameters to configure the authentication flow.
* Add UI tests for the provisioned authentication flow.
* Record new preview snapshots.
* Add unit tests.
* Make the domain configurable in the app settings.
* Use the loginHint in the login screen too.
* 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)
* Adopt new reaction toggling API introduced in matrix-org/matrix-rust-sdk/pull/4127
* Adopt the changes introduced in matrix-org/matrix-rust-sdk/pull/4111: use the new `TimelineUniqueId` type instead of `String` for unique timeline identifiers.
* Bump the RustSDK to v1.0.58.
* Fix unit tests
* Fail configuration of the authentication service if the homeserver doesn't support login.
* Move the ServerSelectionCoordinator logic into the ViewModel.
- Handle the new login alert.
- Add more tests
* Don't query the homeserver until confirming it (or selecting a different one).
* Setup the infrastructure to test AuthenticationService.
Implement basic tests for configuration & password login.
* Use the real AuthenticationService with a mock Client in all of the tests.
* Add tests for the ServerConfirmationScreenViewModel.
* Remove redundant view state and test for it.
* Update the SDK.
* Fix API breaks on send failures and propagate the new type.
* Handle new SDK ShieldState.
* Set up the ClientBuilder's `cachePath` option.
* Delete the cacheDirectory during logout/clearCache.
* Add unit tests for RestorationToken decoding and SessionDirectories generation.
* Replace Rust's Authentication service by building a Client.
* Drop the Proxy from AuthenticationServiceProxy[Protocol].
* Make sure to call abortOIDCLogin.
* Centralise common ClientBuilder code.
* Update the SDK.
* Update SDK package to 1.0.12-alpha.
* Use an app group for storage and stop stripping the http from the homeserver when configuring the service.
* Rename access token to restore token.
* Remove matrix.org server description inline with latest FTUE changes.