From f37d1e18b252af46566e574d9b14e52fe509467e Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Fri, 13 Oct 2017 16:09:22 -0600 Subject: [PATCH] fixes ecs-521 ecs-522 ecs-526 --- .../UI/JoinConstants/UIBoolJoin.cs | 4 +- .../UI/JoinConstants/UIStringlJoin.cs | 2 +- ...entialsHuddleVtc1PanelAvFunctionsDriver.cs | 56 ++++++++++++++++--- .../VC/EssentialsVideoCodecUiDriver.cs | 38 +++++++------ 4 files changed, 72 insertions(+), 28 deletions(-) diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs index 387ceb84..376e2888 100644 --- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs +++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs @@ -447,11 +447,11 @@ namespace PepperDash.Essentials /// /// 15024 /// - public const uint HeaderCallStatusRightPositionVisible = 15024; + public const uint HeaderCallStatusLeftPositionVisible = 15024; /// /// 15025 /// - public const uint HeaderCallStatusLeftPositionVisible = 15025; + public const uint HeaderCallStatusRightPositionVisible = 15025; /// /// 15026 /// diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs index d4f16a2b..2c7305dd 100644 --- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs +++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs @@ -162,7 +162,7 @@ namespace PepperDash.Essentials /// /// 3916 The "active call" label /// - public const uint HeaderCallLabel = 3916; + public const uint HeaderCallStatusLabel = 3916; /// /// 3922 diff --git a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs index f82c117f..f36b7692 100644 --- a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs +++ b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs @@ -63,10 +63,9 @@ namespace PepperDash.Essentials BoolInputSig ShareButtonSig; BoolInputSig EndMeetingButtonSig; - public HeaderListButton HeaderCallButton { get; private set; } - public HeaderListButton HeaderGearButton { get; private set; } + HeaderListButton HeaderCallButton; + HeaderListButton HeaderGearButton; - StringFeedback HeaderCallLabelTextFeedback { get; private set; } /// /// The parent driver for this @@ -305,6 +304,9 @@ namespace PepperDash.Essentials (CurrentRoom.DefaultDisplay as IPower).PowerToggle(); }); + TriList.SetSigFalseAction(UIBoolJoin.HeaderCallStatusButtonPress, () => + PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HeaderActiveCallsListVisible)); + SetupNextMeetingTimer(); base.Show(); @@ -964,11 +966,52 @@ namespace PepperDash.Essentials blankBut.OutputSig.SetSigFalseAction(() => { }); } - // Call Status Label/Button + // Set Call Status Subpage Position - //HeaderCallLabel = new S + if (nextIndex == 1) + { + // Set to right position + TriList.SetBool(UIBoolJoin.HeaderCallStatusLeftPositionVisible, false); + TriList.SetBool(UIBoolJoin.HeaderCallStatusRightPositionVisible, true); + } + else if (nextIndex == 0) + { + // Set to left position + TriList.SetBool(UIBoolJoin.HeaderCallStatusLeftPositionVisible, true); + TriList.SetBool(UIBoolJoin.HeaderCallStatusRightPositionVisible, false); + } + } + /// + /// Evaluates the call status and sets the icon mode and text label + /// + public void ComputeHeaderCallStatus(VideoCodecBase codec) + { + // Set mode of header button + if (!codec.IsInCall) + { + HeaderCallButton.SetIcon(HeaderListButton.OnHook); + } + else if (codec.ActiveCalls.Any(c => c.Type == eCodecCallType.Video)) + HeaderCallButton.SetIcon(HeaderListButton.Camera); + //TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 2); + else + HeaderCallButton.SetIcon(HeaderListButton.Phone); + //TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 1); + + // Set the call status text + if (codec.ActiveCalls.Count > 0) + { + if (codec.ActiveCalls.Count == 1) + TriList.SetString(UIStringJoin.HeaderCallStatusLabel, "1 Active Call"); + else if (codec.ActiveCalls.Count > 1) + TriList.SetString(UIStringJoin.HeaderCallStatusLabel, string.Format("{0} Active Calls", codec.ActiveCalls.Count)); + } + else + TriList.SetString(UIStringJoin.HeaderCallStatusLabel, "No Active Calls"); + } + /// /// /// @@ -1255,8 +1298,7 @@ namespace PepperDash.Essentials JoinedSigInterlock PopupInterlock { get; } void ShowNotificationRibbon(string message, int timeout); void HideNotificationRibbon(); - HeaderListButton HeaderGearButton { get; } - HeaderListButton HeaderCallButton { get; } + void ComputeHeaderCallStatus(VideoCodecBase codec); SubpageReferenceList MeetingOrContactMethodModalSrl { get; } } } diff --git a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs index 283b3764..0b9e72e4 100644 --- a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs +++ b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs @@ -180,6 +180,8 @@ namespace PepperDash.Essentials.UIDrivers.VC { TriList.SetString(UIStringJoin.RoomPhoneText, Codec.CodecInfo.PhoneNumber); TriList.SetString(UIStringJoin.RoomSipText, Codec.CodecInfo.SipUri); + + Parent.ComputeHeaderCallStatus(Codec); } /// @@ -245,16 +247,8 @@ namespace PepperDash.Essentials.UIDrivers.VC StagingBarsInterlock.ShowInterlocked(Codec.IsInCall ? UIBoolJoin.VCStagingActivePopoverVisible : UIBoolJoin.VCStagingInactivePopoverVisible); - // Set mode of header button - if (!Codec.IsInCall) - Parent.HeaderCallButton.SetIcon(HeaderListButton.OnHook); - //TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 0); - else if (Codec.ActiveCalls.Any(c => c.Type == eCodecCallType.Video)) - Parent.HeaderCallButton.SetIcon(HeaderListButton.Camera); - //TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 2); - else - Parent.HeaderCallButton.SetIcon(HeaderListButton.Phone); - //TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 1); + + Parent.ComputeHeaderCallStatus(Codec); // Update list of calls UpdateCallsHeaderList(call); @@ -697,7 +691,7 @@ namespace PepperDash.Essentials.UIDrivers.VC { var kb = Parent.Keyboard; kb.KeyPress += new EventHandler(Keyboard_KeyPress); - kb.HideAction = this.DetachKeyboard; + kb.HideAction = this.DetachDialKeyboard; kb.GoButtonText = "Connect"; kb.GoButtonVisible = true; DialStringKeypadCheckEnables(); @@ -706,8 +700,8 @@ namespace PepperDash.Essentials.UIDrivers.VC else if(VCControlsInterlock.CurrentJoin == UIBoolJoin.VCDirectoryVisible) { var kb = Parent.Keyboard; - kb.KeyPress += Keyboard_KeyPress; - kb.HideAction = this.DetachKeyboard; + kb.KeyPress += new EventHandler(Search_KeyPress); + kb.HideAction = this.DetachSearchKeyboard; kb.GoButtonText = "Search"; kb.GoButtonVisible = true; SearchStringKeypadCheckEnables(); @@ -715,6 +709,7 @@ namespace PepperDash.Essentials.UIDrivers.VC } } + /// /// /// @@ -739,8 +734,12 @@ namespace PepperDash.Essentials.UIDrivers.VC } DialStringFeedback.FireUpdate(); DialStringKeypadCheckEnables(); - } - else if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCDirectoryVisible) + } + } + + void Search_KeyPress(object sender, KeyboardControllerPressEventArgs e) + { + if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCDirectoryVisible) { if (e.Text != null) SearchStringBuilder.Append(e.Text); @@ -759,15 +758,18 @@ namespace PepperDash.Essentials.UIDrivers.VC SearchStringFeedback.FireUpdate(); SearchStringKeypadCheckEnables(); } - - } - void DetachKeyboard() + void DetachDialKeyboard() { Parent.Keyboard.KeyPress -= Keyboard_KeyPress; } + void DetachSearchKeyboard() + { + Parent.Keyboard.KeyPress -= Search_KeyPress; + } + /// /// Shows the camera controls subpage ///