Recover mute state for moderator when returning from breakout's audio transfer
Fixes #11489
This commit is contained in:
parent
23e65e6f40
commit
404d65d7a4
@ -84,6 +84,11 @@ export default lockContextContainer(withModalMounter(withTracker(({ mountModal,
|
|||||||
const isViewer = currentUser.role === ROLE_VIEWER;
|
const isViewer = currentUser.role === ROLE_VIEWER;
|
||||||
const isPresenter = currentUser.presenter;
|
const isPresenter = currentUser.presenter;
|
||||||
|
|
||||||
|
if (Service.isReturningFromBreakoutAudioTransfer()) {
|
||||||
|
Service.setReturningFromBreakoutAudioTransfer(false);
|
||||||
|
Service.recoverMicState();
|
||||||
|
}
|
||||||
|
|
||||||
return ({
|
return ({
|
||||||
processToggleMuteFromOutside: arg => processToggleMuteFromOutside(arg),
|
processToggleMuteFromOutside: arg => processToggleMuteFromOutside(arg),
|
||||||
showMute: isConnected() && !isListenOnly() && !isEchoTest() && !userLocks.userMic,
|
showMute: isConnected() && !isListenOnly() && !isEchoTest() && !userLocks.userMic,
|
||||||
|
@ -129,4 +129,10 @@ export default {
|
|||||||
playAlertSound: url => AudioManager.playAlertSound(url),
|
playAlertSound: url => AudioManager.playAlertSound(url),
|
||||||
updateAudioConstraints:
|
updateAudioConstraints:
|
||||||
constraints => AudioManager.updateAudioConstraints(constraints),
|
constraints => AudioManager.updateAudioConstraints(constraints),
|
||||||
|
recoverMicState,
|
||||||
|
setReturningFromBreakoutAudioTransfer: (value) => {
|
||||||
|
AudioManager.returningFromBreakoutAudioTransfer = value;
|
||||||
|
},
|
||||||
|
isReturningFromBreakoutAudioTransfer:
|
||||||
|
() => AudioManager.returningFromBreakoutAudioTransfer,
|
||||||
};
|
};
|
||||||
|
@ -163,6 +163,7 @@ class BreakoutRoom extends PureComponent {
|
|||||||
intl,
|
intl,
|
||||||
isUserInBreakoutRoom,
|
isUserInBreakoutRoom,
|
||||||
exitAudio,
|
exitAudio,
|
||||||
|
setReturningFromBreakoutAudioTransfer,
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
const {
|
const {
|
||||||
@ -176,6 +177,7 @@ class BreakoutRoom extends PureComponent {
|
|||||||
const disable = waiting && requestedBreakoutId !== breakoutId;
|
const disable = waiting && requestedBreakoutId !== breakoutId;
|
||||||
const audioAction = joinedAudioOnly
|
const audioAction = joinedAudioOnly
|
||||||
? () => {
|
? () => {
|
||||||
|
setReturningFromBreakoutAudioTransfer(true);
|
||||||
this.returnBackToMeeeting(breakoutId);
|
this.returnBackToMeeeting(breakoutId);
|
||||||
return logger.debug({
|
return logger.debug({
|
||||||
logCode: 'breakoutroom_return_main_audio',
|
logCode: 'breakoutroom_return_main_audio',
|
||||||
|
@ -25,6 +25,7 @@ export default withTracker((props) => {
|
|||||||
const breakoutRooms = findBreakouts();
|
const breakoutRooms = findBreakouts();
|
||||||
const isMicrophoneUser = AudioService.isConnected() && !AudioService.isListenOnly();
|
const isMicrophoneUser = AudioService.isConnected() && !AudioService.isListenOnly();
|
||||||
const isMeteorConnected = Meteor.status().connected;
|
const isMeteorConnected = Meteor.status().connected;
|
||||||
|
const { setReturningFromBreakoutAudioTransfer } = AudioService;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...props,
|
...props,
|
||||||
@ -41,5 +42,6 @@ export default withTracker((props) => {
|
|||||||
isMeteorConnected,
|
isMeteorConnected,
|
||||||
isUserInBreakoutRoom,
|
isUserInBreakoutRoom,
|
||||||
exitAudio: () => AudioManager.exitAudio(),
|
exitAudio: () => AudioManager.exitAudio(),
|
||||||
|
setReturningFromBreakoutAudioTransfer,
|
||||||
};
|
};
|
||||||
})(BreakoutContainer);
|
})(BreakoutContainer);
|
||||||
|
@ -37,6 +37,8 @@ class AudioManager {
|
|||||||
tracker: new Tracker.Dependency(),
|
tracker: new Tracker.Dependency(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this._returningFromBreakoutAudioTransfer = false;
|
||||||
|
|
||||||
this.defineProperties({
|
this.defineProperties({
|
||||||
isMuted: false,
|
isMuted: false,
|
||||||
isConnected: false,
|
isConnected: false,
|
||||||
@ -523,6 +525,14 @@ class AudioManager {
|
|||||||
? this.bridge.inputDeviceId : DEFAULT_INPUT_DEVICE_ID;
|
? this.bridge.inputDeviceId : DEFAULT_INPUT_DEVICE_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get returningFromBreakoutAudioTransfer() {
|
||||||
|
return this._returningFromBreakoutAudioTransfer;
|
||||||
|
}
|
||||||
|
|
||||||
|
set returningFromBreakoutAudioTransfer(value) {
|
||||||
|
this._returningFromBreakoutAudioTransfer = value;
|
||||||
|
}
|
||||||
|
|
||||||
set userData(value) {
|
set userData(value) {
|
||||||
this._userData = value;
|
this._userData = value;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user