* Replace GrantLoginWithQrCodeHandlerSDKMock with LinkNewDeviceServiceMock.
Add tests for all initial states on the QRCodeLoginScreen.
* Add tests for linking both mobile and desktop devices.
* Add UI tests for linking a new device.
* Don't show the Link Desktop Computer button when running on macOS.
This mirrors the decision to hide the Sign In With QR Code button on the start screen.
* 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.
* Add a LinkNewDeviceService that exposes the SDK's grant QR code login methods.
* Add a flow coordinator for linking a new device.
Changes the presentation too.
* Listen to call decline to stop ringing when declined from other device
* MSC4075 Use expirationTS to define the call ringing window
* Implement ElementCallService tests.
* Update acknowledgements.
* 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>
Also removes an unused `parent` parameter that was missed when removing the parent name and includes some regenerated snapshots that were missed in the last PR.
* Use the via property on SpaceRoom.
* Fall back to the canonical alias as a space room name if needs be.
* Use SpaceRoom.isDirect for computing the name/avatar.
* Pass in the parent space as a workaround for no restricted join rules.
* Listen to call decline to stop ringing when declined from other device
* use proper swift naming convention for Id/ID
* fix Force unwrapping
* fix lint
* An approach without the custom publisher.
* review: correct naming convention
* review: revert some invisible char/tab changes
* add ref to the room proxy in the closure
---------
Co-authored-by: Doug <douglase@element.io>
* Add the JoinRoomScreen into the SpaceFlowCoordinator.
The screen needs further work to make the join work.
* Fix the tests completing the join flow with the right action.
* 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 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.