Skip to content
Snippets Groups Projects
Commit 404d65d7 authored by Mario Jr's avatar Mario Jr
Browse files

Recover mute state for moderator when returning from breakout's audio transfer

Fixes #11489
parent 23e65e6f
No related branches found
No related tags found
No related merge requests found
......@@ -84,6 +84,11 @@ export default lockContextContainer(withModalMounter(withTracker(({ mountModal,
const isViewer = currentUser.role === ROLE_VIEWER;
const isPresenter = currentUser.presenter;
if (Service.isReturningFromBreakoutAudioTransfer()) {
Service.setReturningFromBreakoutAudioTransfer(false);
Service.recoverMicState();
}
return ({
processToggleMuteFromOutside: arg => processToggleMuteFromOutside(arg),
showMute: isConnected() && !isListenOnly() && !isEchoTest() && !userLocks.userMic,
......
......@@ -129,4 +129,10 @@ export default {
playAlertSound: url => AudioManager.playAlertSound(url),
updateAudioConstraints:
constraints => AudioManager.updateAudioConstraints(constraints),
recoverMicState,
setReturningFromBreakoutAudioTransfer: (value) => {
AudioManager.returningFromBreakoutAudioTransfer = value;
},
isReturningFromBreakoutAudioTransfer:
() => AudioManager.returningFromBreakoutAudioTransfer,
};
......@@ -163,6 +163,7 @@ class BreakoutRoom extends PureComponent {
intl,
isUserInBreakoutRoom,
exitAudio,
setReturningFromBreakoutAudioTransfer,
} = this.props;
const {
......@@ -176,6 +177,7 @@ class BreakoutRoom extends PureComponent {
const disable = waiting && requestedBreakoutId !== breakoutId;
const audioAction = joinedAudioOnly
? () => {
setReturningFromBreakoutAudioTransfer(true);
this.returnBackToMeeeting(breakoutId);
return logger.debug({
logCode: 'breakoutroom_return_main_audio',
......
......@@ -25,6 +25,7 @@ export default withTracker((props) => {
const breakoutRooms = findBreakouts();
const isMicrophoneUser = AudioService.isConnected() && !AudioService.isListenOnly();
const isMeteorConnected = Meteor.status().connected;
const { setReturningFromBreakoutAudioTransfer } = AudioService;
return {
...props,
......@@ -41,5 +42,6 @@ export default withTracker((props) => {
isMeteorConnected,
isUserInBreakoutRoom,
exitAudio: () => AudioManager.exitAudio(),
setReturningFromBreakoutAudioTransfer,
};
})(BreakoutContainer);
......@@ -37,6 +37,8 @@ class AudioManager {
tracker: new Tracker.Dependency(),
};
this._returningFromBreakoutAudioTransfer = false;
this.defineProperties({
isMuted: false,
isConnected: false,
......@@ -523,6 +525,14 @@ class AudioManager {
? this.bridge.inputDeviceId : DEFAULT_INPUT_DEVICE_ID;
}
get returningFromBreakoutAudioTransfer() {
return this._returningFromBreakoutAudioTransfer;
}
set returningFromBreakoutAudioTransfer(value) {
this._returningFromBreakoutAudioTransfer = value;
}
set userData(value) {
this._userData = value;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment