Commit Graph
100 Commits
Author SHA1 Message Date
Robin Townsend dc8d0fd81b Update strings 2023-05-22 15:12:41 -04:00
Robin Townsend ae40dea7ec Make the profile form autosave 2023-05-22 15:12:41 -04:00
Robin Townsend 85380c8142 Make width of profile tab conform to designs 2023-05-22 15:12:41 -04:00
Robin Townsend 6560d9eb1a Make remove avatar button target area larger 2023-05-22 15:12:41 -04:00
Robin Townsend 69099772e0 Make settings button icon size match designs 2023-05-22 15:12:41 -04:00
Robin Townsend cf1a7f2e21 Match settings modal to design nuances better 2023-05-22 15:12:41 -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
RobinandGitHub 606358c51b Merge pull request #1070 from RiotTranslateBot/weblate-element-call-element-call
Translations update from Weblate
2023-05-17 23:33:38 -04:00
Robin Townsend c01e363639 Hide the rageshake request modal when the window is too small 2023-05-17 13:59:15 -04:00
RobinandGitHub e93dfb54d2 Merge pull request #1065 from robintown/resist-fingerprinting
Make Element Call work in Firefox's resist fingerprinting mode
2023-05-17 10:32:00 -04:00
Robin Townsend f1ee3604de Make Element Call work in Firefox's resist fingerprinting mode
This one is gonna take some explaining:

When in resist fingerprinting mode, Firefox exhibits some funny behavior: when we ask for the the list of media devices, it gives us fake device IDs. But when the js-sdk requests a stream for any of those devices, Firefox associates the stream with the real device ID.

Now, in order to get the names of devices included in their metadata when you query the device list, you need to be holding a stream. For this reason, useMediaHandler was set up to reload the device list whenever matrix-js-sdk got a new local stream. But because of the inconsistency in device IDs, it would enter an infinite cycle telling matrix-js-sdk to request a stream for the fake device ID, but with matrix-js-sdk always responding with the real device ID.

I already wasn't happy with useMediaHandler's use of @ts-ignore comments to inspect private js-sdk fields, and in the meantime we've come up with a simpler function for requesting device names, so I decided to refactor useMediaHandler to use it instead. Importantly, it doesn't break in resist fingerprinting mode.

This created a new UX issue though: now, when on the lobby screen, useMediaHandler would request microphone access so it could get device names, followed immediately by a *second* pop-up for the lobby screen to request camera access. That's 1 pop-up too many, so I changed useMediaHandler to only request device names when a component is mounted that actually wants to show them. Currently, the settings modal is the only such component, and users normally only open it *after* granting full audio/video access, so this solution works out quite nicely.
2023-05-15 23:13:18 -04:00
RobinandGitHub d3111758b7 Merge pull request #1064 from robintown/update-js-sdk
Update matrix-js-sdk
2023-05-15 11:10:15 -04:00
Robin Townsend abdb85226f Update matrix-js-sdk 2023-05-15 11:04:57 -04:00
RobinandGitHub aae86ed830 Merge pull request #1055 from robintown/update-matrix-widget-api
Update matrix-widget-api
2023-05-15 08:43:07 -04:00
RobinandGitHub a961647e86 Merge pull request #1058 from robintown/update-js-sdk
Update matrix-js-sdk
2023-05-14 01:33:55 -04:00
Robin Townsend 207554f067 Fix tests 2023-05-14 01:32:11 -04:00
Robin Townsend 7d454645d0 Fix types 2023-05-13 14:27:01 -04:00
Robin Townsend fcb923f6db Update matrix-js-sdk 2023-05-13 14:11:59 -04:00
RobinandGitHub e3c34a7145 Merge pull request #1053 from robintown/local-tile-size
Cap the size of the local tile in 1:1 calls
2023-05-13 13:54:40 -04:00
RobinandGitHub 1c9b2a24d9 Merge pull request #1054 from robintown/local-feed-contrast
Use a more noticeable shadow when displaying one tile on top another
2023-05-13 13:54:12 -04:00
RobinandGitHub 7ab94cb003 Merge pull request #1056 from robintown/mute-icon
Show audio mute status next to people's names
2023-05-13 13:53:51 -04:00
RobinandGitHub 239095321a Merge pull request #1057 from robintown/speaking-transition
Subtly animate active speaker indicators
2023-05-13 13:53:03 -04:00
Robin Townsend caf90d851e Subtly animate active speaker indicators
A light touch of animation here is consistent with what the designs call for, and what we've done with the toolbars on video tiles.
2023-05-12 14:49:55 -04:00
Robin Townsend a74733f6bc Show audio mute status next to people's names
Previously we were showing a combination of audio and video status icons on people's name badges, which meant there was no way to tell whether someone who had their video off was muted or not. The designs call for only microphone icons to be shown here.
2023-05-12 14:32:16 -04:00
Robin Townsend 440c617738 Use a more noticeable shadow when displaying one tile on top another
So that the local tile in 1:1 calls is more discernable against the background, especially when both participants have their video off
2023-05-12 14:16:33 -04:00
RobinandGitHub 0f7ee3b860 Merge pull request #1045 from robintown/update-react-spring
Update react-spring
2023-05-12 14:11:53 -04:00
Robin Townsend dc15fbc8c9 Update matrix-widget-api
To fix a TypeScript error I'm seeing when running the linter locally
2023-05-12 14:10:34 -04:00
Robin Townsend 2df8488c20 Cap the size of the local tile in 1:1 calls
So that it doesn't cover up too much of the remote tile at small window sizes
2023-05-12 11:43:17 -04:00
Robin Townsend e3d5c84b17 Update react-spring
Just in case this has a chance of fixing https://github.com/vector-im/element-call/issues/960
2023-05-10 10:53:52 -04:00
RobinandGitHub 6f4ab0d3ab Merge pull request #900 from abhijain2003/abhijain2003/loadingui
changes Loading room... to Loading...
2023-05-10 09:36:33 -04:00
RobinandGitHub 4572e35339 Merge pull request #1034 from RiotTranslateBot/weblate-element-call-element-call
Translations update from Weblate
2023-05-09 01:28:45 -04:00
RobinandGitHub 15350b6989 Merge pull request #1021 from RiotTranslateBot/weblate-element-call-element-call
Translations update from Weblate
2023-04-25 10:32:28 -04:00
RobinandGitHub 8437e263af Merge pull request #1013 from robintown/controls-overlay
Keep inspector from covering call buttons
2023-04-20 10:45:36 -04:00
RobinandGitHub 4719a92ffc Merge pull request #1015 from robintown/shortcut-focus
Make keyboard shortcuts accessible by default
2023-04-20 10:45:11 -04:00
Robin Townsend 28368da60a Update strings 2023-04-19 16:20:53 -04:00
Robin Townsend 4114622d44 Remove the keyboard shortcut setting 2023-04-19 16:15:38 -04:00
RobinandGitHub 6f2b32ead5 Merge pull request #1014 from RiotTranslateBot/weblate-element-call-element-call
Translations update from Weblate
2023-04-19 15:59:20 -04:00
Robin Townsend 6f13989819 Fix lint errors 2023-04-19 15:55:55 -04:00
Robin Townsend 1184b71396 Format with Prettier 2023-04-19 15:54:39 -04:00
Robin Townsend 56bd54a645 Disable keyboard shortcuts when focus is in a modal 2023-04-19 15:51:44 -04:00
Robin Townsend 18fa1371d3 Use a ref for spacebarHeld
because we can and it means fewer renders
2023-04-19 15:17:32 -04:00
Robin Townsend 6ad4663508 Keep inspector from covering call buttons 2023-04-19 14:43:37 -04:00
RobinandGitHub 30a224e20e Merge pull request #1010 from robintown/speaking-border
Make audio activity border match the tile border radius
2023-04-19 10:32:39 -04:00
Robin Townsend 3c7f01a510 Make audio activity border match the tile border radius 2023-04-19 10:24:47 -04:00
Robin Townsend 838137c83b Detect split-brains caused by parallel calls
This is another KPI for PostHog.
2023-04-17 16:58:51 -04:00
RobinandGitHub 7221b7c3a2 Merge pull request #998 from robintown/rageshake-processor
Include unended spans in rageshakes
2023-04-14 11:55:16 -04:00
RobinandGitHub 5bec960112 Merge pull request #999 from robintown/posthog-processor
Send rejoin events to PostHog in realtime
2023-04-13 10:21:44 -04:00
Robin Townsend da7760d7ab Send rejoin events to PostHog in realtime
By converting PosthogSpanExporter to a SpanProcessor just like the RageshakeSpanProcessor, it can now monitor spans in realtime as they are started.
2023-04-12 18:14:59 -04:00
Robin Townsend a17ffcc327 Include unended spans in rageshakes
By turning the RageshakeSpanExporter into a SpanProcessor, it can now be notified of spans as soon as they're started.
2023-04-12 17:12:02 -04:00
RobinandGitHub d211d27817 Merge pull request #997 from robintown/telemetry-crash
Fix a crash when adding call events to telemetry
2023-04-12 09:26:03 -04:00
Robin Townsend 0637804d61 Fix a crash when adding call events to telemetry
Since typeof null is 'object', the flattenVoipEventRecursive function was mistakenly casting nulls to Record<string, unknown> in its typeof v === "object" case, causing Object.entries to explode.
2023-04-11 23:05:37 -04:00
RobinandGitHub a2b3e098b6 Merge pull request #995 from robintown/rageshake-traces
Include OpenTelemetry traces in rageshakes
2023-04-11 16:24:09 -04:00
RobinandGitHub 4bcddad316 Merge pull request #994 from robintown/lock
Save lockfile
2023-04-11 16:20:21 -04:00
Robin Townsend 95eca18207 Include OpenTelemetry traces in rageshakes 2023-04-11 01:13:19 -04:00
Robin Townsend 2f33902ea9 Save lockfile 2023-04-10 15:04:42 -04:00
RobinandGitHub 858c68baf1 Merge pull request #971 from robintown/audio-observability
End-to-end audio observability
2023-04-05 13:55:12 -04:00
Robin Townsend de3bad3810 Remove temporary config file 2023-04-05 13:38:49 -04:00
Robin Townsend 928f1c1d6f Address review feedback 2023-04-05 12:56:50 -04:00
Robin Townsend 711cdf9a60 Merge branch 'main' into audio-observability 2023-04-05 12:50:38 -04:00
RobinandGitHub e0089a0aee Merge pull request #958 from robintown/forced-opt-in
Opt into analytics by default during the beta
2023-04-04 09:27:01 -04:00
RobinandGitHub 61a0534984 Merge pull request #983 from robintown/rejoin-analytics
Track call rejoins
2023-04-04 09:18:40 -04:00
Robin Townsend a52251befa Track call rejoins
Call rejoins will be one of the KPIs we track in PostHog to measure call quality. I've also reverted the previous behavior which logged all OpenTelemetry spans to PostHog, since we should only be sending small, anonymized bits of data there.
2023-04-03 21:05:13 -04:00
Robin Townsend c4f029ae4f Fix lint error 2023-03-27 22:30:12 -04:00
Robin Townsend 8978f94fe4 Add temporary config 2023-03-27 09:12:32 -04:00
Robin Townsend 5f41f9476b Disable the opt in analytics setting if Posthog isn't configured 2023-03-23 13:07:34 -04:00
Robin Townsend 313ebe258e Add end-to-end audio observability
This reports via OpenTelemetry when particular participants are speaking, as an easy way to observe the delivery of audio in calls.
2023-03-22 14:23:26 -04:00
RobinandGitHub 71b1d0c6b1 Merge pull request #970 from robintown/matrix-widget-api
Update matrix-widget-api
2023-03-22 13:58:36 -04:00
Robin Townsend 76c0277301 Update matrix-js-sdk 2023-03-22 11:41:41 -04:00
Robin Townsend 698bea93e3 Update matrix-widget-api 2023-03-22 11:33:50 -04:00
RobinandGitHub ff90e507a6 Merge pull request #963 from alariej/navigator_mediasession_fix
Fix for Android WebView, which does not support navigator.mediaSession
2023-03-17 13:20:05 -04:00
Robin Townsend 971eca59ff Opt into analytics by default during the beta 2023-03-13 19:12:47 -04:00
RobinandGitHub 7aa902853a Merge pull request #956 from RiotTranslateBot/weblate-element-call-element-call
Translations update from Weblate
2023-03-11 00:49:06 -05:00
RobinandGitHub 3e081ac936 Merge pull request #890 from RiotTranslateBot/weblate-element-call-element-call
Translations update from Weblate
2023-03-08 10:53:58 -05:00
RobinandGitHub 5eb552e36a Merge pull request #935 from alariej/alariej
Add e2eEnabled parameter to Widget client
2023-03-02 16:07:04 -05:00
RobinandGitHub cdf2d560b8 Merge pull request #911 from robintown/big-grid
New grid system
2023-02-19 09:02:57 -05:00
RobinandGitHub 9dff42b437 Merge pull request #919 from robintown/ignore-coverage
Add coverage reports to .gitignore
2023-02-16 11:32:29 -05:00
Robin Townsend 1fc181dc28 Document useReactiveState 2023-02-15 16:38:49 -05:00
Robin Townsend fbc72283d4 Add missing copyright headers 2023-02-15 16:20:58 -05:00
Robin Townsend 9a0dfad5f9 Add coverage reports to .gitignore 2023-02-15 15:13:39 -05:00
Robin Townsend efbf319fa1 Explain why we cast the tile springs 2023-02-13 22:40:26 -05:00
Robin Townsend ef4a62ca62 Document useMergedRefs 2023-02-13 22:38:27 -05:00
Robin Townsend 8c818b9ce1 Get 100% test coverage on grid operations 2023-02-13 22:24:04 -05:00
Robin Townsend 58ed372afa Fix type and lint errors 2023-02-13 21:57:57 -05:00
Robin Townsend 69e6ba93c1 Add a switch to toggle between the new and old grids 2023-02-13 20:36:42 -05:00
Robin Townsend b2b2f0bb15 Merge branch 'main' into big-grid 2023-02-13 18:54:19 -05:00
Robin Townsend 8d0bf4cacc Test grid operations 2023-02-13 18:35:50 -05:00
Robin Townsend 5448744871 Document grid operations 2023-02-13 18:35:23 -05:00
Robin Townsend d852e33413 Document the component 2023-02-08 00:32:08 -05:00
Robin Townsend 8d46687a54 Refactor grid state tracking 2023-02-07 23:27:49 -05:00
Robin Townsend 978b0f08e8 Move grid algorithms into a separate file 2023-02-07 22:13:50 -05:00
Robin Townsend 374c68e3c0 Fix tiles enlarging to the wrong place on mobile 2023-02-05 01:17:28 -05:00
Robin Townsend 82ac775124 Fix scrolling on mobile 2023-02-05 00:55:12 -05:00
Robin Townsend 6adcf95aaa Implement different column counts and mobile layout 2023-02-04 00:43:53 -05:00
Robin Townsend 206730ffc0 Fix infinite loop when a tile can't be enlarged 2023-02-03 16:52:42 -05:00
Robin Townsend 1e858f6ba3 Fix a typo 2023-02-03 16:27:49 -05:00
Robin Townsend 22382413dc Make drag and drop mobile-friendly 2023-02-03 15:42:47 -05:00
Robin Townsend 6cd939db0c Fix a crash when there's only 1 tile and it gets shrunk 2023-02-03 09:11:25 -05:00
Robin Townsend 42e4f6ce83 Don't allow the grid to overflow horizontally 2023-02-03 08:44:35 -05:00
Robin Townsend 4fc8598e36 Keep tile elements in a stable order 2023-02-01 11:50:52 -05:00