Commit Graph

27 Commits

Author SHA1 Message Date
Robin Townsend
eeb1f4baaf Merge branch 'main' into SimonBrandner/feat/settings 2023-05-22 12:49:57 -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
Šimon Brandner
93a47e7009 Fix casing
Co-authored-by: Robin <robin@robin.town>
2023-05-05 19:17:59 +02:00
Šimon Brandner
0269753f59 Settings improvements
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-05-05 11:44:35 +02:00
Robin Townsend
4114622d44 Remove the keyboard shortcut setting 2023-04-19 16:15:38 -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
971eca59ff Opt into analytics by default during the beta 2023-03-13 19:12:47 -04:00
Timo
0423a494c4 Checkbox for analytics opt in & settings redesign (#934) 2023-03-01 13:47:36 +01:00
Robin Townsend
69e6ba93c1 Add a switch to toggle between the new and old grids 2023-02-13 20:36:42 -05:00
David Baker
df9c1fed2a Fix copyright headers
This is an Element project (in the vector-im repo) so the Copyright
should be for New Vector: it was incorrectly attributed to the
foundation for some files (and some files were missing headers).
2023-01-03 16:55:26 +00:00
David Baker
223793a445 Make spatial audio Firefox-only
Hopefully explained in comment: we have a heisenbug where we sometimes
lack audio from a certain participant, so this simplifies the audio
path by removing the workaround required to do AEC with spatial audio
on chrome.
2022-12-16 17:12:17 +00:00
Erik Johnston
a2bbe61292 Update help text 2022-11-14 20:58:39 +00:00
Erik Johnston
4cd49dee4b Update description 2022-11-14 16:11:42 +00:00
Erik Johnston
0aadb7e60c Add a straw man description to the setting 2022-11-14 11:29:42 +00:00
Erik Johnston
b30ef953b4 Put keyboard shortcuts behind settings flag 2022-11-14 10:24:03 +00:00
Robin Townsend
ca6d75e384 Improve the analytics opt-in copy 2022-11-08 07:53:17 -05:00
Timo
bcbc20b53d Create advanced section for telemetry checkbox (#725)
Signed-off-by: Timo K <timok@element.io>
Co-authored-by: Timo K <timok@element.io>
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-11-05 11:13:56 +01:00
Timo
72503d0335 Add posthog Telemetry (Anonymity Logic + call duration telemetry) (#658)
Co-authored-by: Timo K <timok@element.io>
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-11-04 13:07:14 +01:00
Robin Townsend
8524b9ecd6 Set up translation with i18next 2022-10-12 14:53:49 -04:00
Timo
2d99acabe2 typescript src/room (#437) 2022-08-02 00:46:16 +02:00
Johannes Marbach
1308e52e42 Enumerate devices 2022-07-07 12:10:08 +02:00
Johannes Marbach
f6d356c5ce Prettify the thing 2022-07-07 10:31:44 +02:00
Johannes Marbach
eb2de869b8 Prevent empty device labels
Fixes: #324
Signed-off-by: Johannes Marbach <johannesm@element.io>
2022-07-07 10:21:38 +02:00
Timo K
9b2e99c559 use React.ChangeEvent in SettingsModal 2022-06-11 14:28:54 +02:00
Timo K
0aa29f775c linter 2022-06-08 17:22:46 +02:00
Timo K
a4a6105bc9 Merge branch 'main' into ts_settings 2022-06-08 16:40:51 +02:00
Timo K
190c57e853 typescript src/settings 2022-06-06 22:42:48 +02:00