Commit graph

308 commits

Author SHA1 Message Date
David Baker
ee1dd2293e Use new method to wait until a room is ready fopr group calls
We were waiting for the group call event handler to process the room,
but only if we couldn't get the room from the client - if getRoom returned
a room, we just wouldn't wait. This just uses promises rather than
an event to wait for the room to be ready.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/2641
2022-09-06 11:57:07 +01:00
David Baker
30c9dfce02 Remove unused import 2022-09-01 13:36:02 +01:00
David Baker
48ad4d040d Actually wait for the right event
& update js-sdk dependency
2022-09-01 13:32:11 +01:00
David Baker
1b4f097b1c Fix bug where additional group calls could be created
This (hopefully) fixes the remaining bug where extra group calls
could be created when entering a room.

We waited for the Room event to arrive, but didn't wait for the
group call event handler to actually process the event, so it would
have depended what order the event handlers were run in.

If this doesn't fix it, it at least adds logging so we'll have more
to go on next time.

Fixes https://github.com/vector-im/element-call/issues/563
2022-09-01 11:41:22 +01:00
David Baker
e7353e184f Fix groupcall debug info in rageshakes
We were putting the whole array from setState in, so the debug info
was wrapped in an array when it shouldn't be.

Also comment the groupCallInspector setState/context dance which I
now *finally* understand.
2022-08-25 11:43:47 +01:00
David Baker
c550545116 Fix 'submit debug logs' checkbox in the rageshake form
Fixes https://github.com/vector-im/element-call/issues/550
2022-08-23 20:29:41 +01:00
Robin Townsend
ba4258aa89 Fix the call type selector 2022-08-18 18:48:17 -04:00
Šimon Brandner
fc0a3f38ac
Merge pull request #512 from vector-im/SimonBrandner/fix/audio 2022-08-16 10:07:55 +02:00
Šimon Brandner
719156aadf
Fix the Feedback modal not being closable
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-14 10:42:57 +02:00
Šimon Brandner
fd8ade1bf1
Delint
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-14 09:00:36 +02:00
Šimon Brandner
4ac5c2c677
Merge remote-tracking branch 'upstream/main' into SimonBrandner/fix/audio 2022-08-13 18:28:27 +02:00
Robin Townsend
882eed0737 Remove top level matrix-js-sdk imports 2022-08-12 16:46:53 -04:00
Šimon Brandner
e82ed2cbcb
Merge remote-tracking branch 'upstream/main' into SimonBrandner/fix/audio
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-12 20:54:04 +02:00
Timo
51ae1c819a
typescript src/video-grid (#511) 2022-08-12 19:27:34 +02:00
Šimon Brandner
8176d60d96
Show name in 1:1 calls
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-12 10:33:59 +02:00
Šimon Brandner
8b97904144
Fix full-screen audio
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-12 09:53:44 +02:00
Šimon Brandner
0e34f9a464
Add useAudioOutputDevice()
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-12 09:36:46 +02:00
Robin Townsend
5ef3b055ff Merge branch 'main' into matroska 2022-08-09 09:03:02 -04:00
Timo
f554afd6b1
typescript src/input (#487) 2022-08-09 11:44:46 +02:00
Šimon Brandner
5474693711
Merge pull request #502 from vector-im/SimonBrandner/feat/fullscreen 2022-08-09 10:29:26 +02:00
Robin Townsend
f9a41be530 Merge branch 'main' into matroska 2022-08-08 14:46:24 -04:00
Šimon Brandner
dd304d3569
Add missing type
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-08 20:05:15 +02:00
Šimon Brandner
2eff251e0c
Add missing space
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-08 20:01:58 +02:00
Šimon Brandner
305c2cb806
Add support for screen-sharing
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-07 19:09:45 +02:00
Matthew Hodgson
8aa66dddfd fix mirror text on FF by reverting weird css hack.
this reverts some of d1368f4622
it's very unclear why the width of the preview was pushed out to 100%+1px (and the transform then flipped to 1.01)
but i see no ill effects on having reverted it.
2022-08-07 02:43:59 +01:00
Robin Townsend
eb43b96a1b Merge branch 'main' into matroska 2022-08-05 16:16:59 -04:00
Robin Townsend
89312ceb58 Fix types 2022-08-02 13:31:11 -04:00
Robin Townsend
9b915d289b Fix a crash
CallEvent.SendVoipEvent is sent with a raw dictionary, not an actual
MatrixEvent.
2022-08-02 13:21:44 -04:00
Timo
2d99acabe2
typescript src/room (#437) 2022-08-02 00:46:16 +02:00
Šimon Brandner
2537088099
Accompanying changes
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-07-30 10:06:28 +02:00
Robin Townsend
69f19d24a3 Merge branch 'main' into matroska 2022-07-28 16:27:04 -04:00
Šimon Brandner
1d78e2bc20
Merge remote-tracking branch 'upstream/main' into SimonBrandner/feat/audio-share 2022-07-28 18:12:33 +02:00
Robin Townsend
cf56b24dda Add a URL param for room ID
And consolidate our URL params logic
2022-07-27 16:31:48 -04:00
David Baker
32b37ed8f0 Fix 'cannot find room' error
We weren't waiting for rooms to arrive down the sync stream after
joining them but before trying to use them.

More regression details in linked issue.

Fixes https://github.com/vector-im/element-call/issues/477
2022-07-20 16:01:29 +01:00
Šimon Brandner
ce8ac0a81c
Fix formatting
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-07-16 17:54:49 +02:00
Šimon Brandner
e63b3d1b3e
Add support for audio sharing
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-07-16 09:08:38 +02:00
Robin Townsend
996c5f86c1 Refactor to use fewer else's 2022-07-15 16:08:26 -04:00
Robin Townsend
daeecc9b68 Add a missing type 2022-07-15 13:07:19 -04:00
Robin Townsend
fae4c504c9 Consolidate all group call creation into useLoadGroupCall
This enables us to automatically create a group call in rooms that
exist, but contain no calls.
2022-07-15 12:59:54 -04:00
David Baker
5784a005dc Auto-register if displayName URL param is given
Fixes https://github.com/vector-im/element-call/issues/442
2022-07-13 14:34:15 +01:00
David Baker
32907764b3 Add ptt URL param to control what mode rooms are created in 2022-07-11 13:23:03 +01:00
David Baker
5199fd2566 Prettier 2022-07-08 21:17:27 +01:00
David Baker
b31c6c6780 Bypass lobby in embedded mode 2022-07-08 20:55:18 +01:00
David Baker
a81c48cc22 Fix 'waiting for network' after reaching time limit
If you spoke for the maximum amount of time and got cut off, the
next time you tried to speak you'd just get the 'waiting for network'
state. Key repeats would cause more delayed state timeouts to queue
up.
2022-07-08 15:52:32 +01:00
David Baker
572caf6826
Merge pull request #453 from vector-im/dbkr/fix_facepile_display
Fix facepile display issues
2022-07-08 09:59:11 +01:00
David Baker
b0c8ceb302
Merge pull request #455 from vector-im/dbkr/fix_talkover
Fix talking collision not colliding properly
2022-07-08 09:51:26 +01:00
David Baker
2b92bf3694 Fix talking collision not colliding properly
The code was only entering the blocked state if the user was speaking,
which often won't be the case when another person starts speaking because
we'll have pressed the button but not got the ack back from the server
yet. Add the transmitblocked flag instead so we don't enter that state
again if we've already decided we've been blocked.

We were also starting with blocked = false and so resetting it when it
shouldn't have been reset.

Also requires https://github.com/matrix-org/matrix-js-sdk/pull/2502
2022-07-07 19:42:15 +01:00
David Baker
cd42d09ea9 Fix facepile display issues
Fixes https://github.com/vector-im/element-call/issues/434 and a
separate bug where the facepile would just disappear off to the left
(because we kept increasing the size even though we capped the number
of circles at 8 plus the overflow one).
2022-07-07 14:30:28 +01:00
Johannes Marbach
e8d99e15f7 Prevent empty device labels in audio preview
Fixes: #324
Signed-off-by: Johannes Marbach <johannesm@element.io>
2022-07-07 13:32:23 +02:00
David Baker
655058a7e6 Remove the 'Take Me Home' link in embed mode 2022-07-06 18:27:30 +01:00
David Baker
775125c8a7 Fix view when another person is talking
Fixes https://github.com/vector-im/element-call/issues/445
2022-07-06 13:44:17 +01:00
Robin Townsend
4cb2306de0 Make button be constrained primarily by width rather than height 2022-07-05 15:49:48 -04:00
Robin Townsend
f15ee439a9 Fix page layout 2022-07-05 15:41:57 -04:00
Robin Townsend
b9a2473d19 Adapt walkie-talkie layout to hide controls at small sizes 2022-07-05 13:47:53 -04:00
David Baker
2dcf043787 Fix the PTT button on mobile
We were using createRef() instead of useRef() in the hook, which
meant we were always creating a new ref object and never actually
getting the ref. This must have been working before the useEventTarget
stuff due to some quirk of React / hooks...
2022-07-05 11:06:32 +01:00
Robin Townsend
71a819fcf0 Produce a more informative error when running in an insecure context 2022-07-03 10:38:03 -04:00
David Baker
5ebdf3e878
Use has on set
Co-authored-by: Robin <robin@robin.town>
2022-07-01 13:10:51 +01:00
David Baker
7dc6fb27ea Add embed mode
2db23e4110
from postmessage_ptt branch done in a slightly nicer way
2022-06-28 15:08:14 +01:00
Robin Townsend
dcae5ad5f2 Merge branch 'main' into chrome-spatial-aec 2022-06-16 09:56:27 -04:00
Robin Townsend
22dcb883b3 Fix waiting state not disappearing after the 20 second timeout 2022-06-14 23:38:40 -04:00
Robin Townsend
2e945780de Make the 'waiting for network' state work with spacebar 2022-06-14 16:53:56 -04:00
Robin Townsend
2eae6243bb Add a comment 2022-06-14 12:10:17 -04:00
Robin Townsend
276532e2e1 Add a 'waiting for network' state to walkie-talkie mode 2022-06-14 12:00:26 -04:00
Robin Townsend
ee43fcc91f Make AEC work with spatial audio on Chrome 2022-06-13 13:31:44 -04:00
David Baker
1f5ac411f6 Add warning if incompatible versionsd are being used
This will probably be overly sensitive until we start timing out
member events (ie. https://github.com/matrix-org/matrix-js-sdk/pull/2446
lands) because lots of calls might have old member events from people
who've joined previously.
2022-06-09 21:56:58 +01:00
Matthew Hodgson
4f9efb3563 last minute s/radio call/walkie-talkie call/ig 2022-06-07 13:31:19 +01:00
Robin Townsend
977016fbb2 Merge branch 'main' into organize-colors 2022-06-06 09:03:40 -04:00
Robin Townsend
7d87b8d1e5 'Webcam' → 'Camera' 2022-06-02 13:53:31 -04:00
Robin Townsend
aa45261b0d Organize colors 2022-06-01 11:48:17 -04:00
Robin Townsend
d680a36cab Bump the animation size up a little bit more 2022-06-01 10:41:49 -04:00
Robin Townsend
25bde3560b Use color variables 2022-06-01 10:41:12 -04:00
Robin Townsend
ddac2ba5ef Merge branch 'main' into vu-animation 2022-06-01 10:31:04 -04:00
Robin
cd55098921
Merge pull request #365 from robintown/spatial-audio
Spatial audio
2022-06-01 09:17:04 -04:00
Robin
9fac2c95e5
Merge pull request #368 from robintown/radio-button-cursor
Make PTTButton feel more clickable
2022-06-01 09:13:04 -04:00
David Baker
486d0abd30
Merge pull request #363 from vector-im/dbkr/ptt_connection_lost
Show when connection is lost on PTT mode
2022-06-01 10:24:53 +01:00
David Baker
d9bd48b9a6 Split out client sync listeber into separate useEffect 2022-06-01 10:21:44 +01:00
David Baker
64e30c89e3
Comment typo
Co-authored-by: Robin <robin@robin.town>
2022-06-01 10:13:20 +01:00
David Baker
1860eaae7a
Merge pull request #360 from vector-im/dbkr/consistent_sort
Sort call feeds consistently when choosing active speaker
2022-06-01 10:12:56 +01:00
David Baker
771424cbf0 Expand comment 2022-06-01 10:11:02 +01:00
David Baker
925a909ec1
Merge pull request #361 from vector-im/dbkr/usegroupcall_ts
Convert useGroupCall to TS
2022-06-01 10:07:12 +01:00
Robin Townsend
641e6c53b6 Make the animation smaller 2022-05-31 23:41:05 -04:00
Robin Townsend
14fbddf780 Make PTTButton feel more clickable 2022-05-31 18:08:42 -04:00
Robin Townsend
2a69b72bed Add a VU meter-style animation to radio mode 2022-05-31 18:01:34 -04:00
Robin Townsend
c6b90803f8 Add spatial audio capabilities 2022-05-31 13:36:15 -04:00
David Baker
e9b963080c Show when connection is lost on PTT mode 2022-05-30 16:28:16 +01:00
David Baker
1164e6f1e7 Add return type too 2022-05-30 15:53:44 +01:00
David Baker
21c7bb979e Convert useGroupCall to TS 2022-05-30 15:30:57 +01:00
David Baker
1ff9073a1a Sort call feeds consistently when choosing active speaker 2022-05-30 12:14:25 +01:00
Robin Townsend
c057713004 TypeScriptify useInteractiveRegistration 2022-05-27 16:55:50 -04:00
Robin Townsend
cbfd03f9c6 Add a dropdown to choose between video calls and radio calls 2022-05-26 13:52:06 -04:00
Robin Townsend
426e1a433b Make drag-and-drop smoother 2022-05-24 16:37:24 -04:00
Robin
1367ff9914
Merge pull request #340 from robintown/fix-invite-modal
Fix soft crash when opening invite modal in lobby
2022-05-19 10:46:41 -04:00
Robin
7a2d64c0ef
Merge pull request #339 from robintown/room-avatars
Display room avatars
2022-05-19 10:46:24 -04:00
David Baker
d81c52e9bb
Merge pull request #329 from vector-im/dbkr/rageshake_ptt
Enable rageshake on PTT mode
2022-05-19 10:40:43 +01:00
Robin Townsend
c54f1bd7a3 Fix soft crash when opening invite modal in lobby 2022-05-18 19:04:59 -04:00
Robin Townsend
24f721e414 Display room avatars 2022-05-18 19:00:59 -04:00
Robin Townsend
1e5539f165 Don't leave UnauthenticatedView if there was a room creation error 2022-05-17 12:38:01 -04:00
David Baker
d019add257 Merge remote-tracking branch 'origin/main' into dbkr/rageshake_ptt 2022-05-17 15:41:57 +01:00
David Baker
cc8ce7a05c Move feedback button to overflow menu
To be consistent with normal view and avoid nested dialogs.

Also disable space for the PTT key when the feedback dialog is visible,
since otherwise you can't type a space. Involves some rearrangement of
modal state.

Remove accidentally comitted vite port config.
2022-05-17 15:36:13 +01:00
David Baker
c13040f0b0
Merge pull request #327 from vector-im/dbkr/end_talk_sound
Add sound when speaker stops speaking
2022-05-16 20:37:38 +01:00
David Baker
b3285974f9 Enable rageshake on PTT mode
By putting another 'Submit Feedback' button in the developer section
of the setting modal (we can work out a better place for it).
2022-05-16 16:58:39 +01:00
David Baker
24a1091954
Merge pull request #325 from vector-im/dbkr/fix_mute_races
Mute local mic if blocked and fix races on mute / unmute
2022-05-16 14:12:15 +01:00
David Baker
9fd7329554 Add sound when speaker stops speaking
And also a slightly nicer blocked sound (ok, I couldn't let it go).
2022-05-13 21:00:14 +01:00
David Baker
2a19a9964d
Merge pull request #326 from vector-im/dbkr/ptt_button_touch_fixes
Fixes for touch interface on push-to-talk button
2022-05-13 20:45:22 +01:00
David Baker
3fc9c1b74a Import createref separately 2022-05-13 20:43:20 +01:00
David Baker
f6f0c20b08 Chain promises correctly 2022-05-13 20:39:21 +01:00
David Baker
2af87fa8b8 Fixes for touch interface on push-to-talk button
* Avoid also getting a 'mousedown' event by making the event listener
   non-passive so the preventDefault() works
 * Remember the touch that pressed the button so we only un-press
   when that touch ends, otherwise the button gets released if the
   user taps the screen anywhere else.
2022-05-13 18:28:48 +01:00
David Baker
d34c8d08a4 Add comment 2022-05-13 18:09:45 +01:00
David Baker
0f687fb8b8 Fix races on mute / unmute
By serialising everything on a promise chain
2022-05-13 17:58:59 +01:00
David Baker
603dd3786a Play the blocked sound on time limit
Play the 'blocked' sound effect whenever the user is till holding
the button but can't speak anymore, whether they've been cut off
by someone else or have reached their time limit.
2022-05-12 14:13:03 +01:00
David Baker
b222b4f708 Fix hold-to-speak and prompt text on mobile 2022-05-12 12:07:04 +01:00
David Baker
abc2449b07
Merge pull request #320 from vector-im/dbkr/pttcallview_types
More types on PTTCallView
2022-05-12 10:07:59 +01:00
David Baker
323505fbb4 Put back listeners commented for testing 2022-05-12 10:04:14 +01:00
David Baker
2b06c6f2e6 More types on PTTCallView
Give it a props type
2022-05-11 17:44:26 +01:00
David Baker
abe9ece38f Add push-to-talk sound effects
Fixes https://github.com/vector-im/element-call/issues/296
2022-05-11 16:28:08 +01:00
David Baker
cf9625f33e Final type fixes
Revert previous type import hack and type a couple more bits
2022-05-10 17:18:26 +01:00
David Baker
446fd9c7c0 Make tsc happy with the js-sdk 2022-05-07 19:02:54 +01:00
David Baker
00ffa1b6cd Add types from merge & fix import order 2022-05-06 22:43:22 +01:00
David Baker
055fbe786d Merge remote-tracking branch 'origin/main' into dbkr/typescript_round_1 2022-05-06 21:41:14 +01:00
David Baker
5fb1f556d5 Prettier 2022-05-06 21:34:58 +01:00
David Baker
f4ba315cef Add more hook dependencies 2022-05-06 21:33:49 +01:00
David Baker
9ba12da544
Merge branch 'main' into dbkr/fix_lint_errors 2022-05-06 21:31:35 +01:00
David Baker
9374900ce0
Merge pull request #313 from vector-im/dbkr/fix_time_limit
Return to normal state when time limit reached
2022-05-06 21:28:40 +01:00
David Baker
7e5610eb36 Prettier 2022-05-06 21:27:07 +01:00
David Baker
1253638861 Store unmuteError in main state 2022-05-06 21:23:29 +01:00
David Baker
5422cb76f1
Merge branch 'main' into dbkr/license_headers 2022-05-06 21:18:45 +01:00
David Baker
4488947eed Initial round of typescripting 2022-05-06 11:32:09 +01:00
David Baker
bf8f164f55 Fix lint errors
Various hooks either missing dependencies or with extra ones.

Two remaining errors are from the recapcta code where I can't
work out if the extra dependency is intentional or not.
2022-05-05 13:15:07 +01:00
David Baker
a70dbb130f Run prettier 2022-05-05 12:26:30 +01:00
David Baker
7edf544d73 Return to normal state when time limit reached 2022-05-05 12:22:51 +01:00
David Baker
ad3bde9920 Undo unintentionally commented line 2022-05-04 17:36:35 +01:00
David Baker
85a98b3706 Remove onWindowBlur
we already do this in usePTT
2022-05-04 17:35:43 +01:00
David Baker
85e3f3761a Add all the license headers 2022-05-04 17:09:48 +01:00
David Baker
f0b116714b Fix mouseup/down behaviour of PTT button
Handle mouseup events anywhere so the button releases if you move
the cursor out of the button & release. Likewsie for window losing
focus.
2022-05-04 16:52:45 +01:00
David Baker
0136fd3cab Run prettier 2022-05-04 11:24:25 +01:00
David Baker
70c099c4b5 Wire up pressing the PTT button to unmute as well as spacebar 2022-04-29 18:56:17 +01:00
Robert Long
363f2340a0 Finish basic ptt implemenation 2022-04-28 17:44:50 -07:00
Robert Long
9ef9680e07 Fix PTT button alignment 2022-04-28 11:13:01 -07:00
Robert Long
e3cec93669 Add basic mobile styling 2022-04-27 17:19:58 -07:00
Robert Long
b6c926d2c8 Additional in-room PTT styling 2022-04-27 16:47:23 -07:00
Robert Long
c430ebb3a3 Finish first pass at PTT lobby UI 2022-04-27 15:18:55 -07:00
Robert Long
38f9a79bd3 Initial PTT designs 2022-04-22 18:05:48 -07:00
Robert Long
72197c1a0a Remove dependency on matrix-react-sdk 2022-04-07 14:22:36 -07:00
Robert Long
35fb1e710b Create room when not found and lowercase name 2022-03-03 16:56:45 -08:00
Robert Long
369b59a203 Fix ordering in 1-1 calls 2022-02-25 16:26:21 -08:00
Robert Long
25385edf12 Use a textarea in the feedback modal 2022-02-23 16:07:14 -08:00
Robert Long
721cccf152 Disable speaking indicator in 1-1 calls 2022-02-23 15:59:16 -08:00
Robert Long
3b017eb92b Add room_id and display_name to rageshakes 2022-02-23 15:52:53 -08:00
Robert Long
641b82dc45 Fix creating rooms from not found screen 2022-02-23 15:36:38 -08:00
Robert Long
2c3ebd4c03 Add audio output setting when available 2022-02-22 18:32:51 -08:00