Robin
a1be4ff0f9
Merge pull request #4068 from element-hq/landscape-voice-call
...
Hide local tile from mobile voice calls in landscape orientation
2026-06-26 11:22:25 +02:00
Robin
8ab7f89e36
Hide local tile from mobile voice calls in landscape orientation
...
To match the designs. Just like in portrait, it wouldn't contribute anything meaningful.
2026-06-25 20:29:24 +02:00
Robin
ded3d0ab81
Merge pull request #4061 from element-hq/subtitle-only
...
Show the subtitle of the app bar on small screens
2026-06-23 10:01:55 +02:00
Robin
a4b4a6b655
Remove redundant styles
2026-06-23 09:42:57 +02:00
Robin
be5d8140c9
Make it clearer why the app bar elements need to be hidden individually
2026-06-23 09:42:28 +02:00
Robin
7d54487354
Merge pull request #4060 from element-hq/speaker-color
...
Invert the colors of the speaker toggle button
2026-06-23 09:27:39 +02:00
Robin
504888b359
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.
2026-06-22 18:21:17 +02:00
Robin
99e95658df
Invert the colors of the speaker toggle button
2026-06-22 16:10:45 +02:00
Robin
5a68010022
Merge pull request #4046 from element-hq/header-subtitle
...
Move ringing status indicator to header on mobile
2026-06-22 13:14:55 +02:00
Robin
a456e47796
Show ringing status even on spotlight tiles (except in app bar mode)
2026-06-22 12:55:37 +02:00
Robin
27abf816f5
Fix vertical alignment of ringing status icons on Chromium and Safari
2026-06-22 12:12:54 +02:00
Robin
c6188a8345
Improve test coverage
2026-06-22 11:59:16 +02:00
Robin
22ff0d34b7
Merge branch 'livekit' into header-subtitle
2026-06-22 11:35:52 +02:00
Robin
96d1d1e1aa
Merge pull request #4040 from element-hq/scope-leak-lint
...
Add lint rule to prevent ObservableScope resource leaks
2026-06-22 11:13:10 +02:00
Robin
6f75e90fcd
Merge pull request #4051 from element-hq/remote-members
...
Clarify which Matrix-LiveKit members are remote
2026-06-22 11:05:32 +02:00
Robin
f78f507745
Address remaining resource leak error
2026-06-22 10:53:08 +02:00
Robin
89c148a530
Update remaining variable names for remote Matrix-LiveKit members
2026-06-22 10:44:24 +02:00
Robin
e11c04ac87
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.)
2026-06-18 17:41:35 +02:00
Robin
d417bd8b90
Merge pull request #4052 from element-hq/auto-leave-docs
...
Fix docs for autoLeave URL param
2026-06-18 12:50:13 +02:00
Robin
f72a593eb4
Merge branch 'livekit' into scope-leak-lint
2026-06-18 12:49:40 +02:00
Robin
f6cd06fc01
Fix docs for autoLeave URL param
...
The parameter as seen in URLs has a different name from what's used in the code.
2026-06-18 12:14:23 +02:00
Robin
e77d143ce1
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.
2026-06-18 12:10:32 +02:00
Robin
256219c4bf
Merge pull request #4034 from element-hq/ringing-intent
...
Improve internal model of ringing, expose ringing intent to call UI
2026-06-18 12:00:34 +02:00
Robin
6af72f4c90
Format
2026-06-18 11:42:02 +02:00
Robin
3a598ffe43
Restore ability to play sound with custom volume
...
This was missing from the revert in 8b0f5054dd .
2026-06-18 11:35:46 +02:00
Robin
05797097c6
Only consider a call accepted if the *intended* recipient picks up
2026-06-18 11:05:55 +02:00
Robin
8b0f5054dd
Revert to original fix for duplicate leave sounds
...
My attempted simpler fix of applying takeUntil(autoLeave$) to leaveSoundEffect$ didn't work.
2026-06-18 11:05:55 +02:00
Robin
8cda9777a5
Merge branch 'livekit' into ringing-intent
2026-06-18 06:41:17 +02:00
Robin
0a572a9528
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.
2026-06-12 13:16:28 +02:00
Robin
3ef3ebe897
Merge pull request #4036 from element-hq/metadata-leak
...
Fix a minor resource leak with display names and avatars
2026-06-12 10:05:50 +02:00
Robin
96a9115ee7
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.
2026-06-11 12:21:07 +02:00
Robin
2ac6cdeb46
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.
2026-06-11 12:12:27 +02:00
Robin
c021fc1548
Merge pull request #3995 from element-hq/toger5/fix-double-leave-sound
...
Fix play of second leave sound
2026-06-02 14:46:43 +02:00
Robin
399b7d83da
Merge pull request #3988 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.19.0
2026-06-02 11:50:10 +02:00
Robin
47326c28d3
Fix type error
2026-06-02 11:33:17 +02:00
Robin
084fa20b3d
Merge pull request #4003 from element-hq/device-switch-fixes
...
Show the right labels in device switcher menus
2026-06-02 11:29:28 +02:00
Robin
cec78a383d
Fix footer stories
2026-06-02 11:14:53 +02:00
Robin
faa34aeaaa
Merge pull request #3987 from element-hq/renovate/compound
...
Update dependency @vector-im/compound-design-tokens to v10.2.0
2026-06-02 10:48:44 +02:00
Robin
5fed562db2
Request full device names when device switchers are open
2026-06-02 10:36:57 +02:00
Robin
164765cd27
Show the right fallback labels in device switcher menus
2026-06-02 10:15:40 +02:00
Robin
af8a876adc
Merge pull request #3999 from element-hq/renovate/embedded-package-dependencies
...
Update Gradle to v8.14.5
2026-06-02 08:42:39 +02:00
Robin
0de6e94647
Merge pull request #3983 from element-hq/one-on-one-portrait-regressions
...
Fix a couple more regressions due to the one-on-one portrait layout
2026-05-20 17:03:54 +02:00
Robin
8d07d552d7
Ensure landscape layout is always edge-to-edge on mobile
...
The spotlight landscape layout was edge-to-edge previously, and should remain that way.
2026-05-20 16:11:07 +02:00
Robin
8324ce2ce0
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.
2026-05-20 16:11:07 +02:00
Robin
eaa049433a
Merge pull request #3979 from element-hq/settings-footer-glitch
...
Stop the settings button from appearing while footer is fading out
2026-05-20 15:15:37 +02:00
Robin
4b175b814e
Update and simplify tests
2026-05-20 13:43:33 +02:00
Robin
43f1b89535
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.
2026-05-20 12:38:18 +02:00
Robin
284d76e333
Merge pull request #3977 from element-hq/posthog-updates
...
Allow PostHog dependency updates again
2026-05-20 12:22:51 +02:00
Robin
7b32135328
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.
2026-05-20 11:55:27 +02:00
Robin
94ce207581
Allow PostHog dependency updates again
2026-05-20 11:50:01 +02:00
Robin
6b261611a5
Log unhandled promise rejections in rageshakes ( #3972 )
...
For more comprehensive rageshake logs. Copied from Element Web's rageshake.ts.
2026-05-19 13:44:16 +02:00
Robin
f3c0b9ed8d
Merge pull request #3969 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.18.10
2026-05-18 13:30:48 +02:00
Robin
ac1297d02c
Merge pull request #3916 from element-hq/one-on-one-portrait
...
Create a proper one-on-one call layout for portrait screens
2026-05-18 13:28:59 +02:00
Robin
d66afd734d
Merge pull request #3971 from Johennes/johannes/minor-docs-fixes
...
Minor documentation fixes
2026-05-18 13:17:34 +02:00
Robin
cfbdbca5bb
Fix media foreground elements being obscured by header/footer
2026-05-18 13:08:52 +02:00
Robin
d7acce49a3
Merge pull request #3970 from Johennes/johannes/typo
...
Minor README fixes
2026-05-18 10:12:59 +02:00
Robin
7e932d27da
Merge pull request #3939 from element-hq/renovate/github-actions
...
Update GitHub Actions
2026-05-15 11:42:37 +02:00
Robin
a1e03ea389
Merge pull request #3942 from element-hq/renovate/compound
...
Update dependency @vector-im/compound-design-tokens to v10.1.1
2026-05-15 11:36:20 +02:00
Robin
de52ea6590
Fix tests
2026-05-15 11:29:22 +02:00
Robin
9ad5d02e31
Merge branch 'livekit' into one-on-one-portrait
2026-05-15 11:28:47 +02:00
Robin
f3234b1c3e
Merge branch 'livekit' into renovate/github-actions
2026-05-15 11:26:25 +02:00
Robin
53acd2596c
Merge branch 'livekit' into renovate/compound
2026-05-15 11:20:55 +02:00
Robin
b562a0f721
Create a proper one-on-one call layout for portrait screens
2026-05-13 09:54:58 +02:00
Robin
bd2de29470
Merge pull request #3922 from element-hq/hs/compound-switch
...
Use Compound Switch component
2026-05-11 09:51:56 +02:00
Robin
069074d241
Merge branch 'livekit' into hs/compound-switch
2026-05-11 09:36:08 +02:00
Robin
d50c8e0ca9
Update Playwright test to look for 'Decline' button
...
Since the label of this button is changing in Element Web.
2026-05-06 12:37:31 +02:00
Robin
5ca50fdb63
Merge pull request #3913 from element-hq/fkwp/feature_relax_homeserver_offline
...
[Feature] add grace period before reporting the sync loop as disconnected
2026-05-04 18:18:27 +02:00
Robin
7916360b52
Convert all grace period tests to marble tests
2026-05-04 18:01:41 +02:00
Robin
83a9a2a86c
Merge pull request #3903 from element-hq/edge-to-edge
...
Allow calls to display edge-to-edge on mobile
2026-05-04 15:40:08 +02:00
Robin
0470dabff2
Merge pull request #3940 from element-hq/renovate/all-minor-patch
...
Update all non-major dependencies
2026-05-01 16:10:27 +02:00
Robin
f093946a29
Allow calls to display edge-to-edge on mobile
...
By adding viewport-fit=cover to the <meta name="viewport"> header, the page now requests to be displayed edge-to-edge across the entire screen. This gives us control over what we display around camera cut-outs and system navigation UI, if the user agent supports it. I then adjusted the styles of various UI elements to ensure that they still lie within the screen's safe area.
2026-05-01 12:14:40 +02:00
Robin
72d922468e
Merge pull request #3914 from element-hq/valere/playwright/update_test_for_latest_web
...
Dismiss the new invite confirmation modal
2026-04-23 17:06:34 +02:00
Robin
ab05e8d250
Merge pull request #3900 from element-hq/invert-buttons-again
...
Invert the microphone and video button colors again
2026-04-21 14:09:29 +02:00
Robin
e9fd84816e
Invert the colors of the camera and microphone buttons again
...
Turns out design prefers the button colors how they were prior to fa844446b6 .
2026-04-21 11:21:48 +02:00
Robin
2c65a75ba8
Merge pull request #3889 from element-hq/multiple-screen-shares
...
Fix visual glitches with multiple screen shares
2026-04-17 13:09:41 +02:00
Robin
7e39889f78
Fix name tags appearing in the wrong place with multiple screen shares
...
They were not properly being contained to where the MediaView is supposed to appear, causing them to all stack up on the first screen share in the spotlight tile.
2026-04-17 12:39:40 +02:00
Robin
96b343effc
Fix forward/back buttons not showing up on desktop for multiple screen shares
...
6667fc54c0 changed this CSS selector that shows buttons on hover to only target the buttons in the bottom right corner of the spotlight tile, causing the forward/back buttons to stay invisible.
2026-04-17 12:23:29 +02:00
Robin
e8963effe2
Test that the local user can see their own screen share
...
To make this test work I had to extend the mocking of the CallViewModel tests to make a local connection object exist.
2026-04-15 20:03:49 +02:00
Robin
b03524e25f
Make screen sharing work more like speaking marbles in tests
...
This approach is more flexible in that it allows even the local participant to share their screen in CallViewModel tests, and more rigorous in that it ensures that application code is reacting specifically to track publications.
2026-04-15 19:56:04 +02:00
Robin
832c5784d4
Fix local screen share not appearing in one-on-one calls
...
This was regressed by 9dfade68ee .
2026-04-15 19:55:32 +02:00
Robin
014f645bb3
Merge pull request #3880 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.18.2
2026-04-15 17:00:28 +02:00
Robin
27a6e67ce9
Merge pull request #3870 from element-hq/delete-unused-css
...
Delete unused CSS file
2026-04-15 11:09:33 +02:00
Robin
eccf119afd
Merge pull request #3871 from element-hq/no-app-prompt
...
Get rid of the 'open in app' mobile prompt
2026-04-14 18:39:06 +02:00
Robin
438b6b8672
Move local video tile in one-on-one layout to be flush with the edge
...
Per design updates.
2026-04-13 18:30:42 +02:00
Robin
364fdb5e54
Get rid of the 'open in app' mobile prompt
...
We've determined that calls are working fine in mobile browsers these days and we no longer need it.
2026-04-13 18:05:00 +02:00
Robin
3b0dce33a2
Merge pull request #3863 from element-hq/renovate/major-compound
...
Update Compound (major)
2026-04-13 15:30:29 +02:00
Robin
9df60310e4
Update test snapshots
2026-04-13 15:13:19 +02:00
Robin
4d1fbf0502
Delete unused CSS file
...
Seems this was mistakenly committed during initial development of the Grid component. src/grid/Grid.module.css is the one that's actually used.
2026-04-13 15:08:40 +02:00
Robin
0025d4f882
Merge pull request #3868 from element-hq/reactions-placement
...
Fix placement of reaction and raised hand indicators
2026-04-13 15:06:44 +02:00
Robin
5daa110f7e
Make the footer move floating tiles out of the way when shown
...
If you manage to move your floating video tile to the bottom of the screen in a small landscape window, the footer obscures the tile when shown. The designs want us to smoothly move the floating tile out of the way in this case.
2026-04-13 13:13:09 +02:00
Robin
0842b2b472
Fix placement of reaction and raised hand indicators
2026-04-13 13:02:15 +02:00
Robin
01bd1e3af7
Merge pull request #3842 from element-hq/voice-intents
...
Add intents for group voice calls
2026-04-13 12:34:45 +02:00
Robin
330584ac31
Merge pull request #3827 from element-hq/storybook
...
Set up Storybook again
2026-04-08 17:12:16 +02:00
Robin
417164cc11
Merge pull request #3855 from element-hq/changelog-labels
...
Reconfirm that a PR has a changelog label when new commits are pushed
2026-04-08 16:00:07 +02:00
Robin
2a5acc0207
Reconfirm that a PR has a changelog label when new commits are pushed
...
Without re-running the changelog label workflow on new commits, PRs get stuck waiting for the check after new commits are pushed.
2026-04-08 15:08:54 +02:00
Robin
efd1b42da0
Merge pull request #3847 from element-hq/renovate/npm-vite-vulnerability
...
Update dependency vite to v8 [SECURITY]
2026-04-07 01:45:41 +02:00
Robin
31b35463fc
Fix build
2026-04-07 01:31:21 +02:00
Robin
3c2c189830
Merge pull request #3838 from element-hq/valere/refactor_transport_discovery
...
Refactor LocalTransport discovery and validation
2026-04-06 13:24:16 +02:00
Robin
2c34e681a1
Fix tests
2026-04-06 12:58:26 +02:00
Robin
48226795de
Merge pull request #3846 from element-hq/renovate/major-compound
...
Update dependency @vector-im/compound-design-tokens to v9
2026-04-06 12:44:47 +02:00