* Add theme data to EC widget url
Signed-off-by: Timo K <toger5@hotmail.de>
* test theme
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* WIP Use browser font size instead of hardcoded 16px
* Add font migration to v3
* Remove custom font size input
* Use a dropdown instead of a slider
* Add margin to the font size dropdown
* Fix `UpdateFontSizeDelta` action typo
* Fix `fontScale`in `Call.ts`
* Rename `baseFontSizeV3` to `fontSizeDelta`
* Update playwright test
* Add `default` next to the browser font size
* Remove remaining `TODO`
* Remove falsy `private`
* Improve doc
* Update snapshots after develop merge
* Remove commented import
* New room header
- add chat button during call
- close lobby button in lobby
- join button if session exists
- allow to toggle call <-> timeline during call with call button
Compound style for join button in call notify toast.
Signed-off-by: Timo K <toger5@hotmail.de>
* dont show start call, join button in video rooms.
Signed-off-by: Timo K <toger5@hotmail.de>
* Make active call check based on participant count
Not based on available call object
Signed-off-by: Timo K <toger5@hotmail.de>
* fix room header tests
Signed-off-by: Timo K <toger5@hotmail.de>
* fix room header tests
Signed-off-by: Timo K <toger5@hotmail.de>
* remove chat button test for displaying.
Chat button display logic is now part of the RoomHeader.
Signed-off-by: Timo K <toger5@hotmail.de>
* remove duplicate notification Tread icon
Signed-off-by: Timo K <toger5@hotmail.de>
* remove obsolete jest snapshot
Signed-off-by: Timo K <toger5@hotmail.de>
* Update src/components/views/rooms/RoomHeader.tsx
Co-authored-by: Robin <robin@robin.town>
* update isECWidget logic
Signed-off-by: Timo K <toger5@hotmail.de>
* remove dead code
Signed-off-by: Timo K <toger5@hotmail.de>
* refactor call options
Add menu to choose if there are multiple options
Signed-off-by: Timo K <toger5@hotmail.de>
* join ec when clicking join button (dont start jitsi)
Use icon buttons
don't show call icon when join button is visible
Signed-off-by: Timo K <toger5@hotmail.de>
* refactor isViewingCall
Signed-off-by: Timo K <toger5@hotmail.de>
* fix room header tests
Signed-off-by: Timo K <toger5@hotmail.de>
* fix header snapshot
Signed-off-by: Timo K <toger5@hotmail.de>
* sonar proposals
Signed-off-by: Timo K <toger5@hotmail.de>
* fix event shiftKey may be undefined
Signed-off-by: Timo K <toger5@hotmail.de>
* more lobby time before timeout
only await sticky promise on becoming sticky.
Signed-off-by: Timo K <toger5@hotmail.de>
* don't allow starting new calls if there is an ongoing other call.
Signed-off-by: Timo K <toger5@hotmail.de>
* review
Signed-off-by: Timo K <toger5@hotmail.de>
* fix translation typo
Signed-off-by: Timo K <toger5@hotmail.de>
* missing await in case customTimeout=false
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Robin <robin@robin.town>
* New room header
- add chat button during call
- close lobby button in lobby
- join button if session exists
- allow to toggle call <-> timeline during call with call button
Compound style for join button in call notify toast.
Signed-off-by: Timo K <toger5@hotmail.de>
* dont show start call, join button in video rooms.
Signed-off-by: Timo K <toger5@hotmail.de>
* Make active call check based on participant count
Not based on available call object
Signed-off-by: Timo K <toger5@hotmail.de>
* fix room header tests
Signed-off-by: Timo K <toger5@hotmail.de>
* fix room header tests
Signed-off-by: Timo K <toger5@hotmail.de>
* remove chat button test for displaying.
Chat button display logic is now part of the RoomHeader.
Signed-off-by: Timo K <toger5@hotmail.de>
* remove duplicate notification Tread icon
Signed-off-by: Timo K <toger5@hotmail.de>
* remove obsolete jest snapshot
Signed-off-by: Timo K <toger5@hotmail.de>
* Update src/components/views/rooms/RoomHeader.tsx
Co-authored-by: Robin <robin@robin.town>
* update isECWidget logic
Signed-off-by: Timo K <toger5@hotmail.de>
* remove dead code
Signed-off-by: Timo K <toger5@hotmail.de>
* refactor call options
Add menu to choose if there are multiple options
Signed-off-by: Timo K <toger5@hotmail.de>
* join ec when clicking join button (dont start jitsi)
Use icon buttons
don't show call icon when join button is visible
Signed-off-by: Timo K <toger5@hotmail.de>
* refactor isViewingCall
Signed-off-by: Timo K <toger5@hotmail.de>
* fix room header tests
Signed-off-by: Timo K <toger5@hotmail.de>
* fix header snapshot
Signed-off-by: Timo K <toger5@hotmail.de>
* sonar proposals
Signed-off-by: Timo K <toger5@hotmail.de>
* fix event shiftKey may be undefined
Signed-off-by: Timo K <toger5@hotmail.de>
* more lobby time before timeout
only await sticky promise on becoming sticky.
Signed-off-by: Timo K <toger5@hotmail.de>
* don't allow starting new calls if there is an ongoing other call.
Signed-off-by: Timo K <toger5@hotmail.de>
* review
Signed-off-by: Timo K <toger5@hotmail.de>
* fix translation typo
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Robin <robin@robin.town>
* Refactor ElementCall to use the widget lobby.
- expose skip lobby
- use the widget.data to build the widget url
Signed-off-by: Timo K <toger5@hotmail.de>
* Use shiftKey click to skip the lobby
Signed-off-by: Timo K <toger5@hotmail.de>
* remove Lobby component
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests + remove EW lobby related tests
Signed-off-by: Timo K <toger5@hotmail.de>
* remove lobby device button tests
Signed-off-by: Timo K <toger5@hotmail.de>
* i18n
Signed-off-by: Timo K <toger5@hotmail.de>
* use voip participant label
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests
Signed-off-by: Timo K <toger5@hotmail.de>
* fix rounded corners in pip
Signed-off-by: Timo K <toger5@hotmail.de>
* allow joining call in legacy room header (without banner)
Signed-off-by: Timo K <toger5@hotmail.de>
* Introduce new connection states for calls.
And use them for integrated lobby.
Signed-off-by: Timo K <toger5@hotmail.de>
* New room header call join
Fix broken top container element call.
Signed-off-by: Timo K <toger5@hotmail.de>
* i18n
Signed-off-by: Timo K <toger5@hotmail.de>
* Fix closing element call in lobby view.
(should destroy call if there the user never managed to connect (not clicked join in lobby)
Signed-off-by: Timo K <toger5@hotmail.de>
* all cases for connection state
Signed-off-by: Timo K <toger5@hotmail.de>
* add correct LiveContentSummary labels
Signed-off-by: Timo K <toger5@hotmail.de>
* Theme widget loading (no rounded corner)
destroy call when switching room while a call is loading.
Signed-off-by: Timo K <toger5@hotmail.de>
* temp
Signed-off-by: Timo K <toger5@hotmail.de>
* usei view room dispatcher instead of emitter
Signed-off-by: Timo K <toger5@hotmail.de>
* tidy up
Signed-off-by: Timo K <toger5@hotmail.de>
* returnToLobby + remove StartCallView
Signed-off-by: Timo K <toger5@hotmail.de>
* comment cleanup
Signed-off-by: Timo K <toger5@hotmail.de>
* disconnect ongoing calls before making widget sticky.
Signed-off-by: Timo K <toger5@hotmail.de>
* linter + jitsi as videoChannel
Signed-off-by: Timo K <toger5@hotmail.de>
* stickyPromise type
Signed-off-by: Timo K <toger5@hotmail.de>
* fix legacy call (jistsi, cisco, bbb) reopen
when clicking call button
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests and connect resolves
Signed-off-by: Timo K <toger5@hotmail.de>
* fix "waits for messaging when connecting" test
Signed-off-by: Timo K <toger5@hotmail.de>
* Allow to skip awaiting Call session events.
This option is used in tests to spare mocking the
events emitted when EC updates the room state
Signed-off-by: Timo K <toger5@hotmail.de>
* add sticky test
Signed-off-by: Timo K <toger5@hotmail.de>
* add test for looby tile rendering
Signed-off-by: Timo K <toger5@hotmail.de>
* fix flaky test
Signed-off-by: Timo K <toger5@hotmail.de>
* add reconnect after disconnect test (video room)
Signed-off-by: Timo K <toger5@hotmail.de>
* add shift click test to call toast
Signed-off-by: Timo K <toger5@hotmail.de>
* test for allowVoipWithNoMedia in widget url
Signed-off-by: Timo K <toger5@hotmail.de>
* fix e2e tests to search for the right element
Signed-off-by: Timo K <toger5@hotmail.de>
* destroy call after test so next test does not fail
Signed-off-by: Timo K <toger5@hotmail.de>
* new call test (connection failed)
Signed-off-by: Timo K <toger5@hotmail.de>
* reset to real timers
Signed-off-by: Timo K <toger5@hotmail.de>
* dont use skipSessionAwait for tests
Signed-off-by: Timo K <toger5@hotmail.de>
* code quality (sonar)
Signed-off-by: Timo K <toger5@hotmail.de>
* refactor call.disconnect tests (dont use skipSessionAwait)
Signed-off-by: Timo K <toger5@hotmail.de>
* miscellaneous cleanup
Signed-off-by: Timo K <toger5@hotmail.de>
* only send call notify after the call has been joined (not when just opening the lobby)
Signed-off-by: Timo K <toger5@hotmail.de>
* update call notify tests to expect notify on connect.
Not on widget creation.
Signed-off-by: Timo K <toger5@hotmail.de>
* Update playwright/e2e/room/room-header.spec.ts
Co-authored-by: Robin <robin@robin.town>
* Update src/components/views/voip/CallView.tsx
Co-authored-by: Robin <robin@robin.town>
* review
rename connect -> start
isVideoRoom not dependant on feature flags
rename allOtherCallsDisconnected -> disconnectAllOtherCalls
Signed-off-by: Timo K <toger5@hotmail.de>
* check for EC widget
Signed-off-by: Timo K <toger5@hotmail.de>
* dep array
Signed-off-by: Timo K <toger5@hotmail.de>
* rename in spyOn
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Robin <robin@robin.town>
* fix misunderstanding of functional members
Signed-off-by: Timo K <toger5@hotmail.de>
* unused import
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Add ringing for matrixRTC
- since we are using m.mentions we start with the Notifier
- an event in the Notifier will result in a IncomingCall toast
- incomingCallToast is responsible for ringing (as long as one can see the toast it rings)
This should make sure visual and audio signal are in sync.
Signed-off-by: Timo K <toger5@hotmail.de>
* use typed CallNotifyContent
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests
Signed-off-by: Timo K <toger5@hotmail.de>
* change to callId
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests
Signed-off-by: Timo K <toger5@hotmail.de>
* only ring in 1:1 calls
notify in rooms < 15 member
Signed-off-by: Timo K <toger5@hotmail.de>
* call_id fallback
Signed-off-by: Timo K <toger5@hotmail.de>
* Update src/Notifier.ts
Co-authored-by: Robin <robin@robin.town>
* review
Signed-off-by: Timo K <toger5@hotmail.de>
* add tests
Signed-off-by: Timo K <toger5@hotmail.de>
* more tests
Signed-off-by: Timo K <toger5@hotmail.de>
* unused import
Signed-off-by: Timo K <toger5@hotmail.de>
* String -> string
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Robin <robin@robin.town>
* add feature flag for disabling encryption
Signed-off-by: Timo K <toger5@hotmail.de>
* prettier
Signed-off-by: Timo K <toger5@hotmail.de>
* Update src/i18n/strings/en_EN.json
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* add tests and make url flags explicit
Signed-off-by: Timo K <toger5@hotmail.de>
* remove unnecessary braces
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Make video rooms compatible with matrix RTC
Signed-off-by: Timo K <toger5@hotmail.de>
* comment fixes
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests by destroying the call. Otherwise create wont recreate for ec.
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* initial
Signed-off-by: Timo K <toger5@hotmail.de>
* cleanup1
Signed-off-by: Timo K <toger5@hotmail.de>
* bring back call timer
Signed-off-by: Timo K <toger5@hotmail.de>
* more cleanup and test removals
Signed-off-by: Timo K <toger5@hotmail.de>
* remove event
Signed-off-by: Timo K <toger5@hotmail.de>
* cleanups and minor fixes
Signed-off-by: Timo K <toger5@hotmail.de>
* add matrixRTC to stubClient
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests (some got removed)
The removal is a consequence of EW now doing less call logic.
More logic is done by the js sdk (MatrixRTCSession)
And therefore in EC itself.
Signed-off-by: Timo K <toger5@hotmail.de>
* cleanups
Signed-off-by: Timo K <toger5@hotmail.de>
* mock the session
Signed-off-by: Timo K <toger5@hotmail.de>
* lint
Signed-off-by: Timo K <toger5@hotmail.de>
* remove GroupCallDuration
Signed-off-by: Timo K <toger5@hotmail.de>
* review and fixing tests
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
The semantics of the preload parameter are changing as detailed here, meaning we now have to additionally specify skipLobby to get the desired behavior out of Element Call: https://github.com/vector-im/element-call/pull/1730
* Switch to importing TypedEventEmitter from main js-sdk export
* Switch to importing js-sdk/matrix in cypress
* Remove duplicated imports
* Fix lint:js-fix to run prettier last otherwise ESLint --fix may cause a mess
* Add lint rule
* Switch to importing models/Room from main js-sdk export
* Switch to importing models/room-state & models/room-member from main js-sdk export
* Fix cypress-axe import
* Fix more imports
* Fix cypress-axe import
* Fix bad merge
* Switch to importing TypedEventEmitter from main js-sdk export
* Switch to importing js-sdk/matrix in cypress
* Remove duplicated imports
* Fix lint:js-fix to run prettier last otherwise ESLint --fix may cause a mess
* Add lint rule
* Switch to importing models/Room from main js-sdk export
* Fix cypress-axe import
* Fix more imports
* Fix cypress-axe import
* Fix duplicated lint rule
* Switch to importing TypedEventEmitter from main js-sdk export
* Switch to importing js-sdk/matrix in cypress
* Remove duplicated imports
* Fix lint:js-fix to run prettier last otherwise ESLint --fix may cause a mess
* Add lint rule
* Fix cypress-axe import
* Fix cypress-axe import
See https://github.com/electron/electron/pull/30702 - this has the benefit of the js-sdk and LiveKit not having to add custom logic for Electron
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* force to allow calls without video and audio in embedded mode
* Check device access permission and introduce a only screen share call mode
* Fix strict typ check issue
* Fix i18n check issue
* Add unit tests for device selection
* Fix mocked media device query
* Integrate compound design tokens
The icons should not be included in this repo, and should live in the compound design token repo, but for simplicity sake at this phase of the integration they will be added here
* Delete unused or incorrect - sass variables
* Typography pass
* Deprecate _font-weights.pcss and use Compound instead
* lint fix
* Fix snapshot
* Fix typography pass feedback
* Remove unwanted e2e test
cypress tests should test functionality not visual output. And we should not test visual output by inspecting CSS properties
* lintfix
* Migration script for baseFontSize
* Updates after design review
* Update font scaling panel to use min/max size
* Fix custom font
* Fix font slider e2e test
* Update custom font
* Update new baseFontSizeV2
* Disambiguate heading props
* Fix appearance test
* change max font size
* fix e2ee test
* fix tests
* test baseFontSize migration code
* typescript strict
* Migrate baseFontSize account setting
* Change assertion for font size
* Fix font size controller test
* Conform more of the codebase to `strictNullChecks`
* Iterate
* Iterate
* Iterate
* Iterate
* Conform more of the codebase to `strictNullChecks`
* Iterate
* Update record key
If something goes wrong with the widget, there's no way we can continue the call, so this acts as a safeguard against stuck calls in cases where the widget crashes or disconnects weirdly.
Because this encodes font settings into widget URLs at the time that the client first loads a call, this has the consequence that users may need to restart their client to see font setting changes take effect in Element Call. For users who rely on these settings for accessibility, it's a lot better than nothing, though.
* Fix call splitbrains when switching between rooms
Mounting CallView causes the user's call membership room state to be cleaned up. However, because the GroupCall object always thought the local device was disconnected from the call, it would remove the local device from room state when the clean method is called, causing a splitbrain. This uses GroupCall's new enteredViaAnotherSession field to fix that, and also simplify participant tracking.
* Remove clean tests that have been moved to matrix-js-sdk
* Use native js-sdk group call support
Now that the js-sdk supports group calls natively, our group call implementation can be simplified a bit. Switching to the js-sdk implementation also brings the react-sdk up to date with recent MSC3401 changes, and adds support for joining calls from multiple devices. (So, the previous logic which sent to-device messages to prevent multi-device sessions is no longer necessary.)
* Fix strings
* Fix strict type errors
* Fix embedded Element Call screen sharing
Makes it a request in each direction rather than a request and reply
since replies to requests time out and so can't wait for user interaction.
* Fix tests