Commit 8b657cf
Bring SableCall Up-to-Date With ElementCall Upstream (#12)
* Posthog add reconnect event (element-hq#3953)
* Add Posthog events for Call reconnect including the reason
* Expose single trackCallReconnecting() entry point on PosthogAnalytics
* Track reconnect duration and align with existing analytics pattern
* Refactor combined$ to return [connected, reason] tuple
* Update firefoxUserPrefs to allow getUserMedia and enumerateDevices on CI
---------
Co-authored-by: Valere <bill.carson@valrsoft.com>
Co-authored-by: Robin <robin@robin.town>
Co-authored-by: Timo K <toger5@hotmail.de>
* Fix tests
* Fix tap-to-show call controls on iOS (ReactMouseEvent -> ReactPointerEvent)
* review
* Update dependency livekit-client to v2.18.10
* Use correct preposition
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Link to self-hosting guide
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Add missing article
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Add missing article
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Reorder sentence fragments for better readability
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Fix typo
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Add missing colon
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Add missing apostrophe
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Remove extra space and add colon
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Add missing apostrophe
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Fix linking link
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Minor documentation fixes
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Fix media foreground elements being obscured by header/footer
* devx: Allow to run local dev EC on mobile in same wifi
* Review (everything except translation feedback)
* lint
* refactor video blur toggle
* translation fixes
* use previous device selection logic
* cleanup
* Update MediaMuteAndSwitchButton.test.tsx
* List additional dependencies needed for development
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Log unhandled promise rejections in rageshakes (element-hq#3972)
For more comprehensive rageshake logs. Copied from Element Web's rageshake.ts.
* Bump babel/plugin-transform-modules-systemjs (element-hq#3974)
* Posthog: drop $initial_person_info from outgoing events (element-hq#3968)
* Posthog: drop $initial_person_info from outgoing events
* Posthog: migrate from sanitize_properties to before_send
* strip URL fields from $set / $set_once
* enable mask_personal_data_properties
* review
* update tests to check for `delete` (not anymore `=null`)
rename: `applyPrivacyFilters`->`santizeSensitiveData`
---------
Co-authored-by: Timo K <toger5@hotmail.de>
* Allow PostHog dependency updates again
* Ensure that foreground elements of media tile do not overlap app bar
Because the type of header that we use in Element X (an 'app bar') lives in a different place in the document than the other headers, it needs a special branch to propagate the right insets.
* Stop the settings button from appearing while footer is fading out
The designs actually never want us to show the settings button in the footer if an app bar is in use (as in Element X mobile apps), so just avoid showing it at all in that case.
* reproduce bug internal element-hq#578
Regression: Controls are shown in Mobile PIP
* fix(regression): control buttons should be hidden on mobile PIP
* review
* Update and simplify tests
* merge fixups
* review: eqeqe
Co-authored-by: Robin <robin@robin.town>
* del: windowMode$ from public callViewModel
replace with edgeToEdge$
* Avoid overlapping spotlight tiles with the app bar
The default inset that is given to the fixed layout layer needs to account for the app bar now.
* Ensure landscape layout is always edge-to-edge on mobile
The spotlight landscape layout was edge-to-edge previously, and should remain that way.
* fix visibility test
* Update InCallView.test.tsx
* fix backgroundBlurToggleClick -> videoBlurToggleClick
* Update src/state/ViewModel.ts
Co-authored-by: Robin <robin@robin.town>
* element-call moved away from yarn to pnpm
* element-call set packageManager to pnpm
* updating pnpm-lock
* test: Add test for new option
review: Remove uneeed {" "}
* eslint
* review: better doc
* touch commit to unbock gh
* bump playwright
update playwright container image
* bump playwright
update playwright container image
* test: use toHaveCount instead of count()).toBe
* Fix play of second leave sound
* fixup: Missing translation
* Update Gradle to v8.14.5
* Add onPipMediaOrientationUpdate to controls api.
* add docs
* Update all non-major dependencies
* Switch from global to globalThis to fix import issues
* Update dependency @vector-im/compound-design-tokens to v10.2.0
* Update dependency livekit-client to v2.19.0
* Show the right fallback labels in device switcher menus
* Request full device names when device switchers are open
* temp add tests
* Fix footer stories
* Add test
* Fix type error
* fix tests
* lint
* fix race
* Avoid usage of SWIFT_RELEASE_TOKEN in dry runs
* Fix corner radius on screenshare overlay in widget mode
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Update CallViewModel.test.ts
* fix error with no media
* Fix illegible text color for raised hand duration
Fixes: https://github.com/element-hq/voip-internal/issues/579
* feat(errors): Report livekit as such rather than like unknown errors
* Reorder entries
* fixup: ensure dynamic keys are extracted by i18n parser
* fixup snapshots
* feat(mute): add syncing state and disable toggle during async mute
* storybook: Add storybook for audio/video busy
* fixup: Update snapshot with button busy state
* fix: Initial unmute is reverted
* Add `matrix_rtc_mode` config option (element-hq#4014)
* Move MatrixRTCMode enum from settings.ts to ConfigOptions.ts
* Add matrix_rtc_mode config option
* add matrix_rtc_mode to config.sample.json
* Update src/settings/DeveloperSettingsTab.tsx
Co-authored-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Update src/settings/DeveloperSettingsTab.test.tsx
Co-authored-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* reviewer comments
---------
Co-authored-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* review: remove unneeded early return
* review: add test for busy behavior for Mic and Video buttons
* review: cleanup removed redundant default properties
* Update Compound
* Update dev settings snapshot
* Update codecov-action to v7
* Update LiveKit client to v2.19.1
* Remove deprecated @types/uuid
* Replace deprecated i18next-parser with i18next-cli
* Update LiveKit client to v2.19.2 (element-hq#4031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Add primary button icon configuration and set it left arrow in lobby
* tests
* Show typed error when matrix_2_0 mode is forced without homeserver MSC4354 support (element-hq#4017)
Show typed error when matrix_2_0 mode is forced without homeserver MSC4354 support
* Remove deprecated @types/content-type dependency
* Update DeveloperSettingsTab.test.tsx.snap
* more test coverage
* Improve internal model of ringing, expose ringing intent to call UI
I found our code's internal model of ringing a little overgrown (it had superfluous states like 'unknown') and difficult to extend with metadata or callbacks relating to ring attempts. By modeling ringing instead as a stream of ring attempts, where each attempt has an intent, a recipient, and an eventual outcome (accept/decline/timeout), I find it more natural to work with.
This makes room for a future 'try again' callback to allow ringing someone again after a timeout, and also forced me to look for a simpler solution to the duplicate leave sound effects. I exposed the intent of the ringing attempt to the call UI so I can later use it in the header.
* Fix a minor resource leak with display names and avatars
I noticed that calls to createDisplayNameBehavior$ and createAvatarUrlBehavior$ were technically leaking resources since they reused the ObservableScope from their outer scope, which in practice lasts for the entire lifetime of the CallViewModel. This would not have had any noticeable effect unless you had other participants leave and rejoin the same call many thousands of times.
* rename db
* Update src/state/media/observeRtpStreamStats.ts
Co-authored-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Add lint rule to prevent ObservableScope resource leaks
The rule of thumb to avoid resource leaks is that you should never call ObservableScope methods in a callback unless the ObservableScope is directly passed to or created inside that callback. I had a go at codifying this as a lint rule.
* Update Compound to v10.2.2
* Switch to pnpm 11.6.0
* Update @vitejs/plugin-react to 0.6.2
* Update LobbyView.tsx
* Set up label sync
* update back arrow size
* refactor using enum vs jsx node
* update tests
* fix prettier
* Update dependency vite to v8.0.16 [SECURITY]
* review
* Switch from prettier to oxfmt
* Document why we override resolved versions
* Reformat
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* I cannot belive GH... Does this commit fix the processing situation?
* update comment + fix tests
* Remove accidentally added file
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Revert to original fix for duplicate leave sounds
My attempted simpler fix of applying takeUntil(autoLeave$) to leaveSoundEffect$ didn't work.
* Only consider a call accepted if the *intended* recipient picks up
* Restore ability to play sound with custom volume
This was missing from the revert in 8b0f505.
* Format
* Clarify which Matrix-LiveKit members are remote
It was rather confusing that matrixLivekitMembers$ gives you objects of type RemoteMatrixLivekitMembers and yet the *local* member would often be among these. I've attempted to clear this up. To my knowledge this wasn't creating any bugs.
* Fix docs for autoLeave URL param
The parameter as seen in URLs has a different name from what's used in the code.
* Move ringing status indicator to header on mobile
On mobile, the ringing status indicator is supposed to display in the header rather than on a tile. The exact layout differs between Android and iOS. To get it right I had to refactor AppBar to use CSS grid templates.
(Also, I changed my mind about the exact ringing data I needed out of CallViewModel - sorry. A little move of the ringtone audio renderer into its own component was necessary to accommodate that.)
* Update remaining variable names for remote Matrix-LiveKit members
* Address remaining resource leak error
* Improve test coverage
* Fix vertical alignment of ringing status icons on Chromium and Safari
* Show ringing status even on spotlight tiles (except in app bar mode)
* Invert the colors of the speaker toggle button
* Show the subtitle of the app bar on small screens
Previously we were hiding the entire app bar on mobile phones in landscape orientation. However now that the app bar supports a small 'subtitle' element, we should show only the subtitle in this case to match the designs.
The subtitle still hides on tap, just like the footer.
* Add PiP border in 1on1 layouts
Fixes: element-hq#4008
* Make it clearer why the app bar elements need to be hidden individually
* Remove redundant styles
* Eliminate noOutline constant
* Fix formatting
* Switch from eslint to oxlint
* Use regex to test node name
* Remove duplicate paths config
* Port over copyright rule
* fix(voice): Default to earpiece for voice only call
* Use the correct company name
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* playwright: New toast
* Hide local tile from mobile voice calls in landscape orientation
To match the designs. Just like in portrait, it wouldn't contribute anything meaningful.
* Remove obsolete avatar patch in favor of MSC4039
* formatting and restore workflows
* Fix github workflows to use pnpm, pin actions, and publish manually
* Pin remaining pnpm actions and ignore unfenced codecov secret
* Ensure Codecov doesn't break CI if token is missing
* Remove pnpm version from GitHub Actions config to prevent version mismatch
* Fix Zizmor errors and use real SHAs
* Ignore pnpm version mismatch on git-hosted dependencies
* Format files
* fix tests
* formatting...
* fix duplicate thing
* readd timeout with delay
---------
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: fkwp <fkwp@users.noreply.github.com>
Co-authored-by: Valere <bill.carson@valrsoft.com>
Co-authored-by: Robin <robin@robin.town>
Co-authored-by: Timo K <toger5@hotmail.de>
Co-authored-by: fkwp <github-fkwp@w4ve.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Timo <16718859+toger5@users.noreply.github.com>
Co-authored-by: Valere Fedronic <valeref@matrix.org>
Co-authored-by: cronkenstein <cronkenstein.ac@proton.me>
Co-authored-by: ElementRobot <releases@riot.im>
Co-authored-by: 7w1 <noreply@sl.sable.moe>1 parent f7a00e1 commit 8b657cf
285 files changed
Lines changed: 29662 additions & 4796 deletions
File tree
- .githooks
- .github
- workflows
- .storybook
- .yarn/plugins
- backend
- config
- docs
- embedded/android
- gradle
- wrapper
- eslint
- locales
- bg
- cs
- da
- de
- el
- en
- es
- et
- fi
- fr
- id
- it
- ja
- lv
- nl
- pl
- ro
- ru
- sk
- sv
- tr
- uk
- zh-Hans
- zh-Hant
- playwright
- fixtures
- mobile
- utils
- widget
- scripts
- sdk
- src
- @types
- __snapshots__
- analytics
- audio
- button
- __snapshots__
- components
- __snapshots__
- config
- grid
- icons
- input
- livekit
- reactions
- room
- __snapshots__
- settings
- __snapshots__
- state
- CallViewModel
- localMember
- remoteMembers
- media
- tile
- utils
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
10 | 8 | | |
11 | 9 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
2 | 9 | | |
3 | 10 | | |
4 | 11 | | |
5 | 12 | | |
6 | 13 | | |
7 | 14 | | |
8 | 15 | | |
9 | | - | |
| 16 | + | |
10 | 17 | | |
11 | 18 | | |
12 | 19 | | |
13 | 20 | | |
14 | 21 | | |
15 | | - | |
16 | | - | |
17 | | - | |
| 22 | + | |
| 23 | + | |
18 | 24 | | |
19 | 25 | | |
20 | 26 | | |
21 | 27 | | |
22 | | - | |
| 28 | + | |
| 29 | + | |
23 | 30 | | |
24 | 31 | | |
25 | 32 | | |
26 | | - | |
| 33 | + | |
27 | 34 | | |
28 | 35 | | |
29 | 36 | | |
30 | 37 | | |
31 | | - | |
32 | 38 | | |
33 | 39 | | |
34 | 40 | | |
35 | | - | |
36 | | - | |
37 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
38 | 45 | | |
39 | 46 | | |
0 commit comments