Merge branch 'riadvice-breakout-audio-rejoin' into v2.0.x-release
This commit is contained in:
commit
fb58a5f0ca
@ -52,7 +52,8 @@ package org.bigbluebutton.core.model
|
|||||||
public var authTokenValid: Boolean = false;
|
public var authTokenValid: Boolean = false;
|
||||||
public var waitingForApproval: Boolean;
|
public var waitingForApproval: Boolean;
|
||||||
|
|
||||||
|
public var breakoutEjectFromAudio : Boolean = false;
|
||||||
|
|
||||||
private var _role:String = "viewer";
|
private var _role:String = "viewer";
|
||||||
public function get role():String {
|
public function get role():String {
|
||||||
return _role.toUpperCase();
|
return _role.toUpperCase();
|
||||||
@ -84,7 +85,7 @@ package org.bigbluebutton.core.model
|
|||||||
public function myCamSettings():ArrayCollection {
|
public function myCamSettings():ArrayCollection {
|
||||||
return _myCamSettings;
|
return _myCamSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function applyLockSettings():void {
|
public function applyLockSettings():void {
|
||||||
var lockSettings:LockSettingsVO = UsersUtil.getLockSettings();
|
var lockSettings:LockSettingsVO = UsersUtil.getLockSettings();
|
||||||
var amNotModerator:Boolean = !UsersUtil.amIModerator();
|
var amNotModerator:Boolean = !UsersUtil.amIModerator();
|
||||||
|
@ -61,6 +61,15 @@ package org.bigbluebutton.main.model.users {
|
|||||||
removeUser(user.id);
|
removeUser(user.id);
|
||||||
users.addItem(user);
|
users.addItem(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function hasUserWithId(userId:String) : Boolean {
|
||||||
|
for (var i : int = 0; i < users.length; i++) {
|
||||||
|
if (BreakoutUser(users.getItemAt(i)).id.indexOf(userId) > -1 ) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public function removeUser(id: String): void {
|
public function removeUser(id: String): void {
|
||||||
for (var i: int = 0; i < users.length; i++) {
|
for (var i: int = 0; i < users.length; i++) {
|
||||||
|
@ -150,10 +150,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
import org.bigbluebutton.modules.phone.events.WebRTCEchoTestEvent;
|
import org.bigbluebutton.modules.phone.events.WebRTCEchoTestEvent;
|
||||||
import org.bigbluebutton.modules.phone.events.WebRTCMediaEvent;
|
import org.bigbluebutton.modules.phone.events.WebRTCMediaEvent;
|
||||||
import org.bigbluebutton.modules.phone.models.PhoneOptions;
|
import org.bigbluebutton.modules.phone.models.PhoneOptions;
|
||||||
import org.bigbluebutton.util.browser.BrowserCheck;
|
|
||||||
import org.bigbluebutton.modules.users.model.UsersOptions;
|
import org.bigbluebutton.modules.users.model.UsersOptions;
|
||||||
import org.bigbluebutton.modules.users.views.BreakoutRoomSettings;
|
import org.bigbluebutton.modules.users.views.BreakoutRoomSettings;
|
||||||
import org.bigbluebutton.modules.videoconf.events.ShareCameraRequestEvent;
|
import org.bigbluebutton.modules.videoconf.events.ShareCameraRequestEvent;
|
||||||
|
import org.bigbluebutton.util.browser.BrowserCheck;
|
||||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||||
|
|
||||||
private static const LOGGER:ILogger = getClassLogger(MainApplicationShell);
|
private static const LOGGER:ILogger = getClassLogger(MainApplicationShell);
|
||||||
|
@ -113,6 +113,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function joinAudio():void {
|
private function joinAudio():void {
|
||||||
|
LiveMeeting.inst().me.breakoutEjectFromAudio = false;
|
||||||
|
|
||||||
if (phoneOptions.skipCheck || disableMyMic || defaultListenOnlyMode) {
|
if (phoneOptions.skipCheck || disableMyMic || defaultListenOnlyMode) {
|
||||||
var command:JoinVoiceConferenceCommand = new JoinVoiceConferenceCommand();
|
var command:JoinVoiceConferenceCommand = new JoinVoiceConferenceCommand();
|
||||||
|
@ -51,6 +51,7 @@ package org.bigbluebutton.modules.users.services
|
|||||||
import org.bigbluebutton.main.model.users.events.ChangeMyRole;
|
import org.bigbluebutton.main.model.users.events.ChangeMyRole;
|
||||||
import org.bigbluebutton.main.model.users.events.StreamStartedEvent;
|
import org.bigbluebutton.main.model.users.events.StreamStartedEvent;
|
||||||
import org.bigbluebutton.main.model.users.events.StreamStoppedEvent;
|
import org.bigbluebutton.main.model.users.events.StreamStoppedEvent;
|
||||||
|
import org.bigbluebutton.modules.phone.events.AudioSelectionWindowEvent;
|
||||||
import org.bigbluebutton.modules.screenshare.events.WebRTCViewStreamEvent;
|
import org.bigbluebutton.modules.screenshare.events.WebRTCViewStreamEvent;
|
||||||
import org.bigbluebutton.modules.users.events.MeetingMutedEvent;
|
import org.bigbluebutton.modules.users.events.MeetingMutedEvent;
|
||||||
|
|
||||||
@ -810,6 +811,15 @@ package org.bigbluebutton.modules.users.services
|
|||||||
var body: Object = msg.body as Object;
|
var body: Object = msg.body as Object;
|
||||||
var breakoutId: String = body.breakoutId as String;
|
var breakoutId: String = body.breakoutId as String;
|
||||||
|
|
||||||
|
// Display audio join window
|
||||||
|
if (LiveMeeting.inst().me.breakoutEjectFromAudio &&
|
||||||
|
LiveMeeting.inst().breakoutRooms.getBreakoutRoom(breakoutId).hasUserWithId(LiveMeeting.inst().me.id) &&
|
||||||
|
!LiveMeeting.inst().me.inVoiceConf
|
||||||
|
) {
|
||||||
|
LiveMeeting.inst().me.breakoutEjectFromAudio = false;
|
||||||
|
dispatcher.dispatchEvent(new AudioSelectionWindowEvent(AudioSelectionWindowEvent.SHOW_AUDIO_SELECTION));
|
||||||
|
}
|
||||||
|
|
||||||
switchUserFromBreakoutToMainVoiceConf(breakoutId);
|
switchUserFromBreakoutToMainVoiceConf(breakoutId);
|
||||||
var breakoutRoom: BreakoutRoom = LiveMeeting.inst().breakoutRooms.getBreakoutRoom(breakoutId);
|
var breakoutRoom: BreakoutRoom = LiveMeeting.inst().breakoutRooms.getBreakoutRoom(breakoutId);
|
||||||
LiveMeeting.inst().breakoutRooms.removeBreakoutRoom(breakoutId);
|
LiveMeeting.inst().breakoutRooms.removeBreakoutRoom(breakoutId);
|
||||||
|
@ -31,10 +31,11 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
<fx:Script>
|
<fx:Script>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
import com.asfusion.mate.events.Dispatcher;
|
import com.asfusion.mate.events.Dispatcher;
|
||||||
|
|
||||||
import flash.net.navigateToURL;
|
import flash.net.navigateToURL;
|
||||||
|
|
||||||
import org.bigbluebutton.core.PopUpUtil;
|
import org.bigbluebutton.core.PopUpUtil;
|
||||||
|
import org.bigbluebutton.core.model.LiveMeeting;
|
||||||
import org.bigbluebutton.modules.phone.events.LeaveVoiceConferenceCommand;
|
import org.bigbluebutton.modules.phone.events.LeaveVoiceConferenceCommand;
|
||||||
import org.bigbluebutton.modules.videoconf.events.StopBroadcastEvent;
|
import org.bigbluebutton.modules.videoconf.events.StopBroadcastEvent;
|
||||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||||
@ -49,6 +50,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function joinButtonClickHandler(event:MouseEvent):void {
|
protected function joinButtonClickHandler(event:MouseEvent):void {
|
||||||
|
if (LiveMeeting.inst().me.inVoiceConf) {
|
||||||
|
LiveMeeting.inst().me.breakoutEjectFromAudio = true;
|
||||||
|
} else {
|
||||||
|
LiveMeeting.inst().me.breakoutEjectFromAudio = false;
|
||||||
|
|
||||||
|
}
|
||||||
dispatcher.dispatchEvent(new LeaveVoiceConferenceCommand());
|
dispatcher.dispatchEvent(new LeaveVoiceConferenceCommand());
|
||||||
dispatcher.dispatchEvent(new StopBroadcastEvent());
|
dispatcher.dispatchEvent(new StopBroadcastEvent());
|
||||||
navigateToURL(new URLRequest(this.joinUrl), "_blank");
|
navigateToURL(new URLRequest(this.joinUrl), "_blank");
|
||||||
|
Loading…
Reference in New Issue
Block a user