[AIR] combine air specific classes with their base versions
This commit is contained in:
parent
d43b7d550d
commit
9ce004ca68
@ -106,13 +106,10 @@ main|MainView {
|
||||
|
||||
main|TopToolbarBase {
|
||||
textAlign : center;
|
||||
}
|
||||
|
||||
main|TopToolbarAIR {
|
||||
backgroundColor : PropertyReference("bbbBlack");
|
||||
}
|
||||
|
||||
participants|ParticipantsViewBase, user|UsersViewBase {
|
||||
participants|ParticipantsViewBase, user|UsersView {
|
||||
backgroundColor : PropertyReference("grey100");
|
||||
color : PropertyReference("blue900");
|
||||
}
|
||||
|
@ -27,7 +27,7 @@
|
||||
fontSize: 25.50;
|
||||
}
|
||||
|
||||
main|TopToolbarAIR {
|
||||
main|TopToolbarBase {
|
||||
height: 60.00;
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
menuHeight: 120.00;
|
||||
}
|
||||
|
||||
main|MenuButtonsBase {
|
||||
main|MenuButtons {
|
||||
bottom: 26.25;
|
||||
top: 10.50;
|
||||
gap: 33.75;
|
||||
|
@ -27,7 +27,7 @@
|
||||
fontSize: 12.750;
|
||||
}
|
||||
|
||||
main|TopToolbarAIR {
|
||||
main|TopToolbarBase {
|
||||
height: 30.000;
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
menuHeight: 60.000;
|
||||
}
|
||||
|
||||
main|MenuButtonsBase {
|
||||
main|MenuButtons {
|
||||
bottom: 13.125;
|
||||
top: 5.250;
|
||||
gap: 16.875;
|
||||
|
@ -27,7 +27,7 @@
|
||||
fontSize: 17.0;
|
||||
}
|
||||
|
||||
main|TopToolbarAIR {
|
||||
main|TopToolbarBase {
|
||||
height: 40.0;
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
menuHeight: 80.0;
|
||||
}
|
||||
|
||||
main|MenuButtonsBase {
|
||||
main|MenuButtons {
|
||||
bottom: 17.5;
|
||||
top: 7.0;
|
||||
gap: 22.5;
|
||||
|
@ -16,7 +16,7 @@
|
||||
fontSize : 34;
|
||||
}
|
||||
|
||||
main|TopToolbarAIR {
|
||||
main|TopToolbarBase {
|
||||
height : 80;
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
menuHeight : 160;
|
||||
}
|
||||
|
||||
main|MenuButtonsBase {
|
||||
main|MenuButtons {
|
||||
bottom : 35;
|
||||
top : 14;
|
||||
gap : 45;
|
||||
|
@ -27,7 +27,7 @@
|
||||
fontSize: 51.0;
|
||||
}
|
||||
|
||||
main|TopToolbarAIR {
|
||||
main|TopToolbarBase {
|
||||
height: 120.0;
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
menuHeight: 240.0;
|
||||
}
|
||||
|
||||
main|MenuButtonsBase {
|
||||
main|MenuButtons {
|
||||
bottom: 52.5;
|
||||
top: 21.0;
|
||||
gap: 67.5;
|
||||
|
@ -27,7 +27,7 @@
|
||||
fontSize: 68;
|
||||
}
|
||||
|
||||
main|TopToolbarAIR {
|
||||
main|TopToolbarBase {
|
||||
height: 160;
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
menuHeight: 320;
|
||||
}
|
||||
|
||||
main|MenuButtonsBase {
|
||||
main|MenuButtons {
|
||||
bottom: 70;
|
||||
top: 28;
|
||||
gap: 90;
|
||||
|
@ -14,9 +14,9 @@ package org.bigbluebutton.air {
|
||||
import org.bigbluebutton.air.main.commands.ChangeUserRoleSignal;
|
||||
import org.bigbluebutton.air.main.commands.ConnectCommand;
|
||||
import org.bigbluebutton.air.main.commands.ConnectSignal;
|
||||
import org.bigbluebutton.air.main.commands.ConnectingFinishedCommandAIR;
|
||||
import org.bigbluebutton.air.main.commands.ConnectingFinishedCommand;
|
||||
import org.bigbluebutton.air.main.commands.ConnectingFinishedSignal;
|
||||
import org.bigbluebutton.air.main.commands.DisconnectUserCommandAIR;
|
||||
import org.bigbluebutton.air.main.commands.DisconnectUserCommand;
|
||||
import org.bigbluebutton.air.main.commands.DisconnectUserSignal;
|
||||
import org.bigbluebutton.air.main.commands.KickUserCommand;
|
||||
import org.bigbluebutton.air.main.commands.KickUserSignal;
|
||||
@ -84,13 +84,11 @@ package org.bigbluebutton.air {
|
||||
|
||||
// Signal to Command mapping
|
||||
signalCommandMap.map(ConnectSignal).toCommand(ConnectCommand);
|
||||
signalCommandMap.map(DisconnectUserSignal).toCommand(DisconnectUserCommandAIR);
|
||||
signalCommandMap.map(ConnectingFinishedSignal).toCommand(ConnectingFinishedCommandAIR);
|
||||
signalCommandMap.map(DisconnectUserSignal).toCommand(DisconnectUserCommand);
|
||||
signalCommandMap.map(ConnectingFinishedSignal).toCommand(ConnectingFinishedCommand);
|
||||
signalCommandMap.map(PresenterSignal).toCommand(PresenterCommand);
|
||||
signalCommandMap.map(LockUserSignal).toCommand(LockUserCommand);
|
||||
signalCommandMap.map(ChangeUserRoleSignal).toCommand(ChangeUserRoleCommand);
|
||||
signalCommandMap.map(KickUserSignal).toCommand(KickUserCommand);
|
||||
signalCommandMap.map(DisconnectUserSignal).toCommand(DisconnectUserCommandAIR);
|
||||
}
|
||||
signalCommandMap.map(KickUserSignal).toCommand(KickUserCommand); }
|
||||
}
|
||||
}
|
||||
|
@ -6,10 +6,10 @@ package org.bigbluebutton.air.chat {
|
||||
import org.bigbluebutton.air.chat.commands.RequestWelcomeMessageSignal;
|
||||
import org.bigbluebutton.air.chat.commands.StartPrivateChatCommand;
|
||||
import org.bigbluebutton.air.chat.commands.StartPrivateChatSignal;
|
||||
import org.bigbluebutton.air.chat.views.ChatRoomsMediatorAIR;
|
||||
import org.bigbluebutton.air.chat.views.ChatRoomsMediator;
|
||||
import org.bigbluebutton.air.chat.views.ChatRoomsViewBase;
|
||||
import org.bigbluebutton.air.chat.views.ChatViewBase;
|
||||
import org.bigbluebutton.air.chat.views.ChatViewMediatorAIR;
|
||||
import org.bigbluebutton.air.chat.views.ChatViewMediator;
|
||||
|
||||
import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
|
||||
import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap;
|
||||
@ -32,8 +32,8 @@ package org.bigbluebutton.air.chat {
|
||||
* Maps view mediators to views.
|
||||
*/
|
||||
private function mediators():void {
|
||||
mediatorMap.map(ChatRoomsViewBase).toMediator(ChatRoomsMediatorAIR);
|
||||
mediatorMap.map(ChatViewBase).toMediator(ChatViewMediatorAIR);
|
||||
mediatorMap.map(ChatRoomsViewBase).toMediator(ChatRoomsMediator);
|
||||
mediatorMap.map(ChatViewBase).toMediator(ChatViewMediator);
|
||||
}
|
||||
|
||||
private function signals():void {
|
||||
|
@ -1,6 +1,6 @@
|
||||
package org.bigbluebutton.air.chat.views {
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
import spark.components.SkinnableContainer;
|
||||
import spark.layouts.VerticalLayout;
|
||||
@ -28,7 +28,7 @@ package org.bigbluebutton.air.chat.views {
|
||||
addElement(skinnableWrapper);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarChat();
|
||||
}
|
||||
}
|
||||
|
@ -2,13 +2,15 @@ package org.bigbluebutton.air.chat.views {
|
||||
import mx.collections.ArrayCollection;
|
||||
|
||||
import org.bigbluebutton.air.chat.models.IChatMessagesSession;
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.main.models.IUserSession;
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Mediator;
|
||||
|
||||
import spark.events.IndexChangeEvent;
|
||||
|
||||
public class ChatRoomsMediatorBase extends Mediator {
|
||||
public class ChatRoomsMediator extends Mediator {
|
||||
|
||||
[Inject]
|
||||
public var view:ChatRoomsViewBase;
|
||||
@ -16,6 +18,9 @@ package org.bigbluebutton.air.chat.views {
|
||||
[Inject]
|
||||
public var userSession:IUserSession;
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
[Inject]
|
||||
public var chatMessagesSession:IChatMessagesSession;
|
||||
|
||||
@ -26,8 +31,9 @@ package org.bigbluebutton.air.chat.views {
|
||||
view.chatRoomList.addEventListener(IndexChangeEvent.CHANGE, onListIndexChangeEvent);
|
||||
}
|
||||
|
||||
protected function onListIndexChangeEvent(e:IndexChangeEvent):void {
|
||||
// leave the implementation up to the client
|
||||
private function onListIndexChangeEvent(e:IndexChangeEvent):void {
|
||||
var item:Object = dataProvider.getItemAt(e.newIndex);
|
||||
uiSession.pushPage(PageEnum.CHAT, {chatId: item.chatId});
|
||||
}
|
||||
|
||||
override public function destroy():void {
|
@ -1,17 +0,0 @@
|
||||
package org.bigbluebutton.air.chat.views {
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
|
||||
import spark.events.IndexChangeEvent;
|
||||
|
||||
public class ChatRoomsMediatorAIR extends ChatRoomsMediatorBase {
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
override protected function onListIndexChangeEvent(e:IndexChangeEvent):void {
|
||||
var item:Object = dataProvider.getItemAt(e.newIndex);
|
||||
uiSession.pushPage(PageEnum.CHAT, {chatId: item.chatId});
|
||||
}
|
||||
}
|
||||
}
|
@ -5,13 +5,12 @@ package org.bigbluebutton.air.chat.views {
|
||||
|
||||
import mx.utils.StringUtil;
|
||||
|
||||
import spark.components.VScrollBar;
|
||||
|
||||
import org.bigbluebutton.air.chat.models.ChatMessageVO;
|
||||
import org.bigbluebutton.air.chat.models.GroupChat;
|
||||
import org.bigbluebutton.air.chat.models.IChatMessagesSession;
|
||||
import org.bigbluebutton.air.chat.services.IChatMessageService;
|
||||
import org.bigbluebutton.air.main.models.IMeetingData;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.main.models.LockSettings2x;
|
||||
import org.bigbluebutton.air.user.models.User2x;
|
||||
import org.bigbluebutton.air.user.models.UserChangeEnum;
|
||||
@ -19,7 +18,9 @@ package org.bigbluebutton.air.chat.views {
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Mediator;
|
||||
|
||||
public class ChatViewMediatorBase extends Mediator {
|
||||
import spark.components.VScrollBar;
|
||||
|
||||
public class ChatViewMediator extends Mediator {
|
||||
|
||||
[Inject]
|
||||
public var view:ChatViewBase;
|
||||
@ -33,6 +34,9 @@ package org.bigbluebutton.air.chat.views {
|
||||
[Inject]
|
||||
public var meetingData:IMeetingData;
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
protected var _chat:GroupChat;
|
||||
|
||||
override public function initialize():void {
|
||||
@ -44,6 +48,13 @@ package org.bigbluebutton.air.chat.views {
|
||||
view.textInput.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
|
||||
view.sendButton.addEventListener(MouseEvent.CLICK, sendButtonClickHandler);
|
||||
|
||||
var data:Object = uiSession.currentPageDetails;
|
||||
|
||||
var chat:GroupChat = chatMessagesSession.getGroupByChatId(data.chatId);
|
||||
if (chat) {
|
||||
openChat(chat);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected function openChat(chat:GroupChat):void {
|
@ -1,21 +0,0 @@
|
||||
package org.bigbluebutton.air.chat.views {
|
||||
import org.bigbluebutton.air.chat.models.GroupChat;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
|
||||
public class ChatViewMediatorAIR extends ChatViewMediatorBase {
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
override public function initialize():void {
|
||||
super.initialize();
|
||||
|
||||
var data:Object = uiSession.currentPageDetails;
|
||||
|
||||
var chat:GroupChat = chatMessagesSession.getGroupByChatId(data.chatId);
|
||||
if (chat) {
|
||||
openChat(chat);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package org.bigbluebutton.air.chat.views {
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
public class TopToolbarChat extends TopToolbarAIR {
|
||||
public class TopToolbarChat extends TopToolbarBase {
|
||||
public function TopToolbarChat() {
|
||||
super();
|
||||
|
||||
|
8
clients/flash/air-client/src/org/bigbluebutton/air/common/views/NoTabView.as
Normal file → Executable file
8
clients/flash/air-client/src/org/bigbluebutton/air/common/views/NoTabView.as
Normal file → Executable file
@ -6,12 +6,12 @@ package org.bigbluebutton.air.common.views {
|
||||
|
||||
import spark.components.View;
|
||||
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
[Style(name = "toolbarHeight", inherit = "yes", type = "Number")]
|
||||
public class NoTabView extends View {
|
||||
|
||||
protected var _topToolbar:TopToolbarAIR;
|
||||
protected var _topToolbar:TopToolbarBase;
|
||||
|
||||
public function NoTabView() {
|
||||
super();
|
||||
@ -34,8 +34,8 @@ package org.bigbluebutton.air.common.views {
|
||||
}
|
||||
}
|
||||
|
||||
protected function createToolbar():TopToolbarAIR {
|
||||
return new TopToolbarAIR();
|
||||
protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarBase();
|
||||
}
|
||||
|
||||
override protected function updateDisplayList(w:Number, h:Number):void {
|
||||
|
@ -5,6 +5,7 @@ package org.bigbluebutton.air.common.views {
|
||||
import flash.media.Video;
|
||||
import flash.net.NetConnection;
|
||||
import flash.net.NetStream;
|
||||
import flash.system.Capabilities;
|
||||
|
||||
import mx.core.UIComponent;
|
||||
|
||||
@ -25,11 +26,29 @@ package org.bigbluebutton.air.common.views {
|
||||
|
||||
public var streamName:String;
|
||||
|
||||
protected var aspectRatio:Number = 0;
|
||||
|
||||
protected var originalVideoWidth:Number;
|
||||
|
||||
protected var originalVideoHeight:Number;
|
||||
|
||||
protected var screenWidth:Number;
|
||||
|
||||
protected var screenHeight:Number;
|
||||
|
||||
protected var topMenuBarHeight:Number;
|
||||
|
||||
protected var bottomMenuBarHeight:Number;
|
||||
|
||||
public function VideoView():void {
|
||||
video = new Video();
|
||||
}
|
||||
|
||||
public function startStream(connection:NetConnection, name:String, streamName:String, userID:String):void {
|
||||
if (connection.uri.indexOf("/video/") != -1 && Capabilities.version.indexOf("IOS") >= 0) {
|
||||
streamName = "h263/" + streamName;
|
||||
}
|
||||
|
||||
this.userName = name;
|
||||
this.userID = userID;
|
||||
this.streamName = streamName;
|
||||
@ -85,5 +104,96 @@ package org.bigbluebutton.air.common.views {
|
||||
ns = null;
|
||||
}
|
||||
}
|
||||
|
||||
public function initializeScreenSizeValues(originalVideoWidth0:Number, originalVideoHeight0:Number, screenHeight0:Number, screenWidth0:Number, topMenuBarHeight0:Number, bottomMenuBarHeight0:Number):void {
|
||||
this.screenHeight = screenHeight0;
|
||||
this.screenWidth = screenWidth0;
|
||||
this.topMenuBarHeight = topMenuBarHeight0;
|
||||
this.bottomMenuBarHeight = bottomMenuBarHeight0;
|
||||
this.originalVideoWidth = originalVideoWidth0;
|
||||
this.originalVideoHeight = originalVideoHeight0;
|
||||
}
|
||||
|
||||
public function resizeForPortrait():void {
|
||||
// if we have device where screen width less than screen height e.g. phone
|
||||
if (screenWidth < screenHeight) {
|
||||
// make the video width full width of the screen
|
||||
video.width = screenWidth;
|
||||
// calculate height based on a video width, it order to keep the same aspect ratio
|
||||
video.height = (video.width / originalVideoWidth) * originalVideoHeight;
|
||||
// if calculated height appeared to be bigger than screen height, recalculuate the video size based on width
|
||||
if (screenHeight < video.height) {
|
||||
// make the video height full height of the screen
|
||||
video.height = screenHeight;
|
||||
// calculate width based on a video height, it order to keep the same aspect ratio
|
||||
video.width = ((originalVideoWidth * video.height) / originalVideoHeight);
|
||||
}
|
||||
} // if we have device where screen height less than screen width e.g. tablet
|
||||
else {
|
||||
// make the video height full height of the screen
|
||||
video.height = screenHeight;
|
||||
// calculate width based on a video height, it order to keep the same aspect ratio
|
||||
video.width = ((originalVideoWidth * video.height) / originalVideoHeight);
|
||||
// if calculated width appeared to be bigger than screen width, recalculuate the video size based on height
|
||||
if (screenWidth < video.width) {
|
||||
// make the video width full width of the screen
|
||||
video.width = screenWidth;
|
||||
// calculate height based on a video width, it order to keep the same aspect ratio
|
||||
video.height = (video.width / originalVideoWidth) * originalVideoHeight;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function resizeForLandscape():void {
|
||||
if (screenHeight < screenWidth) {
|
||||
video.height = screenWidth;
|
||||
video.width = ((originalVideoWidth * video.height) / originalVideoHeight);
|
||||
if (screenWidth < video.width) {
|
||||
video.width = screenHeight;
|
||||
video.height = (video.width / originalVideoWidth) * originalVideoHeight;
|
||||
}
|
||||
} else {
|
||||
video.width = screenHeight;
|
||||
video.height = (video.width / originalVideoWidth) * originalVideoHeight;
|
||||
if (screenHeight < video.height) {
|
||||
video.height = screenWidth;
|
||||
video.width = ((originalVideoWidth * video.height) / originalVideoHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function rotateVideo(rotation:Number):void {
|
||||
if (video && stage.contains(video)) {
|
||||
stage.removeChild(video);
|
||||
}
|
||||
video = new Video();
|
||||
video.attachNetStream(ns);
|
||||
switch (rotation) {
|
||||
case 0:
|
||||
resizeForPortrait();
|
||||
video.x = screenWidth / 2 - video.width / 2;
|
||||
video.y = screenHeight / 2 - video.height / 2 + topMenuBarHeight;
|
||||
break;
|
||||
case -90:
|
||||
resizeForLandscape();
|
||||
video.x = (screenWidth / 2) - (video.height / 2);
|
||||
video.y = (screenHeight / 2) + (video.width / 2) + topMenuBarHeight;
|
||||
break;
|
||||
case 90:
|
||||
resizeForLandscape();
|
||||
video.x = (screenWidth / 2) + (video.height / 2);
|
||||
video.y = (screenHeight / 2) - (video.width / 2) + topMenuBarHeight;
|
||||
break;
|
||||
case 180:
|
||||
resizeForPortrait();
|
||||
video.x = screenWidth / 2 + video.width / 2;
|
||||
video.y = (screenHeight / 2) + (video.height / 2) + topMenuBarHeight
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
video.rotation = rotation;
|
||||
this.stage.addChild(video);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,119 +0,0 @@
|
||||
package org.bigbluebutton.air.common.views {
|
||||
import flash.media.Video;
|
||||
import flash.net.NetConnection;
|
||||
import flash.system.Capabilities;
|
||||
|
||||
public class VideoViewAir extends VideoView {
|
||||
protected var aspectRatio:Number = 0;
|
||||
|
||||
protected var originalVideoWidth:Number;
|
||||
|
||||
protected var originalVideoHeight:Number;
|
||||
|
||||
protected var screenWidth:Number;
|
||||
|
||||
protected var screenHeight:Number;
|
||||
|
||||
protected var topMenuBarHeight:Number;
|
||||
|
||||
protected var bottomMenuBarHeight:Number;
|
||||
|
||||
override public function startStream(connection:NetConnection, name:String, streamName:String, userID:String):void {
|
||||
if (connection.uri.indexOf("/video/") != -1 && Capabilities.version.indexOf("IOS") >= 0) {
|
||||
streamName = "h263/" + streamName;
|
||||
}
|
||||
super.startStream(connection, name, streamName, userID);
|
||||
}
|
||||
|
||||
public function initializeScreenSizeValues(originalVideoWidth0:Number, originalVideoHeight0:Number, screenHeight0:Number, screenWidth0:Number, topMenuBarHeight0:Number, bottomMenuBarHeight0:Number):void {
|
||||
this.screenHeight = screenHeight0;
|
||||
this.screenWidth = screenWidth0;
|
||||
this.topMenuBarHeight = topMenuBarHeight0;
|
||||
this.bottomMenuBarHeight = bottomMenuBarHeight0;
|
||||
this.originalVideoWidth = originalVideoWidth0;
|
||||
this.originalVideoHeight = originalVideoHeight0;
|
||||
}
|
||||
|
||||
public function resizeForPortrait():void {
|
||||
// if we have device where screen width less than screen height e.g. phone
|
||||
if (screenWidth < screenHeight) {
|
||||
// make the video width full width of the screen
|
||||
video.width = screenWidth;
|
||||
// calculate height based on a video width, it order to keep the same aspect ratio
|
||||
video.height = (video.width / originalVideoWidth) * originalVideoHeight;
|
||||
// if calculated height appeared to be bigger than screen height, recalculuate the video size based on width
|
||||
if (screenHeight < video.height) {
|
||||
// make the video height full height of the screen
|
||||
video.height = screenHeight;
|
||||
// calculate width based on a video height, it order to keep the same aspect ratio
|
||||
video.width = ((originalVideoWidth * video.height) / originalVideoHeight);
|
||||
}
|
||||
} // if we have device where screen height less than screen width e.g. tablet
|
||||
else {
|
||||
// make the video height full height of the screen
|
||||
video.height = screenHeight;
|
||||
// calculate width based on a video height, it order to keep the same aspect ratio
|
||||
video.width = ((originalVideoWidth * video.height) / originalVideoHeight);
|
||||
// if calculated width appeared to be bigger than screen width, recalculuate the video size based on height
|
||||
if (screenWidth < video.width) {
|
||||
// make the video width full width of the screen
|
||||
video.width = screenWidth;
|
||||
// calculate height based on a video width, it order to keep the same aspect ratio
|
||||
video.height = (video.width / originalVideoWidth) * originalVideoHeight;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function resizeForLandscape():void {
|
||||
if (screenHeight < screenWidth) {
|
||||
video.height = screenWidth;
|
||||
video.width = ((originalVideoWidth * video.height) / originalVideoHeight);
|
||||
if (screenWidth < video.width) {
|
||||
video.width = screenHeight;
|
||||
video.height = (video.width / originalVideoWidth) * originalVideoHeight;
|
||||
}
|
||||
} else {
|
||||
video.width = screenHeight;
|
||||
video.height = (video.width / originalVideoWidth) * originalVideoHeight;
|
||||
if (screenHeight < video.height) {
|
||||
video.height = screenWidth;
|
||||
video.width = ((originalVideoWidth * video.height) / originalVideoHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function rotateVideo(rotation:Number):void {
|
||||
if (video && stage.contains(video)) {
|
||||
stage.removeChild(video);
|
||||
}
|
||||
video = new Video();
|
||||
video.attachNetStream(ns);
|
||||
switch (rotation) {
|
||||
case 0:
|
||||
resizeForPortrait();
|
||||
video.x = screenWidth / 2 - video.width / 2;
|
||||
video.y = screenHeight / 2 - video.height / 2 + topMenuBarHeight;
|
||||
break;
|
||||
case -90:
|
||||
resizeForLandscape();
|
||||
video.x = (screenWidth / 2) - (video.height / 2);
|
||||
video.y = (screenHeight / 2) + (video.width / 2) + topMenuBarHeight;
|
||||
break;
|
||||
case 90:
|
||||
resizeForLandscape();
|
||||
video.x = (screenWidth / 2) + (video.height / 2);
|
||||
video.y = (screenHeight / 2) - (video.width / 2) + topMenuBarHeight;
|
||||
break;
|
||||
case 180:
|
||||
resizeForPortrait();
|
||||
video.x = screenWidth / 2 + video.width / 2;
|
||||
video.y = (screenHeight / 2) + (video.height / 2) + topMenuBarHeight
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
video.rotation = rotation;
|
||||
this.stage.addChild(video);
|
||||
}
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@ package org.bigbluebutton.air.deskshare.views {
|
||||
import spark.components.Group;
|
||||
|
||||
public interface IDeskshareView {
|
||||
function get noDeskshareMessage():Label;
|
||||
function get deskshareGroup():Group;
|
||||
function stopStream():void;
|
||||
function startStream(connection:NetConnection, name:String, streamName:String, userID:String, width:Number, height:Number):void;
|
||||
|
@ -1,8 +0,0 @@
|
||||
package org.bigbluebutton.air.deskshare.views {
|
||||
|
||||
import spark.components.Label;
|
||||
|
||||
public interface IDeskshareViewAir extends IDeskshareView {
|
||||
function get noDeskshareMessage():Label;
|
||||
}
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
package org.bigbluebutton.air.main {
|
||||
|
||||
import org.bigbluebutton.air.main.commands.ConnectingFailedCommandAIR;
|
||||
import org.bigbluebutton.air.main.commands.ConnectingFailedCommand;
|
||||
import org.bigbluebutton.air.main.commands.ConnectingFailedSignal;
|
||||
import org.bigbluebutton.air.main.commands.JoinMeetingCommandAIR;
|
||||
import org.bigbluebutton.air.main.commands.JoinMeetingCommand;
|
||||
import org.bigbluebutton.air.main.commands.JoinMeetingSignal;
|
||||
import org.bigbluebutton.air.main.commands.NavigateToCommand;
|
||||
import org.bigbluebutton.air.main.commands.NavigateToSignal;
|
||||
@ -14,13 +14,12 @@ package org.bigbluebutton.air.main {
|
||||
import org.bigbluebutton.air.main.views.ExitViewMediator;
|
||||
import org.bigbluebutton.air.main.views.LoadingScreen;
|
||||
import org.bigbluebutton.air.main.views.LoadingScreenMediator;
|
||||
import org.bigbluebutton.air.main.views.MenuButtonsBase;
|
||||
import org.bigbluebutton.air.main.views.MenuButtonsMediatorAIR;
|
||||
import org.bigbluebutton.air.main.views.MenuButtons;
|
||||
import org.bigbluebutton.air.main.views.MenuButtonsMediator;
|
||||
import org.bigbluebutton.air.main.views.PagesNavigatorView;
|
||||
import org.bigbluebutton.air.main.views.PagesNavigatorViewMediator;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarMediatorAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarMediator;
|
||||
|
||||
import robotlegs.bender.extensions.matching.TypeMatcher;
|
||||
import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
|
||||
@ -59,8 +58,8 @@ package org.bigbluebutton.air.main {
|
||||
mediatorMap.map(LoadingScreen).toMediator(LoadingScreenMediator);
|
||||
mediatorMap.map(PagesNavigatorView).toMediator(PagesNavigatorViewMediator);
|
||||
mediatorMap.map(BannerView).toMediator(BannerViewMediator);
|
||||
mediatorMap.mapMatcher(new TypeMatcher().allOf(TopToolbarBase, TopToolbarAIR)).toMediator(TopToolbarMediatorAIR);
|
||||
mediatorMap.map(MenuButtonsBase).toMediator(MenuButtonsMediatorAIR);
|
||||
mediatorMap.mapMatcher(new TypeMatcher().allOf(TopToolbarBase)).toMediator(TopToolbarMediator);
|
||||
mediatorMap.map(MenuButtons).toMediator(MenuButtonsMediator);
|
||||
mediatorMap.map(ExitView).toMediator(ExitViewMediator);
|
||||
mediatorMap.map(DisconnectView).toMediator(DisconnectViewMediator);
|
||||
}
|
||||
@ -69,8 +68,8 @@ package org.bigbluebutton.air.main {
|
||||
* Maps signals to commands using the signalCommandMap.
|
||||
*/
|
||||
private function signals():void {
|
||||
signalCommandMap.map(JoinMeetingSignal).toCommand(JoinMeetingCommandAIR);
|
||||
signalCommandMap.map(ConnectingFailedSignal).toCommand(ConnectingFailedCommandAIR);
|
||||
signalCommandMap.map(JoinMeetingSignal).toCommand(JoinMeetingCommand);
|
||||
signalCommandMap.map(ConnectingFailedSignal).toCommand(ConnectingFailedCommand);
|
||||
signalCommandMap.map(NavigateToSignal).toCommand(NavigateToCommand);
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package org.bigbluebutton.air.main.commands {
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Command;
|
||||
|
||||
public class ConnectingFailedCommandAIR extends Command {
|
||||
public class ConnectingFailedCommand extends Command {
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
@ -6,7 +6,7 @@ package org.bigbluebutton.air.main.commands {
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Command;
|
||||
|
||||
public class ConnectingFinishedCommandAIR extends Command {
|
||||
public class ConnectingFinishedCommand extends Command {
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession
|
@ -1,5 +1,8 @@
|
||||
package org.bigbluebutton.air.main.commands {
|
||||
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.common.TransitionAnimationEnum;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.main.models.IUserSession;
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Command;
|
||||
@ -12,6 +15,9 @@ package org.bigbluebutton.air.main.commands {
|
||||
[Inject]
|
||||
public var userSession:IUserSession;
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
public function DisconnectUserCommand() {
|
||||
super();
|
||||
}
|
||||
@ -25,6 +31,9 @@ package org.bigbluebutton.air.main.commands {
|
||||
userSession.voiceConnection.disconnect(true);
|
||||
if (userSession.deskshareConnection)
|
||||
userSession.deskshareConnection.disconnect(true);
|
||||
|
||||
uiSession.setLoading(false);
|
||||
uiSession.pushPage(PageEnum.DISCONNECT, disconnectionStatusCode, TransitionAnimationEnum.APPEAR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,18 +0,0 @@
|
||||
package org.bigbluebutton.air.main.commands {
|
||||
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.common.TransitionAnimationEnum;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
|
||||
public class DisconnectUserCommandAIR extends DisconnectUserCommand {
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
override public function execute():void {
|
||||
super.execute();
|
||||
uiSession.setLoading(false);
|
||||
uiSession.pushPage(PageEnum.DISCONNECT, disconnectionStatusCode, TransitionAnimationEnum.APPEAR);
|
||||
}
|
||||
}
|
||||
}
|
@ -12,8 +12,8 @@ package org.bigbluebutton.air.main.commands {
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Command;
|
||||
|
||||
public class JoinMeetingCommandAIR extends Command {
|
||||
private const LOG:String = "JoinMeetingCommandAIR::";
|
||||
public class JoinMeetingCommand extends Command {
|
||||
private const LOG:String = "JoinMeetingCommand::";
|
||||
|
||||
[Inject]
|
||||
public var guestWaitService:IGuestWaitPageService;
|
@ -1,15 +1,15 @@
|
||||
package org.bigbluebutton.air.main.views {
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.presentation.views.PresentationViewBase;
|
||||
import org.bigbluebutton.air.presentation.views.PresentationView;
|
||||
import org.osmf.layout.HorizontalAlign;
|
||||
|
||||
import spark.layouts.VerticalLayout;
|
||||
|
||||
[Style(name = "menuHeight", inherit = "no", type = "Number")]
|
||||
public class MainView extends NoTabView {
|
||||
private var _presentationView:PresentationViewBase;
|
||||
private var _presentationView:PresentationView;
|
||||
|
||||
private var _menuButtons:MenuButtonsBase;
|
||||
private var _menuButtons:MenuButtons;
|
||||
|
||||
public function MainView() {
|
||||
super();
|
||||
@ -19,12 +19,12 @@ package org.bigbluebutton.air.main.views {
|
||||
vLayout.horizontalAlign = HorizontalAlign.CENTER;
|
||||
layout = vLayout;
|
||||
|
||||
_presentationView = new PresentationViewBase();
|
||||
_presentationView = new PresentationView();
|
||||
_presentationView.percentWidth = 100;
|
||||
_presentationView.percentHeight = 100;
|
||||
addElement(_presentationView);
|
||||
|
||||
_menuButtons = new MenuButtonsBase();
|
||||
_menuButtons = new MenuButtons();
|
||||
addElement(_menuButtons);
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ package org.bigbluebutton.air.main.views {
|
||||
[Style(name = "gap", inherit = "no", type = "Number")]
|
||||
[Style(name = "top", inherit = "no", type = "Number")]
|
||||
|
||||
public class MenuButtonsBase extends HGroup {
|
||||
public class MenuButtons extends HGroup {
|
||||
private var _audioButton:Button;
|
||||
|
||||
public function get audioButton():Button {
|
||||
@ -32,7 +32,7 @@ package org.bigbluebutton.air.main.views {
|
||||
return _statusButton;
|
||||
}
|
||||
|
||||
public function MenuButtonsBase() {
|
||||
public function MenuButtons() {
|
||||
super();
|
||||
|
||||
_micButton = new Button();
|
@ -2,20 +2,23 @@ package org.bigbluebutton.air.main.views {
|
||||
|
||||
import flash.events.MouseEvent;
|
||||
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.main.models.IConferenceParameters;
|
||||
import org.bigbluebutton.air.main.models.IMeetingData;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.video.commands.ShareCameraSignal;
|
||||
import org.bigbluebutton.air.video.models.WebcamStreamInfo;
|
||||
import org.bigbluebutton.air.voice.commands.MicrophoneMuteSignal;
|
||||
import org.bigbluebutton.air.voice.commands.ShareMicrophoneSignal;
|
||||
import org.bigbluebutton.air.voice.models.AudioTypeEnum;
|
||||
import org.bigbluebutton.air.voice.models.VoiceUser;
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Mediator;
|
||||
|
||||
public class MenuButtonsMediatorBase extends Mediator {
|
||||
public class MenuButtonsMediator extends Mediator {
|
||||
|
||||
[Inject]
|
||||
public var view:MenuButtonsBase;
|
||||
public var view:MenuButtons;
|
||||
|
||||
[Inject]
|
||||
public var microphoneMuteSignal:MicrophoneMuteSignal;
|
||||
@ -32,6 +35,9 @@ package org.bigbluebutton.air.main.views {
|
||||
[Inject]
|
||||
public var conferenceParameters:IConferenceParameters;
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
public override function initialize():void {
|
||||
meetingData.voiceUsers.userChangeSignal.add(onVoiceUserChanged);
|
||||
meetingData.webcams.webcamChangeSignal.add(onWebcamChange);
|
||||
@ -66,6 +72,11 @@ package org.bigbluebutton.air.main.views {
|
||||
}
|
||||
|
||||
protected function audioOnOff(e:MouseEvent):void {
|
||||
if (meetingData.voiceUsers.me == null) {
|
||||
uiSession.pushPage(PageEnum.ECHOTEST);
|
||||
} else {
|
||||
shareMicrophoneSignal.dispatch(AudioTypeEnum.LEAVE, "");
|
||||
}
|
||||
}
|
||||
|
||||
private function camOnOff(e:MouseEvent):void {
|
@ -1,21 +0,0 @@
|
||||
package org.bigbluebutton.air.main.views {
|
||||
import flash.events.MouseEvent;
|
||||
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.voice.models.AudioTypeEnum;
|
||||
|
||||
public class MenuButtonsMediatorAIR extends MenuButtonsMediatorBase {
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
override protected function audioOnOff(e:MouseEvent):void {
|
||||
if (meetingData.voiceUsers.me == null) {
|
||||
uiSession.pushPage(PageEnum.ECHOTEST);
|
||||
} else {
|
||||
shareMicrophoneSignal.dispatch(AudioTypeEnum.LEAVE, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
package org.bigbluebutton.air.main.views {
|
||||
import mx.graphics.SolidColor;
|
||||
|
||||
import spark.primitives.Rect;
|
||||
|
||||
public class TopToolbarAIR extends TopToolbarBase {
|
||||
|
||||
private var _background:Rect;
|
||||
|
||||
public function TopToolbarAIR() {
|
||||
super();
|
||||
|
||||
_background = new Rect();
|
||||
_background.percentHeight = 100;
|
||||
_background.percentWidth = 100;
|
||||
_background.fill = new SolidColor();
|
||||
addElementAt(_background, 0);
|
||||
}
|
||||
|
||||
override protected function updateDisplayList(w:Number, h:Number):void {
|
||||
super.updateDisplayList(w, h);
|
||||
|
||||
SolidColor(_background.fill).color = getStyle("backgroundColor");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,11 +1,14 @@
|
||||
package org.bigbluebutton.air.main.views {
|
||||
|
||||
import mx.graphics.SolidColor;
|
||||
|
||||
import spark.components.Button;
|
||||
import spark.components.Group;
|
||||
import spark.components.HGroup;
|
||||
import spark.components.Label;
|
||||
import spark.layouts.HorizontalAlign;
|
||||
import spark.layouts.VerticalAlign;
|
||||
import spark.primitives.Rect;
|
||||
|
||||
public class TopToolbarBase extends Group {
|
||||
private var _leftButton:Button;
|
||||
@ -34,6 +37,8 @@ package org.bigbluebutton.air.main.views {
|
||||
|
||||
private var titleGroup:HGroup;
|
||||
|
||||
private var _background:Rect;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ -64,6 +69,12 @@ package org.bigbluebutton.air.main.views {
|
||||
_recordingIcon = new Label();
|
||||
_recordingIcon.styleName = "icon-record recordIcon";
|
||||
titleGroup.addElement(_recordingIcon);
|
||||
|
||||
_background = new Rect();
|
||||
_background.percentHeight = 100;
|
||||
_background.percentWidth = 100;
|
||||
_background.fill = new SolidColor();
|
||||
addElementAt(_background, 0);
|
||||
}
|
||||
|
||||
public function showRecording(isRecording:Boolean):void {
|
||||
@ -75,6 +86,7 @@ package org.bigbluebutton.air.main.views {
|
||||
super.updateDisplayList(unscaledWidth, unscaledHeight);
|
||||
|
||||
_recordingIcon.text = _recordingIcon.getStyle("content");
|
||||
SolidColor(_background.fill).color = getStyle("backgroundColor");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,11 +4,24 @@ package org.bigbluebutton.air.main.views {
|
||||
import org.bigbluebutton.air.chat.models.GroupChat;
|
||||
import org.bigbluebutton.air.chat.models.IChatMessagesSession;
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.main.models.IConferenceParameters;
|
||||
import org.bigbluebutton.air.main.models.IMeetingData;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.voice.commands.ShareMicrophoneSignal;
|
||||
import org.bigbluebutton.air.voice.models.AudioTypeEnum;
|
||||
|
||||
public class TopToolbarMediatorAIR extends TopToolbarMediatorBase {
|
||||
import robotlegs.bender.bundles.mvcs.Mediator;
|
||||
|
||||
public class TopToolbarMediator extends Mediator {
|
||||
|
||||
[Inject]
|
||||
public var view:TopToolbarBase;
|
||||
|
||||
[Inject]
|
||||
public var meetingData:IMeetingData;
|
||||
|
||||
[Inject]
|
||||
public var conferenceParameters:IConferenceParameters;
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
@ -19,15 +32,17 @@ package org.bigbluebutton.air.main.views {
|
||||
[Inject]
|
||||
public var shareMicrophoneSignal:ShareMicrophoneSignal;
|
||||
|
||||
override protected function setVisibility():void {
|
||||
if (uiSession.currentPage == PageEnum.DISCONNECT || uiSession.currentPage == PageEnum.EXIT) {
|
||||
view.visible = view.includeInLayout = false;
|
||||
} else {
|
||||
view.visible = view.includeInLayout = true;
|
||||
}
|
||||
override public function initialize():void {
|
||||
view.leftButton.addEventListener(MouseEvent.CLICK, leftButtonClickHandler);
|
||||
view.rightButton.addEventListener(MouseEvent.CLICK, rightButtonClickHandler);
|
||||
meetingData.meetingStatus.recordingStatusChangedSignal.add(onRecordingStatusChanged);
|
||||
|
||||
setVisibility()
|
||||
setTitle();
|
||||
view.showRecording(meetingData.meetingStatus.isRecording);
|
||||
}
|
||||
|
||||
override protected function setTitle():void {
|
||||
protected function setTitle():void {
|
||||
if (!view.visible) {
|
||||
return;
|
||||
}
|
||||
@ -53,7 +68,15 @@ package org.bigbluebutton.air.main.views {
|
||||
}
|
||||
}
|
||||
|
||||
override protected function leftButtonClickHandler(e:MouseEvent):void {
|
||||
protected function setVisibility():void {
|
||||
if (uiSession.currentPage == PageEnum.DISCONNECT || uiSession.currentPage == PageEnum.EXIT) {
|
||||
view.visible = view.includeInLayout = false;
|
||||
} else {
|
||||
view.visible = view.includeInLayout = true;
|
||||
}
|
||||
}
|
||||
|
||||
protected function leftButtonClickHandler(e:MouseEvent):void {
|
||||
if (uiSession.currentPage == PageEnum.MAIN) {
|
||||
uiSession.pushPage(PageEnum.PARTICIPANTS);
|
||||
} else if (uiSession.currentPage == PageEnum.ECHOTEST) {
|
||||
@ -62,9 +85,10 @@ package org.bigbluebutton.air.main.views {
|
||||
} else {
|
||||
uiSession.popPage();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override protected function rightButtonClickHandler(e:MouseEvent):void {
|
||||
protected function rightButtonClickHandler(e:MouseEvent):void {
|
||||
if (uiSession.currentPage == PageEnum.MAIN) {
|
||||
uiSession.pushPage(PageEnum.SETTINGS);
|
||||
} else if (uiSession && uiSession.currentPage.indexOf("Settings") > 0) {
|
||||
@ -73,5 +97,18 @@ package org.bigbluebutton.air.main.views {
|
||||
uiSession.pushPage(PageEnum.MAIN);
|
||||
}
|
||||
}
|
||||
|
||||
protected function onRecordingStatusChanged(isRecording:Boolean):void {
|
||||
view.showRecording(isRecording);
|
||||
}
|
||||
|
||||
override public function destroy():void {
|
||||
view.leftButton.removeEventListener(MouseEvent.CLICK, leftButtonClickHandler);
|
||||
view.rightButton.removeEventListener(MouseEvent.CLICK, rightButtonClickHandler);
|
||||
meetingData.meetingStatus.recordingStatusChangedSignal.remove(onRecordingStatusChanged);
|
||||
|
||||
super.destroy();
|
||||
view = null;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
package org.bigbluebutton.air.main.views {
|
||||
import flash.events.MouseEvent;
|
||||
|
||||
import org.bigbluebutton.air.main.models.IConferenceParameters;
|
||||
import org.bigbluebutton.air.main.models.IMeetingData;
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Mediator;
|
||||
|
||||
public class TopToolbarMediatorBase extends Mediator {
|
||||
|
||||
[Inject]
|
||||
public var view:TopToolbarBase;
|
||||
|
||||
[Inject]
|
||||
public var meetingData:IMeetingData;
|
||||
|
||||
[Inject]
|
||||
public var conferenceParameters:IConferenceParameters;
|
||||
|
||||
override public function initialize():void {
|
||||
view.leftButton.addEventListener(MouseEvent.CLICK, leftButtonClickHandler);
|
||||
view.rightButton.addEventListener(MouseEvent.CLICK, rightButtonClickHandler);
|
||||
meetingData.meetingStatus.recordingStatusChangedSignal.add(onRecordingStatusChanged);
|
||||
|
||||
setVisibility()
|
||||
setTitle();
|
||||
view.showRecording(meetingData.meetingStatus.isRecording);
|
||||
}
|
||||
|
||||
protected function setTitle():void {
|
||||
view.titleLabel.text = conferenceParameters.meetingName;
|
||||
}
|
||||
|
||||
protected function setVisibility():void {
|
||||
}
|
||||
|
||||
protected function leftButtonClickHandler(e:MouseEvent):void {
|
||||
|
||||
}
|
||||
|
||||
protected function rightButtonClickHandler(e:MouseEvent):void {
|
||||
|
||||
}
|
||||
|
||||
protected function onRecordingStatusChanged(isRecording:Boolean):void {
|
||||
view.showRecording(isRecording);
|
||||
}
|
||||
|
||||
override public function destroy():void {
|
||||
view.leftButton.removeEventListener(MouseEvent.CLICK, leftButtonClickHandler);
|
||||
view.rightButton.removeEventListener(MouseEvent.CLICK, rightButtonClickHandler);
|
||||
meetingData.meetingStatus.recordingStatusChangedSignal.remove(onRecordingStatusChanged);
|
||||
|
||||
super.destroy();
|
||||
view = null;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
package org.bigbluebutton.air.participants.views {
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
import spark.components.SkinnableContainer;
|
||||
import spark.layouts.HorizontalAlign;
|
||||
@ -28,7 +28,7 @@ package org.bigbluebutton.air.participants.views {
|
||||
addElement(skinnableWrapper);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarParticipants();
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ package org.bigbluebutton.air.participants.views {
|
||||
import spark.primitives.Rect;
|
||||
|
||||
import org.bigbluebutton.air.chat.views.ChatRoomsViewBase;
|
||||
import org.bigbluebutton.air.user.views.UsersViewBase;
|
||||
import org.bigbluebutton.air.user.views.UsersView;
|
||||
|
||||
public class ParticipantsViewBase extends Group {
|
||||
|
||||
@ -35,7 +35,7 @@ package org.bigbluebutton.air.participants.views {
|
||||
chatRoomsView.percentWidth = 100;
|
||||
group.addElement(chatRoomsView);
|
||||
|
||||
var usersView:UsersViewBase = createUsersView();
|
||||
var usersView:UsersView = createUsersView();
|
||||
usersView.percentWidth = 100;
|
||||
usersView.percentHeight = 100;
|
||||
group.addElement(usersView);
|
||||
@ -47,8 +47,8 @@ package org.bigbluebutton.air.participants.views {
|
||||
return new ChatRoomsViewBase;
|
||||
}
|
||||
|
||||
protected function createUsersView():UsersViewBase {
|
||||
return new UsersViewBase;
|
||||
protected function createUsersView():UsersView {
|
||||
return new UsersView;
|
||||
}
|
||||
|
||||
override protected function updateDisplayList(w:Number, h:Number):void {
|
||||
|
@ -1,7 +1,7 @@
|
||||
package org.bigbluebutton.air.participants.views {
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
public class TopToolbarParticipants extends TopToolbarAIR {
|
||||
public class TopToolbarParticipants extends TopToolbarBase {
|
||||
public function TopToolbarParticipants() {
|
||||
super();
|
||||
|
||||
|
@ -2,7 +2,7 @@ package org.bigbluebutton.air.presentation {
|
||||
import org.bigbluebutton.air.presentation.commands.LoadSlideCommand;
|
||||
import org.bigbluebutton.air.presentation.commands.LoadSlideSignal;
|
||||
import org.bigbluebutton.air.presentation.views.PresentationMediatorBase;
|
||||
import org.bigbluebutton.air.presentation.views.PresentationViewBase;
|
||||
import org.bigbluebutton.air.presentation.views.PresentationView;
|
||||
|
||||
import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
|
||||
import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap;
|
||||
@ -38,7 +38,7 @@ package org.bigbluebutton.air.presentation {
|
||||
* Maps view mediators to views.
|
||||
*/
|
||||
private function mediators():void {
|
||||
mediatorMap.map(PresentationViewBase).toMediator(PresentationMediatorBase);
|
||||
mediatorMap.map(PresentationView).toMediator(PresentationMediatorBase);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,57 +0,0 @@
|
||||
package org.bigbluebutton.air.presentation.utils {
|
||||
import mx.graphics.SolidColor;
|
||||
import mx.graphics.SolidColorStroke;
|
||||
|
||||
import spark.components.Group;
|
||||
import spark.primitives.Ellipse;
|
||||
|
||||
public class CursorIndicator {
|
||||
private static var SIZE:Number = 10;
|
||||
|
||||
private static var COLOR:uint = 0xFF0000;
|
||||
|
||||
private static var ALPHA:Number = 0.6;
|
||||
|
||||
private var _x:Number = -1;
|
||||
|
||||
private var _y:Number = -1;
|
||||
|
||||
private var _indicator:Ellipse;
|
||||
|
||||
public function CursorIndicator() {
|
||||
super();
|
||||
}
|
||||
|
||||
public function draw(canvas:Group, newX:Number, newY:Number):void {
|
||||
if (!_indicator) {
|
||||
_indicator = new Ellipse();
|
||||
}
|
||||
|
||||
_x = newX;
|
||||
_y = newY;
|
||||
|
||||
_indicator.stroke = new SolidColorStroke(COLOR, 1, ALPHA);
|
||||
_indicator.fill = new SolidColor(COLOR, ALPHA);
|
||||
_indicator.x = newX * canvas.width - (SIZE / 2);
|
||||
_indicator.y = newY * canvas.height - (SIZE / 2);
|
||||
_indicator.width = SIZE;
|
||||
_indicator.height = SIZE;
|
||||
|
||||
if (newX < 0 || newY < 0 || newX > 1 || newY > 1) {
|
||||
remove(canvas);
|
||||
} else if (!canvas.containsElement(_indicator)) {
|
||||
canvas.addElement(_indicator);
|
||||
}
|
||||
}
|
||||
|
||||
public function redraw(canvas:Group):void {
|
||||
draw(canvas, _x, _y);
|
||||
}
|
||||
|
||||
public function remove(canvas:Group):void {
|
||||
if (canvas.containsElement(_indicator)) {
|
||||
canvas.removeElement(_indicator);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -8,14 +8,13 @@ package org.bigbluebutton.air.presentation.views {
|
||||
import org.bigbluebutton.air.presentation.models.Presentation;
|
||||
import org.bigbluebutton.air.presentation.models.Slide;
|
||||
import org.bigbluebutton.air.presentation.models.SlideModel;
|
||||
import org.bigbluebutton.air.presentation.utils.CursorIndicator;
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Mediator;
|
||||
|
||||
public class PresentationMediatorBase extends Mediator {
|
||||
|
||||
[Inject]
|
||||
public var view:PresentationViewBase;
|
||||
public var view:PresentationView;
|
||||
|
||||
[Inject]
|
||||
public var userSession:IUserSession;
|
||||
|
@ -9,7 +9,7 @@ package org.bigbluebutton.air.presentation.views {
|
||||
|
||||
import spark.components.Group;
|
||||
|
||||
public class PresentationViewBase extends Group {
|
||||
public class PresentationView extends Group {
|
||||
private var _viewport:Group;
|
||||
|
||||
public function get viewport():Group {
|
||||
@ -28,7 +28,7 @@ package org.bigbluebutton.air.presentation.views {
|
||||
return _wbCanvas;
|
||||
}
|
||||
|
||||
public function PresentationViewBase() {
|
||||
public function PresentationView() {
|
||||
super();
|
||||
|
||||
_viewport = new Group();
|
@ -1,6 +1,6 @@
|
||||
package org.bigbluebutton.air.settings.views {
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
import spark.components.Scroller;
|
||||
import spark.layouts.HorizontalAlign;
|
||||
@ -28,7 +28,7 @@ package org.bigbluebutton.air.settings.views {
|
||||
addElement(scroller);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarSettings();
|
||||
}
|
||||
}
|
||||
|
4
clients/flash/air-client/src/org/bigbluebutton/air/settings/views/TopToolbarSettings.as
Normal file → Executable file
4
clients/flash/air-client/src/org/bigbluebutton/air/settings/views/TopToolbarSettings.as
Normal file → Executable file
@ -1,7 +1,7 @@
|
||||
package org.bigbluebutton.air.settings.views {
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
public class TopToolbarSettings extends TopToolbarAIR {
|
||||
public class TopToolbarSettings extends TopToolbarBase {
|
||||
public function TopToolbarSettings() {
|
||||
titleLabel.text = "Settings";
|
||||
leftButton.styleName = "icon-presentation topButton topLeftButton";
|
||||
|
9
clients/flash/air-client/src/org/bigbluebutton/air/settings/views/TopToolbarSubSettings.as
Normal file → Executable file
9
clients/flash/air-client/src/org/bigbluebutton/air/settings/views/TopToolbarSubSettings.as
Normal file → Executable file
@ -1,7 +1,7 @@
|
||||
package org.bigbluebutton.air.settings.views {
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
public class TopToolbarSubSettings extends TopToolbarAIR {
|
||||
public class TopToolbarSubSettings extends TopToolbarBase {
|
||||
public function TopToolbarSubSettings() {
|
||||
super();
|
||||
|
||||
@ -9,10 +9,5 @@ package org.bigbluebutton.air.settings.views {
|
||||
rightButton.styleName = "saveButton topRightButton";
|
||||
rightButton.label = "SAVE";
|
||||
}
|
||||
|
||||
override protected function updateDisplayList(w:Number, h:Number):void {
|
||||
super.updateDisplayList(w, h);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
package org.bigbluebutton.air.settings.views.audio {
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
import org.bigbluebutton.air.settings.views.TopToolbarSubSettings;
|
||||
|
||||
import spark.layouts.VerticalLayout;
|
||||
@ -22,7 +22,7 @@ package org.bigbluebutton.air.settings.views.audio {
|
||||
addElement(_settingsView);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarSubSettings();
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package org.bigbluebutton.air.settings.views.camera {
|
||||
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
import org.bigbluebutton.air.settings.views.TopToolbarSubSettings;
|
||||
|
||||
import spark.layouts.VerticalLayout;
|
||||
@ -23,7 +23,7 @@ package org.bigbluebutton.air.settings.views.camera {
|
||||
addElement(_settingsView);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarSubSettings();
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
package org.bigbluebutton.air.settings.views.chat {
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
import org.bigbluebutton.air.settings.views.TopToolbarSubSettings;
|
||||
|
||||
import spark.layouts.VerticalLayout;
|
||||
@ -22,7 +22,7 @@ package org.bigbluebutton.air.settings.views.chat {
|
||||
addElement(_settingsView);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarSubSettings();
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package org.bigbluebutton.air.settings.views.lock {
|
||||
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
import org.bigbluebutton.air.settings.views.TopToolbarSubSettings;
|
||||
|
||||
import spark.components.Scroller;
|
||||
@ -28,7 +28,7 @@ package org.bigbluebutton.air.settings.views.lock {
|
||||
addElement(scroller);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarSubSettings();
|
||||
}
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ package org.bigbluebutton.air.user {
|
||||
import org.bigbluebutton.air.main.commands.EmojiSignal;
|
||||
import org.bigbluebutton.air.user.views.UserDetailsView;
|
||||
import org.bigbluebutton.air.user.views.UserDetailsViewMediator;
|
||||
import org.bigbluebutton.air.user.views.UsersViewBase;
|
||||
import org.bigbluebutton.air.user.views.UsersViewMediatorAIR;
|
||||
import org.bigbluebutton.air.user.views.UsersView;
|
||||
import org.bigbluebutton.air.user.views.UsersViewMediator;
|
||||
|
||||
import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
|
||||
import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap;
|
||||
@ -30,7 +30,7 @@ package org.bigbluebutton.air.user {
|
||||
* Maps view mediators to views.
|
||||
*/
|
||||
private function mediators():void {
|
||||
mediatorMap.map(UsersViewBase).toMediator(UsersViewMediatorAIR);
|
||||
mediatorMap.map(UsersView).toMediator(UsersViewMediator);
|
||||
mediatorMap.map(UserDetailsView).toMediator(UserDetailsViewMediator);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package org.bigbluebutton.air.user.views {
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
public class TopToolbarUserDetails extends TopToolbarAIR {
|
||||
public class TopToolbarUserDetails extends TopToolbarBase {
|
||||
public function TopToolbarUserDetails() {
|
||||
super();
|
||||
|
||||
|
@ -3,7 +3,7 @@ package org.bigbluebutton.air.user.views {
|
||||
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.common.views.ParticipantIcon;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
import org.bigbluebutton.air.user.models.EmojiStatus;
|
||||
import org.bigbluebutton.air.user.models.UserRole;
|
||||
import org.bigbluebutton.air.user.utils.UserUtils;
|
||||
@ -199,7 +199,7 @@ package org.bigbluebutton.air.user.views {
|
||||
addElement(skinnableWrapper);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarUserDetails();
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@ package org.bigbluebutton.air.user.views {
|
||||
import spark.components.VGroup;
|
||||
import spark.layouts.VerticalLayout;
|
||||
|
||||
public class UsersViewBase extends VGroup {
|
||||
public class UsersView extends VGroup {
|
||||
|
||||
private var _userLabel:Label;
|
||||
|
||||
@ -20,7 +20,7 @@ package org.bigbluebutton.air.user.views {
|
||||
return _userList;
|
||||
}
|
||||
|
||||
public function UsersViewBase() {
|
||||
public function UsersView() {
|
||||
super();
|
||||
|
||||
_userLabel = new Label();
|
@ -1,5 +1,7 @@
|
||||
package org.bigbluebutton.air.user.views {
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.main.models.IMeetingData;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.main.models.LockSettings2x;
|
||||
import org.bigbluebutton.air.user.events.UserItemSelectedEvent;
|
||||
import org.bigbluebutton.air.user.models.User2x;
|
||||
@ -12,14 +14,17 @@ package org.bigbluebutton.air.user.views {
|
||||
|
||||
import robotlegs.bender.bundles.mvcs.Mediator;
|
||||
|
||||
public class UsersViewMediatorBase extends Mediator {
|
||||
public class UsersViewMediator extends Mediator {
|
||||
|
||||
[Inject]
|
||||
public var view:UsersViewBase;
|
||||
public var view:UsersView;
|
||||
|
||||
[Inject]
|
||||
public var meetingData:IMeetingData;
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
[Bindable]
|
||||
private var _userCollection:UsersVMCollection;
|
||||
|
||||
@ -101,7 +106,7 @@ package org.bigbluebutton.air.user.views {
|
||||
}
|
||||
|
||||
protected function onUserItemSelected(e:UserItemSelectedEvent):void {
|
||||
// leave the implementation to the specific client
|
||||
uiSession.pushPage(PageEnum.USER_DETAILS, e.user.intId);
|
||||
}
|
||||
|
||||
override public function destroy():void {
|
@ -1,15 +0,0 @@
|
||||
package org.bigbluebutton.air.user.views {
|
||||
import org.bigbluebutton.air.common.PageEnum;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.user.events.UserItemSelectedEvent;
|
||||
|
||||
public class UsersViewMediatorAIR extends UsersViewMediatorBase {
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
override protected function onUserItemSelected(e:UserItemSelectedEvent):void {
|
||||
uiSession.pushPage(PageEnum.USER_DETAILS, e.user.intId);
|
||||
}
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@ package org.bigbluebutton.air.voice {
|
||||
import org.bigbluebutton.air.voice.commands.ShareMicrophoneCommand;
|
||||
import org.bigbluebutton.air.voice.commands.ShareMicrophoneSignal;
|
||||
import org.bigbluebutton.air.voice.views.EchoTestViewBase;
|
||||
import org.bigbluebutton.air.voice.views.EchoTestViewMediatorAIR;
|
||||
import org.bigbluebutton.air.voice.views.EchoTestViewMediator;
|
||||
|
||||
import robotlegs.bender.extensions.matching.TypeMatcher;
|
||||
import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
|
||||
@ -30,7 +30,7 @@ package org.bigbluebutton.air.voice {
|
||||
*/
|
||||
private function mediators():void {
|
||||
//mediatorMap.map(IMicButton).toMediator(MicButtonMediator);
|
||||
mediatorMap.mapMatcher(new TypeMatcher().allOf(EchoTestViewBase)).toMediator(EchoTestViewMediatorAIR);
|
||||
mediatorMap.mapMatcher(new TypeMatcher().allOf(EchoTestViewBase)).toMediator(EchoTestViewMediator);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,6 @@
|
||||
package org.bigbluebutton.air.voice.views {
|
||||
import org.bigbluebutton.air.common.views.NoTabView;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
import org.osmf.layout.HorizontalAlign;
|
||||
|
||||
import spark.layouts.VerticalLayout;
|
||||
@ -22,7 +22,7 @@ package org.bigbluebutton.air.voice.views {
|
||||
addElement(_echoTestView);
|
||||
}
|
||||
|
||||
override protected function createToolbar():TopToolbarAIR {
|
||||
override protected function createToolbar():TopToolbarBase {
|
||||
return new TopToolbarEchoTest();
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ package org.bigbluebutton.air.voice.views {
|
||||
|
||||
import org.bigbluebutton.air.main.models.IConferenceParameters;
|
||||
import org.bigbluebutton.air.main.models.IMeetingData;
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
import org.bigbluebutton.air.main.models.IUserSession;
|
||||
import org.bigbluebutton.air.voice.commands.ShareMicrophoneSignal;
|
||||
import org.bigbluebutton.air.voice.models.AudioTypeEnum;
|
||||
@ -33,6 +34,9 @@ package org.bigbluebutton.air.voice.views {
|
||||
[Inject]
|
||||
public var meetingData:IMeetingData;
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
private var selectedMicrophone:Microphone;
|
||||
|
||||
private var micActivityTimer:Timer;
|
||||
@ -132,6 +136,8 @@ package org.bigbluebutton.air.voice.views {
|
||||
protected function yesButtonHandler(e:MouseEvent):void {
|
||||
stopEchoTest();
|
||||
|
||||
uiSession.popPage();
|
||||
|
||||
var audioOptions:Object = new Object();
|
||||
audioOptions.shareMic = true;
|
||||
audioOptions.listenOnly = false;
|
||||
|
@ -1,20 +0,0 @@
|
||||
package org.bigbluebutton.air.voice.views {
|
||||
import flash.events.MouseEvent;
|
||||
|
||||
import org.bigbluebutton.air.main.models.IUISession;
|
||||
|
||||
public class EchoTestViewMediatorAIR extends EchoTestViewMediator {
|
||||
|
||||
[Inject]
|
||||
public var uiSession:IUISession;
|
||||
|
||||
public function EchoTestViewMediatorAIR() {
|
||||
super();
|
||||
}
|
||||
|
||||
override protected function yesButtonHandler(e:MouseEvent):void {
|
||||
super.yesButtonHandler(e);
|
||||
uiSession.popPage();
|
||||
}
|
||||
}
|
||||
}
|
4
clients/flash/air-client/src/org/bigbluebutton/air/voice/views/TopToolbarEchoTest.as
Normal file → Executable file
4
clients/flash/air-client/src/org/bigbluebutton/air/voice/views/TopToolbarEchoTest.as
Normal file → Executable file
@ -1,7 +1,7 @@
|
||||
package org.bigbluebutton.air.voice.views {
|
||||
import org.bigbluebutton.air.main.views.TopToolbarAIR;
|
||||
import org.bigbluebutton.air.main.views.TopToolbarBase;
|
||||
|
||||
public class TopToolbarEchoTest extends TopToolbarAIR {
|
||||
public class TopToolbarEchoTest extends TopToolbarBase {
|
||||
public function TopToolbarEchoTest() {
|
||||
leftButton.styleName = "icon-left-arrow topButton topLeftButton";
|
||||
rightButton.setVisible(false);
|
||||
|
Loading…
Reference in New Issue
Block a user