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