Skip to content

Earpiece switcher and overlay #3347

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 23 commits into from
Jun 26, 2025
Merged

Earpiece switcher and overlay #3347

merged 23 commits into from
Jun 26, 2025

Conversation

robintown
Copy link
Member

@robintown robintown commented Jun 18, 2025

A couple things still need doing here:

  • Write tests
    • move mediaDevice test to callViewModel
  • Remove the controls API for toggling the earpiece switcher, which we no longer need
  • Split the header out into another PR, maybe?
  • Modernize the new context
  • Force dark theme for the overlay (and also the header and footer, when it is active)
    • The light theme looks very correct to me when the phone is in light theme mode (this is tbd)
    • Let's ask Aaron
    • Result: We do the same then what we do with emoji and settings overlays: dark overlay in light and dark theme
      This requires us to also swap the icon colors for the header bar icons
    • Result V2: we are fine with the inconsistency between modal background darkening and earpiece overlay lightening
  • Fix android designs (video goes to top of the bar)
  • Fix hover border being clipped
  • Fix header being shown in PiP
  • Only present the fast toggling UX in case either the Earpiece speaker or the Main speaker are selected
    • The fast toggling UX is only toggling between Earpiece and Main speaker
    • We also consider always showing the toggles but making them actions (shows what will happen when pressed instead of the current state) This is currently implemented in the pr as of: df3f962
    • This might be not enough: we also need to make sure to always show the button (even if in bluetooth mode)
  • landscape should hide the header for now
  • Update Element Web version used for end-to-end tests to a version that includes Allow Element Call to learn the room name element-web#30213

Potential candidates for a follow up PR

  • fix android designs OneOnOneLayout (so that the app_bar overlays the video and but the floating tile does still respect the bounds)
  • fix OneOnOneLayout Landscape (currently the app bar is not visible in this mode.

Closes #3271

@robintown robintown added the PR-Feature Release note category. A PR that introduces a new user facing feature. label Jun 18, 2025
@robintown
Copy link
Member Author

robintown commented Jun 24, 2025

@fkwp This is now ready for testing! Expect to see two headers on mobile until we get to the EX tasks listed in https://github.com/element-hq/voip-internal/issues/360

robintown and others added 7 commits June 24, 2025 11:28
This will be used by Element X to show an earpiece toggle button in the header.
The header needs to be passed forward as a string to some components and as a bool (hideHeader) to others.
Also use a enum instead of string options.
 - make video render below the header on Android.
(also show quick switcher if headphones are connected)
@toger5 toger5 merged commit f509c06 into livekit Jun 26, 2025
23 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR-Feature Release note category. A PR that introduces a new user facing feature.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

UX implementation of fast audio output switching between Main Speaker and Earpiece Speaker (for In-App Calling)
2 participants