[AIR] combine air specific classes with their base versions

This commit is contained in:
Chad Pilkey 2018-03-02 19:53:02 -08:00
parent d43b7d550d
commit 9ce004ca68
59 changed files with 322 additions and 506 deletions

View File

@ -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");
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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); }
}
}

View File

@ -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 {

View File

@ -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();
}
}

View File

@ -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 {

View File

@ -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});
}
}
}

View File

@ -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 {

View File

@ -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);
}
}
}
}

View File

@ -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();

View 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 {

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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;

View File

@ -1,8 +0,0 @@
package org.bigbluebutton.air.deskshare.views {
import spark.components.Label;
public interface IDeskshareViewAir extends IDeskshareView {
function get noDeskshareMessage():Label;
}
}

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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

View File

@ -1,8 +1,11 @@
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;
import robotlegs.bender.bundles.mvcs.Command;
public class DisconnectUserCommand extends 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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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();

View File

@ -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 {

View File

@ -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, "");
}
}
}
}

View File

@ -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");
}
}
}

View File

@ -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");
}
}
}

View File

@ -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;
}
}
}

View File

@ -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;
}
}
}

View File

@ -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();
}
}

View File

@ -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 {

View File

@ -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();

View File

@ -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);
}
/**

View File

@ -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);
}
}
}
}

View File

@ -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;

View File

@ -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();

View File

@ -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();
}
}

View 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";

View 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);
}
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}

View File

@ -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();

View File

@ -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();
}

View File

@ -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();

View File

@ -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 {

View File

@ -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);
}
}
}

View File

@ -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);
}
/**

View File

@ -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();
}
}

View File

@ -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;

View File

@ -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();
}
}
}

View 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);