Commit Graph
114 Commits
Author SHA1 Message Date
David Baker 4524b418ff Merge remote-tracking branch 'origin/livekit' into dbkr/openid 2023-07-03 17:03:58 +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 BrandnerandGitHub 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
RobinandGitHub 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 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 SchwendigandGitHub f13c0f07cc Spotlite tile order (#1118)
* Manage spotlight tile slots for speaker and presenter
2023-06-16 18:57:47 +02:00
RobinandGitHub 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
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
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
TimoandGitHub 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 SchwendigandGitHub 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
TimoandGitHub 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 Townsend ab97f12947 Merge branch 'main' into livekit-experiment 2023-06-09 17:22:34 -04:00
Daniel Abramov e032edbfad Make LiveKit configurable 2023-06-07 20:16:24 +02:00
Daniel Abramov dc98960d8d Properly use LiveKit screen sharing 2023-06-07 15:30:54 +02:00
Daniel Abramov 79018606b2 Simplify overly complicated VideoGrid 2023-06-06 13:14:02 +02:00
Daniel Abramov 8b533018ea Remove unused stuff from video-grid 2023-06-02 21:34:59 +02:00
Daniel Abramov ed581189a8 Fix shortcuts mix 2023-06-02 21:29:22 +02:00
Daniel Abramov 991129e470 Experimental version of LiveKit with EC that works! 2023-06-02 19:12:28 +02:00
Daniel Abramov ee1819a0b6 Quick way to replace matrix JS SDK with LiveKit 2023-06-02 17:02:47 +02:00
Daniel Abramov fb9dd7ff71 Use LiveKit's react hooks for devices
More reliable device management.
2023-05-30 20:56:25 +02:00
Daniel Abramov f4f5c1ed31 Start using LiveKit SDK for media devices
This version is not supposed to properly work, this is a work in
progress.

Main changes:
* Completely removed the PTT logic (for simplicity, it could be
  introduced later).
* Abstracted away the work with the media devices.
* Defined confined interfaces of the affected components so that they
  only get the data that they need without importing Matris JS SDK or
  LiveKit SDK, so that we can exchange their "backend" at any time.
* Started using JS/TS SDK from LiveKit as well as their React SDK to
  define the state of the local media devices and local streams.
2023-05-30 15:21:22 +02:00
Robin Townsend 9c2f4be17c Bring back the rageshake request modal 2023-05-22 15:30:29 -04:00
Robin Townsend eeb1f4baaf Merge branch 'main' into SimonBrandner/feat/settings 2023-05-22 12:49:57 -04:00
RobinandGitHub 568c989ff7 Merge pull request #1069 from robintown/hide-rageshake-request
Hide the rageshake request modal when the window is too small
2023-05-22 09:21:30 -04:00
Robin Townsend c01e363639 Hide the rageshake request modal when the window is too small 2023-05-17 13:59:15 -04:00
Michael Kaye d270756443 Useful to be able to hang up rather than close the window. 2023-05-12 16:25:24 +01:00