Commit Graph

49 Commits

Author SHA1 Message Date
prlanzarin
141c553b17 fix(audio): review device selection in mobile endpoints
Mobile users have no way to change I/O devices after joining audio.
The removal of the audio options chevron in mobile browsers was supposed
to be replaced by something else - in this case, by the dedicated
leave/join audio button. That didn't happen, leave/join audio button
retained the old behavior.

Review device selection in mobile endpoints via two UI/UX changes:
  - Restore the device selection chevron/icon in mobile endpoints
  - Override the leave/join button action in mobile endpoints so that it
    opens the device selection contextual menu, which also includes the
    "Leave audio" option. This retains the old behavior (leaving audio)
    while also providing an way for users to change devices mid-call in
    mobile browsers.
2024-04-30 14:29:53 -03:00
KDSBrowne
1b51377147 fix getContentAnchorEl console error 2023-05-10 01:31:48 +00:00
prlanzarin
a47ef9c244 fix(audio): add default device placeholder in input-stream-live-selector
Handles scenarios where setSinkId is not supported and use a placeholder Default device label
2023-04-11 15:48:02 -03:00
Ramón Souza
43cf7cfc69 adjust audio/video dropdown position 2022-10-24 14:44:33 -03:00
KDSBrowne
9c6a6298e2 update menu ids to be unique 2022-10-05 21:54:59 +00:00
prlanzarin
89e814d570 fix(audio): centralize device change code, add rollbacks, surface errors
There's no rollback procedure in case a device switch fails right now,
nor does the code entrypoints that call the switching procedures wait
for resolution or failure before marking the new device as chosen. That
may cause inconsistent states in a couple of ways:
  - No rollback: switch fails, audio is still on but no actual
    microphone input is being transmitted
  - Not waiting for resolutions: inconsistent chosen devices on failures
Device switching errors are also not surfaced to the end user

This commit:
  - Adds device rollback and proper resolution/failure response
    awaits to try and make the state a bit more consistent.
  - Centralizes the input device switching code to be reused between
    different bridges
  - Centralizes device ID state management in audio-manager to try and
    mantain them a bit more consistent across the board
  - Surface device switching failures to the end user
  - Guarantee device IDs are set to the session storage on all
    appropriate scenarios
2022-08-24 13:28:27 +00:00
Anton Georgiev
ca0195585f
Merge pull request #15441 from antonbsa/audio-tests
test: Add new audio tests
2022-08-02 11:07:04 -04:00
Anton B
944e0b2981 test: add audio tests 2022-07-15 17:54:16 -03:00
Ramon Souza
83d9feb9c0 fix missing import in audio controls 2022-07-15 11:41:11 -03:00
Ramón Souza
267a6f5c9c
Merge pull request #15203 from ramonlsouza/improve-ghost-button-border
style: improve ghost buttons border in low density display
2022-07-15 12:06:59 +01:00
Anton B
d00699561f fix data-test props to same quote type 2022-07-11 17:35:14 -03:00
Anton B
d6f32f3422 Merge remote-tracking branch 'upstream/v2.6.x-release' into test-fixes-v2.6 2022-07-06 11:07:00 -03:00
Ramon Souza
29d597f7df Merge remote-tracking branch 'upstream/v2.6.x-release' into improve-ghost-button-border 2022-07-05 14:06:19 -03:00
Ramón Souza
a1ac9fe11d
Merge pull request #15293 from ramonlsouza/restore-audio-shortcuts
fix: audio shortcuts regression
2022-07-04 21:09:27 +01:00
Anton B
c71e5c9f74 test: fix all 2.6 tests and temporarily skip inconsistent ones 2022-07-01 17:55:32 -03:00
Ramon Souza
a29b651d9c restore audio mute / leave shortcuts 2022-06-29 15:19:30 -03:00
prlanzarin
0fead2ebbb fix: omit unused props in talking-indicator, input stream selector and emoji button
The talking-indicator, emoji-button and input-live-stream-selector
components are passing props downstream that weren't omitted or handled
by inherited components (Button, Icon). That causes a handful of error
logs to be spammed in the console of dev environments, which is
annoying.

This commit addresses the issue by:
  - Making the talking, spoke, muted and isViewer props transient
    (styled-components) - which means they won't reach the DOM (as
    expected since they're style-only)
  - Omitting the EmojiButton `rotate` prop in the Icon component itself
    * Made that instead of transient because might be useful to migrate
      the rotate code to the Icon component?
2022-06-29 17:15:46 +00:00
Ramon Souza
04f3b50d0d improve ghost buttons border 2022-06-16 16:59:01 -03:00
Ramon Souza
edeb70de0d Merge tag 'v2.5.1' into merge25-26-jun16 2022-06-16 13:58:54 -03:00
Max Franke
a1860f3dd4 fix(audio): select device dropdown icon position
Move the 'leave' icon to the left-hand side
2022-06-15 12:07:51 -03:00
Max Franke
9dfef30dba fix(audio): select device dropdown colors
Set list titles colors to colorGrayDark
Set active devices background color to off-white
2022-06-15 12:00:40 -03:00
Max Franke
1c6577f4db feat(audio): unify audio buttons
Move device selection dropdown to microphone button
Move option 'leave audio' to an option within the dropdown
Remove the audio exit button when device !== mobile
2022-06-09 13:37:37 -03:00
Joao Victor
18b06e1ba5 fix: point media button chevrons upwards #15068 2022-05-25 09:38:22 -03:00
Joao Victor
e070b586c4 [2.5] fix: popover menus in RTL mode 2022-05-13 10:42:19 -03:00
Ramón Souza
fa7af8fe27 move menu component to common folder 2022-02-15 15:38:55 +00:00
Ramón Souza
246e3b3e8f move button component to common folder 2022-02-14 20:20:50 +00:00
Ramón Souza
a29324c843 convert audio input-stream-live-selector component 2021-11-09 12:08:30 +00:00
Ramón Souza
b71f312fee Merge remote-tracking branch 'upstream/develop' into styled-components-10 2021-11-08 18:37:34 +00:00
Ramón Souza
3f00a8486e convert audio-controls bbbmenu 2021-11-05 19:22:25 +00:00
KDSBrowne
39fb8a6baa center chevron in audio controls dropdown 2021-10-21 17:29:44 +00:00
Anton Georgiev
6e0c74e02f style: Pulled latest fonts, audio icon swap 2021-10-18 20:26:01 +00:00
Anton
3f90607443 Merge remote-tracking branch 'upstream/develop' into fix-elements-and-util-functions 2021-09-02 15:31:24 -03:00
Mario Jr
7ee61abaee chore(audio): fix eslint / sonar smells on button-emoji 2021-08-30 15:19:52 -03:00
Mario Jr
9664d052c9 chore(audio): small fixes on "Update media selection dropdown" #13015
Removed trailing spaces in audio-controls/component.jsx
Fixed browser warning about required BBBMenu's onClick prop in
input-stream-live-selector/component.jsx
Fixed eslint warning "react/button-has-type" in ButtonEmoji.jsx
Fixed browser warning about not recognized hideLabel prop in ButtonEmoji.jsx
2021-08-30 11:41:58 -03:00
Anton
acea25b781 fix data-test prop on join and leave audio 2021-08-25 16:28:47 -03:00
KDSBrowne
e195d95494 update media device dropdown to menu | semantic fixes 2021-08-17 03:18:49 +00:00
Vitor Mateus De Almeida
145ca61d40 linting some files 2021-08-09 11:24:02 -03:00
Mario Jr
2801848789 chore(audio): update some code checks done by sonarcloud 2021-06-30 18:39:32 -03:00
Mario Jr
f379d35158 Merge branch 'develop' into feat-add-device-button-selector 2021-06-25 18:47:41 -03:00
Mario Jr
ce076ffaad feat(audio): add a new button for selecting audio device
This commit adds a new small button over the "Phone/audio" button. Currently
this button pops up the device audio selector, which contains the "Leave audio"
option. This commit brings back the "Leave audio" behavior to the phone
button, using a new smaller button to switch between audio devices.

This issue address the problem reported by #12320 and complements the work done
for #9723.

Some technical details:
Added a new component : ButtonEmoji. This allow us to add an emoji inside
another button.
Modified dropdown trigger a bit: if the trigger contains a ButtonEmoji,
then we will use the emoji to trigger the dropdown (instead of the button
itself). This commit doens't change the default behavior of dropdown (when
the trigger doesn't have a ButtonEmoji component), to avoid regressions with
current dropdowns; this will only change it's behavior when used with
the new ButtonEmoji component.
2021-06-22 08:58:52 -03:00
Anton Georgiev
e01bdf69c5 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into june2-merge-into-develop 2021-06-02 18:45:31 +00:00
Tainan Felipe
baf7afc883 Decrease amount of imports in dropdown 2021-05-31 15:28:27 -03:00
Mohamed Amine Ben Salah
2a9fdebd61
Mobile/Tablet devices automated tests for mobile/tablet on ios/android devices (#12173)
* adds unability to see screenshare button on mobile devices test specs

* simplify code in testMobileDevice()

* userlist and chat panels should not appear at page load in mobile devices

* lint

* updates outdated audio specs due to leaveAudio changes

* correct clicks on disconnectAudio elements

* whiteboard not visible on userlistPanel or on chatPanel

* reworks mobile devices/usersagents

* fixes screenshare mobile/tablet specs

* adds whiteboardNotAppearOnMobile spec

* adds Chat Panel specification to Mobile-Tablet specs

* simplify getArgs() functions for all devices
2021-05-25 12:05:11 -04:00
Mario Jr
bf17b385b6 fix: breakout autojoin audio with wrong behavior
When joining/returning breakouts, audio would always connect
with full audio. This can lead to a performance problem, once
all listenonly users would join full audio, increasing the
number of streams in FreeSWITCH.

We now have a consistent behavior, which is:
1 - The choice made by the user in the main room is predominant:
    if mic is active in main room, user will automatically
    join mic in breakout room. When returning from breakout
    room, user will also join with mic again.
2 - Changes made in breakout room won't have effect when
    returning to the main room. This means if user, for example,
    change from listenonly to mic in breakout room, the returning
    will consider the option choosen previously (listenonly) and
    listenonly will be active again in the main room.
3 - If user didn't join audio in the main room, the audio modal
    will be prompted when joining the breakout room (this is
    a special case of (1))


The following is some technicall information:
InputStreamLiveSelector (component.jsx) now calls
'handleLeaveAudio' function, which is the default
function when user leaves audio (also used when
dynamic devices are inactive).

We now store information about user's choice (mic or listenonly)
using local storage, instead of the previous cookie method (this
was triggering some warnings in browser's console).

Also did a small refactoring to match eslint rules.
Fixes #11662.
2021-04-20 14:38:11 -03:00
Ramon Souza
7d50490dd9 audio selection menu scrollable 2021-04-15 10:36:35 -03:00
Mario Jr
68628855a3 fix: audio device selector problem when using RTL locales
Closes #11870
2021-04-06 10:56:01 -03:00
Mario Jr
cddca95ad1 Fixes and improvements on pr #10129 - dynamic change audio device
Allow listenonly users to change output devices
Fixed dynamic audio device change for firefox
Fixed shortcuts for audio join/leave
Show (with a bold font) the current selected device
[performance] Prevent calling mediaDevices.enumerateDevices every time we render
the selector. This adds a delay (~200ms, on my chrome setup) to render this component
[performance] Do not call enumerateDevices to search for new devices, instead we listen on mediaDevices.deviceChange event
Small refactoring and fixed a few errors that were being throw in browser's console
Fixed device selection when this is done in audio-settings modal
Fallback to default device when current device is removed
Truncate device name length
Renamed "Input","Output" labels to "Microphone","Speakers", respectively
Update eslint rule for accessKey
2021-03-29 18:55:17 -03:00
Tainan Felipe
cc9662b6b8 Implement speaker change and add device update feature 2020-08-10 16:43:49 -03:00
Tainan Felipe
2c61d5ee75 Add input/output dynamic audio change 2020-07-27 16:49:26 -03:00