Commit graph

419 commits

Author SHA1 Message Date
Šimon Brandner
ce1671a117
Merge remote-tracking branch 'upstream/dbkr/openid' into SimonBrandner/feat/url
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-07-04 17:43:40 +02:00
Šimon Brandner
26657a5de9
Merge remote-tracking branch 'upstream/livekit' into SimonBrandner/feat/url 2023-07-04 16:26:54 +02:00
David Baker
4524b418ff Merge remote-tracking branch 'origin/livekit' into dbkr/openid 2023-07-03 17:03:58 +01:00
David Baker
f2eabec382 Be stricter with what is passed in to the openid components 2023-07-03 16:21:56 +01:00
Šimon Brandner
5255158090
Fix new grid layout
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-07-03 10:03:24 +02:00
Robin Townsend
17450b4531 Fix big grid crashing due to missing React import
by fixing the cause rather than the symptom: this upgrades the code to use the new, recommended JSX transform mode of React 17+, which no longer requires you to import React manually just to write JSX.
2023-06-30 18:21:18 -04:00
David Baker
23b8a61e7a Provide sfu config via context 2023-06-30 18:12:58 +01:00
David Baker
4548c1af23 Merge remote-tracking branch 'origin/livekit' into dbkr/openid 2023-06-30 10:11:53 +01:00
Šimon Brandner
4a90eb341f
Merge pull request #1167 from vector-im/SimonBrandner/feat/remove-avatar 2023-06-29 18:10:57 +02:00
Šimon Brandner
8cafe0f25d
Remove roomAvatarUrl from MatrixInfo
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-06-29 08:03:30 +02:00
David Baker
a0b342069d Merge remote-tracking branch 'origin/livekit' into dbkr/openid 2023-06-28 16:40:59 +01:00
David Baker
8996aa772c Initial support for getting SFO config using OIDC
* Change `jwt_service_url` to `livekit_service_url`
 * Make it a POST so we can send the openID token sensibly
 * Get an OIDC token & pass it with the request
 * Read the SFU URL from there too

and convert the auth server accordingly, althugh with no actual OIDC
support yet, it just issues tokens blindly just as before and ignores
the openid token completely.

We'll need to update configs & the JWT service before merging this.
2023-06-28 16:35:56 +01:00
Robin Townsend
1c6ef97457 Improve typing around layouts and grid components 2023-06-28 10:59:36 -04:00
Robin Townsend
cc35f243f2 Make NewVideoGrid support arbitrary layout systems
In preparation for adding layouts other than big grid to the NewVideoGrid component, I've abstracted the grid layout system into an interface called Layout. For now, the only implementation of this interface is BigGrid, but this will allow us to easily plug in Spotlight, SplitGrid, and OneOnOne layout systems so we can get rid of the old VideoGrid component and have One Grid to Rule Them All™.

Please do shout if any of this seems obtuse or underdocumented, because I'm not super happy with how approachable the NewVideoGrid code looks right now…

Incidentally, this refactoring made it way easier to save the state of the grid while in fullscreen / another layout, so I went ahead and did that.
2023-06-27 14:20:45 -04:00
Šimon Brandner
3a2cee581e
Get LK info from the js-sdk
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-06-27 17:28:50 +02:00
Robin
e625894ae9
Merge pull request #1146 from robintown/fullscreen-and-pip
Bring back fullscreen and picture-in-picture modes
2023-06-27 09:22:19 -04:00
David Baker
2caaa15520 Fix username / displayname naming confusion 2023-06-27 12:23:19 +01:00
Robin Townsend
276684c103 Bring back fullscreen and picture-in-picture modes
We're now using LiveKit's magic RoomAudioRenderer component to make sure everyone's audio is rendered regardless of whether they have a tile in the DOM.
2023-06-26 13:48:41 -04:00
Robin Townsend
25eb56418d Show the room avatar rather than the user avatar in the header
It's supposed to be the room avatar; this was a regression introduced during the LiveKit hack week.
2023-06-23 16:20:15 -04:00
Robin Townsend
45915ed67e Fix device selection never completing in widget mode
By reinstating some of the code from the full mesh branch that was there to handle this
2023-06-23 14:17:51 -04:00
Robin Townsend
a2c40561db Fix a likely bug with audio inputs and outputs getting mixed up? 2023-06-18 14:26:50 -04:00
Robin Townsend
fc307d0aba Don't show ghost tiles while connecting 2023-06-18 14:26:27 -04:00
Robin Townsend
c3c26e235b Merge branch 'grid-interactions' into livekit-experiment 2023-06-18 01:13:45 -04:00
Robin Townsend
391ba5196c Make screenshares appear near the presenter's tile and be larger 2023-06-18 00:47:37 -04:00
Enrico Schwendig
f13c0f07cc
Spotlite tile order (#1118)
* Manage spotlight tile slots for speaker and presenter
2023-06-16 18:57:47 +02:00
Robin
4fd1264d12
Merge pull request #1123 from robintown/connection-indicators
Hide connection quality indicators behind a developer setting
2023-06-16 12:56:36 -04:00
Daniel Abramov
5b4787cef6
LiveKit Device Usage Refactoring (#1120)
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Timo K <toger5@hotmail.de>
2023-06-16 18:07:13 +02:00
Robin Townsend
a96d70eefb Hide connection quality indicators behind a developer setting
Calls are an environment with high cognitive load, so it's important that we keep extra UI elements like these to a minimum and stick to what's been explicitly designed. I assume that this was here as a developer feature to diagnose reliability of the back end components, which is perfectly fine, so I've kept it behind a developer setting rather than fully removing it.
2023-06-16 10:59:57 -04:00
Robin Townsend
1b3539e873 Fix speaking indicators showing up when they shouldn't
This fixes two edge cases:

- Screenshares should never have a speaking indicator
- Speaking indicators should be hidden in 1:1 calls
2023-06-16 10:35:29 -04:00
Timo
160d1f23a9
fi Crash if no device is available (#1116)
Signed-off-by: Timo K <toger5@hotmail.de>
2023-06-15 00:06:51 +02:00
Daniel Abramov
0445c47c02 Merge branch 'livekit-experiment' into livekit-load-test 2023-06-14 22:14:06 +02:00
Daniel Abramov
520f241efa Merge branch 'livekit-experiment' into livekit-load-test 2023-06-14 21:12:20 +02:00
Timo
41f2728724
Device from lobby to call (#1110)
* respect mute state set in lobby for call

Signed-off-by: Timo K <toger5@hotmail.de>

* move device from lobby to call

Signed-off-by: Timo K <toger5@hotmail.de>

* save device in local storage

Signed-off-by: Timo K <toger5@hotmail.de>

* local storage + fixes

Signed-off-by: Timo K <toger5@hotmail.de>

* device permissions

Signed-off-by: Timo K <toger5@hotmail.de>

---------

Signed-off-by: Timo K <toger5@hotmail.de>
2023-06-14 19:20:53 +02:00
Robin Townsend
357e1f828a Fix spotlight layout 2023-06-14 11:37:07 -04:00
Enrico Schwendig
20c9c09258
Build EC room use method (#1108)
* Build custom useRoom
2023-06-14 15:03:38 +02:00
Robin Townsend
2916eb45aa Switch to the new grid once there are >12 participants 2023-06-13 12:54:24 -04:00
Robin Townsend
4d5c3cd773 Merge branch 'main' into livekit-experiment 2023-06-13 12:33:46 -04:00
Daniel Abramov
6436e66adb Merge branch 'livekit-experiment' into livekit-load-test 2023-06-13 17:23:42 +02:00
Robin Townsend
1207ecc9d7 Decouple video grid from video tile components
This is an attempt to address the feedback in https://github.com/vector-im/element-call/pull/1099#discussion_r1226863404 that the video grid and video tile components have become too tightly coupled. After this change, the only requirements that the video grid makes of its child components are:

- They accept ref, style, and item props
- They attach the ref and styles to a react-spring animated element

Note: I removed the video grid Storybook file, because I'm not aware of anyone using Storybook for development of Element Call beyond Robert, and it would take some effort to fix to work with these changes.
2023-06-12 18:21:45 -04:00
Daniel Abramov
cada6e624e Show SFU participants who are not Matrix members
So that we can load SFU with the virtual participants and get them
displayed in the grid layout. Before that only participants who are part
of the Matrix were displayed (i.e. participants who have published
m.call.member event to declare their participation).
2023-06-12 20:01:28 +02:00
Robin Townsend
93bc28c1a6 Merge branch 'livekit-experiment' into merge-main 2023-06-12 11:19:52 -04:00
Robin Townsend
4e726355bf Merge branch 'main' into merge-main 2023-06-12 11:18:05 -04:00
Timo
4dcd1e176f
respect mute state set in lobby for call (#1102)
Signed-off-by: Timo K <toger5@hotmail.de>
2023-06-12 15:35:54 +02:00
Robin
8c21dbaade
Don't require textual feedback (#1097)
We want to encourage scoring as much as possible for the purpose of our KPIs, even if it means we don't always get detailed textual feedback.
2023-06-12 12:52:29 +02:00
Robin Townsend
ab97f12947 Merge branch 'main' into livekit-experiment 2023-06-09 17:22:34 -04:00
Daniel Abramov
28fe813b76 Move LiveKit module into its own directory 2023-06-09 18:31:29 +02:00
Robin
1bfbb80f6d
Merge pull request #1094 from robintown/widget-join-delay
Don't prematurely claim that we've joined the call in widget mode
2023-06-08 10:24:32 -04:00
Robin Townsend
e4a3dbd7f7 Don't prematurely claim that we've joined the call in widget mode
In GroupCallView we do 'await enter()' when responding to a widget API join request, but it turns out enter wasn't actually returning a promise until now. The consequence of this was that in Element Web, when you click the join button you get shown a blank screen for a moment. This fixes that half-second moment of the UI being broken, allowing Element Web to show the intermediate 'joining' state.
2023-06-07 14:33:41 -04:00
Robin Townsend
47a4c5aa88 Don't show the quality survey if the app is a widget
As explained by the comment, we don't yet have designs that account for this combo.
2023-06-07 14:19:53 -04:00
Daniel Abramov
e032edbfad Make LiveKit configurable 2023-06-07 20:16:24 +02:00