Robin
d5efba285b
Fix resource leaks when we stop using a connection
...
The execution of certain Observables related to a local or remote connection would continue even after we stopped caring about said connection because we were failing to give these state holders a proper ObservableScope of their own, separate from the CallViewModel's longer-lived scope. With this commit they now have scopes managed by generateKeyed$.
2025-10-17 12:23:53 -04:00
Robin
717c7420f9
Require ObservableScopes of state holders to be specified explicitly
...
Previously we had a ViewModel class which was responsible for little more than creating an ObservableScope. However, since this ObservableScope would be created implicitly upon view model construction, it became a tad bit harder for callers to remember to eventually end the scope (as you wouldn't just have to remember to end ObservableScopes, but also to destroy ViewModels). Requiring the scope to be specified explicitly by the caller also makes it possible for the caller to reuse the scope for other purposes, reducing the number of scopes mentally in flight that need tending to, and for all state holders (not just view models) to be handled uniformly by helper functions such as generateKeyed$.
2025-10-17 12:23:53 -04:00
Robin
2c66e11a0a
Fix connection tests
...
Removing one of these tests because it was doing a lot of work to test something that was made trivial in b0eb566a4f .
2025-10-14 16:04:52 -04:00
Robin
102e581c41
Serialize updates to the call intent
...
So that the value advertised in your membership can't desync from the actual value if you toggle video too fast.
2025-10-14 15:20:07 -04:00
Robin
b0eb566a4f
Simplify local transport connection state tracking
2025-10-14 14:43:13 -04:00
Robin
2dc6134606
Stick to the term 'transport' rather than 'focus'
2025-10-14 14:38:37 -04:00
Robin
ea17ed7253
Rename 'localTransport' to 'transport', since it's often remote
2025-10-14 14:34:51 -04:00
Robin
9f4e99310b
Elaborate on a TODO for preloading JWT tokens
2025-10-14 14:32:56 -04:00
Robin
625cfa15ff
Move sorting bin calculation into UserMedia
2025-10-14 14:31:35 -04:00
Robin
95069fd3fa
Fix joining call with audio and video muted
2025-10-14 12:19:23 -04:00
Robin
13636b78d9
Replace deprecated CallMembership.sender with userId
2025-10-14 12:07:51 -04:00
Robin
bcbf7a90f0
Initialize preferredTransport$ in a less unusual way
2025-10-14 12:00:00 -04:00
Robin
2de7a20d8a
Remove outdated comment
2025-10-14 11:54:36 -04:00
Valere
a6c4fb4148
review: count as publishing even if not yet connected to LK
2025-10-14 17:47:38 +02:00
Robin
b030d304df
Fix crash during focus switching
2025-10-14 09:29:48 -04:00
Robin
392c51fbf6
Merge branch 'voip-team/rebased-multiSFU' of github.com:element-hq/element-call into voip-team/rebased-multiSFU
2025-10-14 09:22:08 -04:00
Robin
a18700cbcd
Avoid updating membership during focus switch
2025-10-14 09:16:46 -04:00
Valere
93d763f58f
devtool: quick display of focus URL in stats tile
2025-10-14 14:06:54 +02:00
Valere
a9db9c8b59
ErrorHandling: publish connection error handling
2025-10-14 10:46:57 +02:00
Valere
0e1b61a5e8
refactor: Split out all exports of CallViewModel to their own file
2025-10-13 16:24:55 +02:00
Valere
8823be67c5
refactor extract inner classes to their own files
2025-10-13 15:43:12 +02:00
Valere
8e6eb70e5b
refactor: use EnterRTCSessionOptions instead of unnamed bools
2025-10-13 13:52:01 +02:00
Valere
4608d68cd9
Merge branch 'voip-team/rebased-multiSFU' into valere/multi-sfu/connection_states
2025-10-10 15:01:49 +02:00
Valere
6710f4c72a
Test: Fix mocking to fix failing tests
2025-10-10 11:09:41 +02:00
Robin
85ffe68d98
Remove outdated comment
2025-10-08 19:20:21 -04:00
Robin
2c576a7477
Clean up subscriptions in Connection tests
2025-10-08 19:09:27 -04:00
Robin
64c2e5911c
Update outdated comment
2025-10-08 19:09:08 -04:00
Robin
5be3b91509
Fix focus connection state typo, simplify its initialization
2025-10-08 19:09:03 -04:00
Robin
3691e7120d
Restore a hidden 'null' state for the local transport/connection
2025-10-08 17:35:53 -04:00
Robin
8778be8351
Fix doc comment typo
2025-10-08 17:34:33 -04:00
Robin
b1d143720a
Add comments to Async
2025-10-08 17:08:51 -04:00
Robin
c96e81bfd3
Simplify type of audio participants exposed from CallViewModel
2025-10-08 16:42:36 -04:00
Robin
1a4b38cf93
Document ObservableScope.reconcile
2025-10-08 12:54:24 -04:00
Valere
afe004c6e7
Remove un-necessary transport field, already accessible from connection
2025-10-08 14:30:52 +02:00
Robin
669bc76dd5
Replace calls to deprecated resolveActiveFocus
2025-10-08 01:04:58 -04:00
Valere
529cb8a7ec
prettier !
2025-10-07 16:24:02 +02:00
Valere
7437961195
lint: fix import order
2025-10-07 16:12:23 +02:00
Valere
c3c0516f0d
Lint: fix all the lint errors
2025-10-07 16:00:59 +02:00
Valere
597e6782a8
Merge branch 'voip-team/rebased-multiSFU' into valere/multi-sfu/connection_states
2025-10-07 10:33:31 +02:00
Valere
91a366fa2a
tests: Publish connection states
2025-10-06 10:50:10 +02:00
Robin
1fff71ace1
Actually leave the MatrixRTC session again
2025-10-03 21:00:45 -04:00
Robin
1820cac3f6
Create media items for session members not joined to LiveKit
2025-10-03 19:14:48 -04:00
Robin
86fb026be8
Turn multi-SFU media transport into a developer option
2025-10-03 14:43:22 -04:00
Valere
00401ca38a
refactor: PublishConnection extract from giant constructor
2025-10-02 15:15:23 +02:00
Valere
84f95be48d
test: Ensure scope for publishers observer
2025-10-02 13:08:00 +02:00
Valere
0502f66e21
tests: Add publisher observable tests
2025-10-02 12:53:59 +02:00
Valere
dfaa6a33f4
fix lint errors
2025-10-01 17:24:19 +02:00
Valere
e8bf817f88
tests: end scope tests
2025-10-01 16:39:21 +02:00
Valere
6a1f7dd057
ConnectionState: test livekit connection states
2025-10-01 15:23:24 +02:00
Valere
22900161d6
extract common test setup
2025-10-01 14:47:45 +02:00