Skip to content
Permalink
Browse files

Merge branch 'master' of https://github.com/bigbluebutton/bbb-air-client

 into optimize-videochatview

Conflicts:
	src/Default.css
  • Loading branch information...
GaryDeng committed Jul 14, 2014
2 parents 4bbb71c + 5ee8859 commit f167c3e667211c1630119aee5fd00485643f416d
@@ -150,6 +150,8 @@ s|SkinnableContainer.containerStyle
s|Application.mainshellStyle
{
topActionBarColor: #646262;
imageScaleX:0.6;
imageScaleY:0.6;
}

s|Group.pageStyle
@@ -171,6 +173,11 @@ global

@media (application-dpi: 160) {

s|Application.mainshellStyle
{
recordingStatusImage: "assets/res/drawable-mdpi/media_record.png";
}

s|Label
{
paddingTop: 10;
@@ -405,6 +412,11 @@ global

@media (application-dpi: 240) {

s|Application.mainshellStyle
{
recordingStatusImage: "assets/res/drawable-hdpi/media_record.png";
}

s|Label
{
paddingTop: 15;
@@ -638,6 +650,11 @@ global

@media (application-dpi: 320) {

s|Application.mainshellStyle
{
recordingStatusImage: "assets/res/drawable-xhdpi/media_record.png";
}

s|Label
{
paddingTop: 20;
@@ -866,6 +883,11 @@ global

@media (application-dpi: 480) {

s|Application.mainshellStyle
{
recordingStatusImage: "assets/res/drawable-xxhdpi/media_record.png";
}

s|Label
{
paddingTop: 30;
@@ -50,6 +50,7 @@
import org.bigbluebutton.view.navigation.pages.videochat.VideoChatConfig;
import org.bigbluebutton.view.ui.MicButtonConfig;
import org.bigbluebutton.view.ui.NavigationButtonConfig;
import org.bigbluebutton.view.ui.RecordingStatusConfig;
import org.bigbluebutton.view.ui.SwapCameraConfig;
import org.bigbluebutton.view.ui.loading.LoadingScreenConfig;
import org.osmf.logging.Log;
@@ -67,6 +68,7 @@
private var _orientationCalc:OrientationCalculator;
public var currentOrientation:String;
protected function preinitializeHandler(event:FlexEvent):void
{
setupContext();
@@ -123,6 +125,7 @@
.configure(DisconnectPageConfig)
.configure(DeskshareConfig)
.configure(MenuButtonsConfig)
.configure(RecordingStatusConfig)
.configure(new ContextView(this));
@@ -152,7 +155,7 @@
protected function creationCompleteHandler(event:FlexEvent):void
{
}
protected function applicationCompleteHandler(event:FlexEvent):void
@@ -220,7 +223,7 @@
<s:SolidColor color="{getStyle('topActionBarColor')}" />
</s:fill>
</s:Rect>
<s:HGroup width="100%" height="100%">
<s:HGroup width="100%" height="100%" verticalAlign="middle">
<ui:NavigationButton id="profileBtn" click="profileBtn_clickHandler(event)"
styleName="profileButtonStyle topButtonStyle "
navigateTo="{[PagesENUM.PROFILE]}"
@@ -230,7 +233,9 @@
styleName="backButtonStyle topButtonStyle"
navigateTo="{[PagesENUM.LAST]}"
transitionAnimation="{TransitionAnimationENUM.SLIDE_RIGHT}"
height="100%"/>
height="100%"/>
<ui:RecordingStatus id="recordingStatus" source="{getStyle('recordingStatusImage')}" visible="false"
scaleMode="letterbox" scaleX="{getStyle('imageScaleX')}" scaleY="{getStyle('imageScaleY')}" height="100%"/>
<s:Label id="pageName" styleName="pageNameStyle" width="100%" />
<ui:SwapCameraButton id="swapCameraBtn" visible="false" styleName="swapCameraButtonStyle topButtonStyle" height="100%" />
<ui:MicButton id="microphoneBtn" styleName="micButtonStyle topButtonStyle" height="100%" />
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -80,7 +80,8 @@ package org.bigbluebutton.core
{
trace("Error while trying to call remote method on the server");
}
)
),
_room
);

}
@@ -207,6 +207,7 @@ package org.bigbluebutton.core
private function handleGetRecordingStatusReply(m:Object):void {
trace("UsersMessageReceiver::handleGetRecordingStatusReply() -- recording status");
var msg:Object = JSON.parse(m.msg);
userSession.recordingStatusChanged(msg.recording);
}
}
}
@@ -339,6 +339,7 @@ package org.bigbluebutton.model
public function userLeaveAudio(userID:String):void {
var user:User = getUser(userID);
if(user != null) {
user.talking = false;
user.voiceJoined = false;

userChangeSignal.dispatch(user, JOIN_AUDIO);
@@ -3,6 +3,7 @@ package org.bigbluebutton.view.navigation.pages.disconnect
import flash.desktop.NativeApplication;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.system.Capabilities;

import mx.core.FlexGlobals;

@@ -23,7 +24,14 @@ package org.bigbluebutton.view.navigation.pages.disconnect

override public function initialize():void
{
view.exitButton.addEventListener(MouseEvent.CLICK, applicationExit);
// If operating system is iOS, don't show exit button because there is no way to exit application:
if(Capabilities.os.search("iPhone") >= 0) {
view.exitButton.visible = false;
}
else {
view.exitButton.addEventListener(MouseEvent.CLICK, applicationExit);
}

changeConnectionStatus(userUISession.currentPageDetails as int);
FlexGlobals.topLevelApplication.pageName.text = "";
FlexGlobals.topLevelApplication.topActionBar.visible = false;
@@ -138,19 +138,22 @@ package org.bigbluebutton.view.navigation.pages.videochat
stopStream(userID);
checkVideo();
}
if(dataProvider.contains(userSession.userList.getUserByUserId(userID)))
for(var item:int; item<dataProvider.length; item++)
{
dataProvider.removeItemAt(dataProvider.getItemIndex(userSession.userList.getUserByUserId(userID)))
if(dataProvider.length==0)
{
view.noVideoMessage.visible = true;
}
else
if((dataProvider.getItemAt(item) as User).userID == userID)
{
view.noVideoMessage.visible = false;
dataProvider.removeItemAt(item);
break;
}
}

if(dataProvider.length==0)
{
view.noVideoMessage.visible = true;
}
else
{
view.noVideoMessage.visible = false;
}
}

private function userChangeHandler(user:User, property:int):void
@@ -0,0 +1,8 @@
package org.bigbluebutton.view.ui
{
import org.bigbluebutton.core.view.IView;
public interface IRecordingStatus extends IView
{
function setVisibility(val:Boolean):void;
}
}
@@ -0,0 +1,22 @@
package org.bigbluebutton.view.ui
{
import spark.components.Image;

public class RecordingStatus extends Image implements IRecordingStatus
{
public function RecordingStatus()
{
super();
}

public function setVisibility(val:Boolean):void
{
super.visible = val;
}

public function dispose():void
{

}
}
}
@@ -0,0 +1,52 @@
package org.bigbluebutton.view.ui
{
import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
import robotlegs.bender.extensions.signalCommandMap.api.ISignalCommandMap;
import robotlegs.bender.framework.api.IConfig;
import robotlegs.bender.framework.api.IInjector;

public class RecordingStatusConfig implements IConfig
{
[Inject]
public var injector: IInjector;

[Inject]
public var mediatorMap: IMediatorMap;

[Inject]
public var signalCommandMap: ISignalCommandMap;

public function configure(): void
{
dependencies();
mediators();
signals();
}

/**
* Specifies all the dependencies for the feature
* that will be injected onto objects used by the
* application.
*/
private function dependencies(): void
{

}

/**
* Maps view mediators to views.
*/
private function mediators(): void
{
mediatorMap.map(IRecordingStatus).toMediator(RecordingStatusMediator);
}

/**
* Maps signals to commands using the signalCommandMap.
*/
private function signals(): void
{

}
}
}
@@ -0,0 +1,31 @@
package org.bigbluebutton.view.ui
{
import org.bigbluebutton.model.IUserSession;

import robotlegs.bender.bundles.mvcs.Mediator;

public class RecordingStatusMediator extends Mediator
{
[Inject]
public var userSession:IUserSession;

[Inject]
public var view:IRecordingStatus;

override public function initialize():void
{
userSession.recordingStatusChangedSignal.add(setRecordingStatus);
}

public function setRecordingStatus(recording:Boolean):void
{
view.setVisibility(recording);
}

override public function destroy():void
{
userSession.recordingStatusChangedSignal.remove(setRecordingStatus);
}

}
}

0 comments on commit f167c3e

Please sign in to comment.
You can’t perform that action at this time.