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).
We only ever used the static instance() method to get to the config
object, so just make a static instance that returns the ConfigOptions
directly, throwing an exception if it's not yet initialised. This way
the types can all be non-optional (plus it's shorter).
* load analytics id from url in embedded mode
Signed-off-by: Timo K <timok@element.io>
* add start call in the widget code path
Signed-off-by: Timo K <timok@element.io>
* send group call id instead of call name
Signed-off-by: Timo K <timok@element.io>
* generate analyticsid based on account analyticsid
This make it impossible to find users from the element web posthog instance
in the element call instance
* move registration type setup PosthogAnalytics.ts
* Order identificaition and tracking.
This fixes an issue that the widget version did not identify the user before sneding
the first track event.
Because start call is called right after app startup.
Signed-off-by: Timo K <timok@element.io>
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.
We didn't check whether we actually had a video device when seeing
if the current video devices was in the list of devices, so this
caused loops which confused Safari.
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.
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.
This will stop groupcall.txt being handled as a 'log file' and instead
indicate it's an artifact to be stored alongside the rageshake.
The file will still be stored on the rageshake server but the extension
will indicate it's not a log file.