Commit Graph

2942 Commits

Author SHA1 Message Date
Valere 273fff20bd review: add comment 2026-03-09 09:12:03 +01:00
Valere 5165e95d82 fix: default to cover is size are 0 2026-03-02 15:38:43 +01:00
Valere adc329a7e7 post merge fix 2026-03-02 14:41:47 +01:00
Valere c199d00300 Merge branch 'livekit' into valere/auto_fit_based_on_video_ratio 2026-03-02 14:31:47 +01:00
Robin 0ce24929dc Add TODO to clean up encryption status code 2026-02-27 17:12:24 +01:00
Robin 9930288d1f Move observeInboundRtpStreamStats$ into the appropriate file 2026-02-27 17:08:04 +01:00
Valere ae8b1f840f add missing mocking 2026-02-26 17:02:43 +01:00
Valere 1de8d93b4b feat: video auto fit based on video stream size 2026-02-26 16:28:37 +01:00
Robin 6b51b7dc58 Split MediaViewModel into multiple files 2026-02-25 22:41:28 +01:00
Robin 6995388a29 Convert media view model classes to interfaces
Timo and I agreed previously that we should ditch the class pattern for view models and instead have them be interfaces which are simply created by functions. They're more straightforward to write, mock, and instantiate this way.

The code for media view models and media items is pretty much the last remaining instance of the class pattern. Since I was about to introduce a new media view model for ringing, I wanted to get this refactor out of the way first rather than add to the technical debt.

This refactor also makes things a little easier for https://github.com/element-hq/element-call/pull/3747 by extracting volume controls into their own module.
2026-02-25 14:47:43 +01:00
Robin bc238778ad Make the type of participant$ stricter
It is, in fact, required to be a behavior.
2026-02-18 14:01:55 +01:00
Robin 9d37125677 Only expose RTC backend identity debug info where we actually use it
We only ever inspect the RTC backend identity of user media tiles. So it only needs to be exposed on the user media view model.
2026-02-18 13:46:18 +01:00
Robin d87c3293c9 Make one-on-one layout media types stricter 2026-02-18 13:44:20 +01:00
Timo ba95780813 Merge pull request #3734 from element-hq/robin/local-transport
Build / build_full_element_call (push) Failing after 2m6s
Build & publish embedded packages for releases / Versioning (push) Successful in 2s
Test / Run unit tests (push) Failing after 3m10s
Upload translation files to Localazy / upload (push) Failing after 22s
Test / Run end-to-end tests (push) Failing after 7m34s
Build & publish embedded packages for releases / build_element_call (push) Failing after 10m39s
Build & publish embedded packages for releases / Publish tarball (push) Failing after 27s
Build / deploy_develop (push) Has been skipped
Build / docker_for_develop (push) Has been skipped
Build & publish embedded packages for releases / Publish NPM (push) Failing after 1m25s
Build & publish embedded packages for releases / Publish Android AAR (push) Failing after 1m3s
Build & publish embedded packages for releases / Update release notes (push) Successful in 1m15s
Build / build_sdk_element_call (push) Failing after 2m35s
Build / build_embedded_element_call (push) Failing after 10m17s
Build & publish embedded packages for releases / Publish SwiftPM Library (push) Failing after 1m30s
Logically separate the advertised transport from the active transport
2026-02-16 15:21:28 +01:00
Robin 4508002947 Test local transport code in oldest member mode 2026-02-13 14:06:44 +01:00
Robin 2a56830426 Fix existing LocalTransport tests 2026-02-13 14:06:44 +01:00
Robin 6cf859fd9e Fix resource leak due to unsafe scope reference 2026-02-13 12:40:12 +01:00
Valere 92992df7df test: ensure ragelogger resist to JSON.stringify throws 2026-02-11 13:56:42 +01:00
Robin 13d131c2e9 Logically separate the advertised transport from the active transport
To correctly implement the legacy "oldest membership" mode, we need the code to be more nuanced about the local transport. Specifically, it needs to allow for the transport we advertise in our membership to be different from the transport that we connect to and publish media on. Otherwise, if these two are yoked together, members will resend their memberships whenever an SFU hop occurs, which an attacker could use to cause an amplified wave of state changes.
2026-02-11 13:47:15 +01:00
Valere 0d24995c3e add defensive coding against JSON.stringify 2026-02-10 17:46:58 +01:00
Valere 1e9f2e6282 fix: Simplify log causing stringify TypeError on widget mode 2026-02-10 17:24:01 +01:00
Timo a329ae0ad1 Merge pull request #3720 from element-hq/toger5/sdk-improvements-only
[MatrixRTC SDK] improvements - compatible with custom rtc application
2026-02-09 09:50:16 +01:00
Robin a0209eb433 Add debug logs to generateItems
It's always worth having logs for when state holders are created or destroyed (these are often the most interesting things happening in the application), so I thought it would be nice to have generateItems always log for you when it's doing that.
2026-02-06 13:26:02 +01:00
Timo K 42efc05bd0 Add more granular leave/join api 2026-02-05 06:06:15 +01:00
Valere 809186a2e7 test: test requesting send message permission in initialize widget 2026-02-04 21:16:50 +01:00
Timo K 33f6271d13 sdk improvements - compatible with custom rtc application
- add local member
 - add optional make sticky
 - default to video not enabled
 - allow sending matrix events
2026-02-04 20:06:26 +01:00
Timo 97ee4630b0 Revert "[WIP] SDK target improvements" 2026-02-04 08:51:01 +01:00
Valere 7beafcac92 Merge branch 'livekit' into toger5/sdk-improvements 2026-02-03 16:32:36 +01:00
Valere Fedronic 5563f30bf2 Merge pull request #3705 from element-hq/toger5/fix-test-no-more-legacy-ring
[Matrix2.0 compatibility] stop advertising `livekit_alias`, use `"ROOM"` slot_id (backwards compat), stop sending deprecated notify
2026-02-03 16:26:52 +01:00
Valere 9d8ebf8ef3 fix import 2026-02-03 15:37:41 +01:00
Valere a0ad238952 fix: DidSendCallNotification is not emitting array anymore 2026-02-03 15:29:19 +01:00
Timo K 18b771e620 Allow sending room events in rtc sdk 2026-02-03 11:10:57 +01:00
Timo K 506b85770b Merge branch 'livekit' into toger5/sdk-improvements 2026-01-31 11:53:15 +01:00
Valere 8ee098eef1 review: quick comment 2026-01-29 15:46:41 +01:00
Valere a7bd2d3668 review: comment and better type 2026-01-29 14:58:54 +01:00
Valere ca7c8a2f11 Send livekit_alias in multi sfu with state 2026-01-28 16:42:07 +01:00
Valere 146375e320 Only remove livekit_alias in sticky events 2026-01-28 16:33:52 +01:00
Valere 992fb9093c fix test and use anonymised alias 2026-01-28 15:25:19 +01:00
Valere 99ccfcfbd4 fix linter 2026-01-28 15:18:29 +01:00
Valere 420304fd9d fix test mocking 2026-01-28 15:16:02 +01:00
Valere 81cb89e599 fix test mocking 2026-01-28 15:11:10 +01:00
Valere ee8b27837a fix lint issues 2026-01-28 14:38:23 +01:00
Valere a645bbe0ba fix bad import 2026-01-28 14:29:16 +01:00
Valere 4c7db0147e The advertised livekit_alias in membership is deprecated 2026-01-28 14:22:21 +01:00
Timo K c1b2346e22 Update tests based on new js-sdk changes
(no more legacy notify event)
2026-01-27 16:49:25 +01:00
Timo K 92a4150d6d more/better logging 2026-01-26 15:43:07 +01:00
Timo K d55464f3ab build sdk 2026-01-25 14:32:30 +01:00
Timo K 31823dbd53 improve widget tests
(this we might want to cherry pick in its own PR)
2026-01-25 14:24:31 +01:00
Timo K 220fc51eb5 add initializeWidget to tests. 2026-01-22 19:38:39 +01:00
Timo K b754106feb Add widget.ts tests 2026-01-22 19:23:08 +01:00