From f595da086949f097d2f710d51333e47ec764c3ed Mon Sep 17 00:00:00 2001 From: Chad Pilkey <capilkey@gmail.com> Date: Tue, 3 Apr 2018 16:25:24 -0700 Subject: [PATCH] [AIR] improve participants list responsiveness --- .../chat/events/ChatRoomItemSelectedEvent.as | 17 ---------- .../air/chat/views/ChatRoomsItemRenderer.mxml | 19 +---------- .../views/ParticipantsMediator.as | 32 ++++++++++++------- .../air/user/events/UserItemSelectedEvent.as | 17 ---------- .../air/user/views/UserItemRenderer.mxml | 17 ---------- 5 files changed, 21 insertions(+), 81 deletions(-) delete mode 100644 clients/flash/air-client/src/org/bigbluebutton/air/chat/events/ChatRoomItemSelectedEvent.as mode change 100644 => 100755 clients/flash/air-client/src/org/bigbluebutton/air/participants/views/ParticipantsMediator.as delete mode 100755 clients/flash/air-client/src/org/bigbluebutton/air/user/events/UserItemSelectedEvent.as diff --git a/clients/flash/air-client/src/org/bigbluebutton/air/chat/events/ChatRoomItemSelectedEvent.as b/clients/flash/air-client/src/org/bigbluebutton/air/chat/events/ChatRoomItemSelectedEvent.as deleted file mode 100644 index 88b20672c7..0000000000 --- a/clients/flash/air-client/src/org/bigbluebutton/air/chat/events/ChatRoomItemSelectedEvent.as +++ /dev/null @@ -1,17 +0,0 @@ -package org.bigbluebutton.air.chat.events { - import flash.events.Event; - - import org.bigbluebutton.air.chat.models.GroupChat; - - public class ChatRoomItemSelectedEvent extends Event { - public static var SELECTED:String = "CHAT_ROOM_ITEM_SELECTED_EVENT"; - - public var chatRoom:GroupChat; - - public function ChatRoomItemSelectedEvent(c:GroupChat) { - super(SELECTED, true, false); - - chatRoom = c; - } - } -} diff --git a/clients/flash/air-client/src/org/bigbluebutton/air/chat/views/ChatRoomsItemRenderer.mxml b/clients/flash/air-client/src/org/bigbluebutton/air/chat/views/ChatRoomsItemRenderer.mxml index af569783dd..4dad8c3a4f 100755 --- a/clients/flash/air-client/src/org/bigbluebutton/air/chat/views/ChatRoomsItemRenderer.mxml +++ b/clients/flash/air-client/src/org/bigbluebutton/air/chat/views/ChatRoomsItemRenderer.mxml @@ -5,9 +5,7 @@ xmlns:common="org.bigbluebutton.air.common.views.*" xmlns:views="org.bigbluebutton.air.chat.views.*" width="100%" - styleName="chatRoomItem" - click="onClick()" - keyUp="onKeyUp()"> + styleName="chatRoomItem"> <s:states> <s:State name="normal" /> @@ -17,24 +15,9 @@ <fx:Script> <![CDATA[ - import org.bigbluebutton.air.chat.events.ChatRoomItemSelectedEvent; import org.bigbluebutton.air.chat.models.GroupChat; import org.bigbluebutton.air.user.utils.UserUtils; - private function onClick():void { - sendSelectedEvent(); - } - - private function onKeyUp():void { - sendSelectedEvent(); - } - - private function sendSelectedEvent():void { - if (currentState == "selected") { - dispatchEvent(new ChatRoomItemSelectedEvent(data as GroupChat)); - } - } - override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { publicChatIcon.text = publicChatIcon.getStyle("icon"); diff --git a/clients/flash/air-client/src/org/bigbluebutton/air/participants/views/ParticipantsMediator.as b/clients/flash/air-client/src/org/bigbluebutton/air/participants/views/ParticipantsMediator.as old mode 100644 new mode 100755 index 9bd0aff724..9bce48ee56 --- a/clients/flash/air-client/src/org/bigbluebutton/air/participants/views/ParticipantsMediator.as +++ b/clients/flash/air-client/src/org/bigbluebutton/air/participants/views/ParticipantsMediator.as @@ -1,7 +1,7 @@ package org.bigbluebutton.air.participants.views { import mx.collections.ArrayCollection; + import mx.events.IndexChangedEvent; - import org.bigbluebutton.air.chat.events.ChatRoomItemSelectedEvent; import org.bigbluebutton.air.chat.models.GroupChat; import org.bigbluebutton.air.chat.models.GroupChatChangeEnum; import org.bigbluebutton.air.chat.models.IChatMessagesSession; @@ -12,7 +12,6 @@ package org.bigbluebutton.air.participants.views { import org.bigbluebutton.air.participants.models.CollectionActionResult; import org.bigbluebutton.air.participants.models.CollectionUpdateAction; import org.bigbluebutton.air.participants.models.ParticipantsCollection; - import org.bigbluebutton.air.user.events.UserItemSelectedEvent; import org.bigbluebutton.air.user.models.User2x; import org.bigbluebutton.air.user.models.UserChangeEnum; import org.bigbluebutton.air.user.views.models.UserVM; @@ -24,6 +23,8 @@ package org.bigbluebutton.air.participants.views { import robotlegs.bender.bundles.mvcs.Mediator; + import spark.events.IndexChangeEvent; + public class ParticipantsMediator extends Mediator { [Inject] @@ -44,8 +45,6 @@ package org.bigbluebutton.air.participants.views { [Bindable] private var _participantsCollection:ParticipantsCollection; - protected var dataProvider:ArrayCollection; - override public function initialize():void { initializeParticipantsCollection(); @@ -56,8 +55,7 @@ package org.bigbluebutton.air.participants.views { chatMessagesSession.groupChatChangeSignal.add(onGroupChatChange) - view.participantsList.addEventListener(UserItemSelectedEvent.SELECTED, onUserItemSelected); - view.participantsList.addEventListener(ChatRoomItemSelectedEvent.SELECTED, onChatItemSelected); + view.participantsList.addEventListener(IndexChangeEvent.CHANGE, onItemSelected); } private function initializeParticipantsCollection():void { @@ -153,12 +151,23 @@ package org.bigbluebutton.air.participants.views { _userCollection.setRoomLockState(newLockSettings.isRoomLocked()); } - protected function onUserItemSelected(e:UserItemSelectedEvent):void { - uiSession.pushPage(PageEnum.USER_DETAILS, e.user.intId); + private function onItemSelected(e:IndexChangeEvent):void { + var selectedObject:Object = _participantsCollection.getItemAt(e.newIndex); + if (selectedObject != null) { + if (selectedObject is UserVM) { + onUserItemSelected(selectedObject as UserVM); + } else if (selectedObject is GroupChat) { + onChatItemSelected(selectedObject as GroupChat); + } + } + } + + protected function onUserItemSelected(u:UserVM):void { + uiSession.pushPage(PageEnum.USER_DETAILS, u.intId); } - private function onChatItemSelected(e:ChatRoomItemSelectedEvent):void { - uiSession.pushPage(PageEnum.CHAT, {chatId: e.chatRoom.chatId}); + private function onChatItemSelected(gc:GroupChat):void { + uiSession.pushPage(PageEnum.CHAT, {chatId: gc.chatId}); } override public function destroy():void { @@ -169,8 +178,7 @@ package org.bigbluebutton.air.participants.views { chatMessagesSession.groupChatChangeSignal.remove(onGroupChatChange) - view.participantsList.removeEventListener(UserItemSelectedEvent.SELECTED, onUserItemSelected); - view.participantsList.removeEventListener(ChatRoomItemSelectedEvent.SELECTED, onChatItemSelected); + view.participantsList.removeEventListener(IndexChangeEvent.CHANGE, onItemSelected); super.destroy(); view = null; diff --git a/clients/flash/air-client/src/org/bigbluebutton/air/user/events/UserItemSelectedEvent.as b/clients/flash/air-client/src/org/bigbluebutton/air/user/events/UserItemSelectedEvent.as deleted file mode 100755 index 5630eb4032..0000000000 --- a/clients/flash/air-client/src/org/bigbluebutton/air/user/events/UserItemSelectedEvent.as +++ /dev/null @@ -1,17 +0,0 @@ -package org.bigbluebutton.air.user.events { - import flash.events.Event; - - import org.bigbluebutton.air.user.views.models.UserVM; - - public class UserItemSelectedEvent extends Event { - public static var SELECTED:String = "USER_ITEM_SELECTED_EVENT"; - - public var user:UserVM; - - public function UserItemSelectedEvent(u:UserVM) { - super(SELECTED, true, false); - - user = u; - } - } -} diff --git a/clients/flash/air-client/src/org/bigbluebutton/air/user/views/UserItemRenderer.mxml b/clients/flash/air-client/src/org/bigbluebutton/air/user/views/UserItemRenderer.mxml index 38ed9e3d2d..0886e74b7e 100755 --- a/clients/flash/air-client/src/org/bigbluebutton/air/user/views/UserItemRenderer.mxml +++ b/clients/flash/air-client/src/org/bigbluebutton/air/user/views/UserItemRenderer.mxml @@ -3,8 +3,6 @@ xmlns:s="library://ns.adobe.com/flex/spark" xmlns:common="org.bigbluebutton.air.common.views.*" width="100%" - click="onClick()" - keyUp="onKeyUp()" styleName="participantItem"> <s:states> <s:State name="normal" /> @@ -18,26 +16,11 @@ <fx:Script> <![CDATA[ - import org.bigbluebutton.air.user.events.UserItemSelectedEvent; import org.bigbluebutton.air.user.models.EmojiStatus; import org.bigbluebutton.air.user.models.UserRole; import org.bigbluebutton.air.user.utils.UserUtils; import org.bigbluebutton.air.user.views.models.UserVM; - private function onClick():void { - sendSelectedEvent(); - } - - private function onKeyUp():void { - sendSelectedEvent(); - } - - private function sendSelectedEvent():void { - if (currentState == "selected") { - dispatchEvent(new UserItemSelectedEvent(data as UserVM)); - } - } - override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { wrapperGroup.padding = getStyle("padding"); wrapperGroup.gap = getStyle("padding") / 4; -- GitLab