* fix(deps): update kotlin to 2.3.0
* Cleanup - remove `datetime` compat version
* Fix several lint issues caused by the Kotlin compiler inference working better (checks in nullables, vars, etc.)
* Fix tests by removing mock in `File.readBytes`, it seems like it's no longer allowed. Using a tmp file works well enough.
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: Jorge Martín <jorgem@element.io>
* Add shared `removeCurrentCall` function to `DefaultActiveCallManager`
This centralises the shared call cancellation logic
* Add regression test for the issue
* Make sure the existing iterations of `flatMapLatest` in `observeRingingCall` get cancelled when the active call is null or not ringing anymore by passing null values, then filtering them out
Previously these kept running even if the `activeCall` was no longer valid
* Move the `timedOutCallJob` cancellation inside `removeCurrentCall` too
* Update metro to v0.6.7
* Replace `@Inject` with `@AssistedInject` where needed
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
* Update kotlin
* Upgrade Metro and add new `@Origin` annotation
* Suppress warnings in overridden method as nothing else would work
* "Fix" quality warnings about reusing the same string literal
* Don't use `compat` version for `datetime` dependency
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
* When joining a call, wait for the `content_loaded` action
This ensures the widget won't be disposed when the user joins a call and loads the lobby screen for room calls
* Upgrade Rust SDK bindings to `v25.09.15`:
This contains important changes to the APIs used to build the EC widget.
* Use the new `intent` parameter correctly, by calculating locally its behaviour based on whether the room is a DM and there is an ongoing call or not.
Using just the `intent` parameter is our end goal, but sadly this is not fully supported by the current EC embedded `v0.15.0`, so we need to add a workaround using the `skipLobby` and `preload` parameters.