diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
index ab33eebe..977095a5 100644
--- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
+++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
@@ -45,6 +45,10 @@ namespace PepperDash.Essentials
/// 1005
///
public const uint CallSharedSourceInfoEnable = 1005;
+ ///
+ /// 1006
+ ///
+ public const uint CallEndAllConfirmVisible = 1006;
@@ -365,27 +369,28 @@ namespace PepperDash.Essentials
/// 3891
///
public const uint VolumeDefaultPress = 3891;
+ ///
+ /// 3951
+ ///
+ /// 3952
+ ///
+ public const uint HeaderIcon2Press = 3952;
+ ///
+ /// 3953
+ ///
+ public const uint HeaderIcon3Press = 3953;
+ ///
+ /// 3954
+ ///
+ public const uint HeaderIcon4Press = 3954;
+ ///
+ /// 3955
+ ///
+ public const uint HeaderIcon5Press = 3955;
- ///
- /// 3991
- ///
- public const uint HeaderIcon1Press = 3991;
- ///
- /// 3992
- ///
- public const uint HeaderIcon2Press = 3992;
- ///
- /// 3993
- ///
- public const uint HeaderIcon3Press = 3993;
- ///
- /// 3994
- ///
- public const uint HeaderIcon4Press = 3994;
- ///
- /// 3995
- ///
- public const uint HeaderIcon5Press = 3995;
///
/// 3999
///
@@ -457,6 +462,10 @@ namespace PepperDash.Essentials
/// 15018 The Header with dynamic buttons
///
public const uint TopBarHabaneroDynamicVisible = 15018;
+ ///
+ /// 15019 Shown when system is starting and not ready for use
+ ///
+ public const uint SystemInitializingVisible = 15019;
///
/// 15020
///
@@ -560,7 +569,7 @@ namespace PepperDash.Essentials
///
/// 15047 The "Join" button on the next meeting ribbon
///
- public const uint NextMeetingRibbonJoinPress = 15047;
+ public const uint NextMeetingJoinPress = 15047;
///
/// 15048 Dismisses the ribbon
///
diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
index ddbc67cf..208c732b 100644
--- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
+++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
@@ -168,7 +168,10 @@ namespace PepperDash.Essentials
/// 3916 The "active call" label
///
public const uint HeaderCallStatusLabel = 3916;
-
+ ///
+ /// 3919 Mesage on init page
+ ///
+ public const uint SystemInitializingMessage = 3919;
///
/// 3922
///
@@ -182,6 +185,27 @@ namespace PepperDash.Essentials
///
public const uint HelpPageCallButtonText = 3924;
+ ///
+ /// 3951
+ ///
+ public const uint HeaderButtonIcon1 = 3951;
+ ///
+ /// 3952
+ ///
+ public const uint HeaderButtonIcon2 = 3952;
+ ///
+ /// 3953
+ ///
+ public const uint HeaderButtonIcon3 = 3953;
+ ///
+ /// 3954
+ ///
+ public const uint HeaderButtonIcon4 = 3954;
+ ///
+ /// 3955
+ ///
+ public const uint HeaderButtonIcon5 = 3955;
+
///
/// 3961 Name of source on display 1
///
@@ -202,23 +226,23 @@ namespace PepperDash.Essentials
///
/// 3966
///
- public const uint NextMeetingRibbonStartText = 3966;
+ public const uint NextMeetingStartTimeText = 3966;
///
/// 3967
///
- public const uint NextMeetingRibbonEndText = 3967;
+ public const uint NextMeetingEndTimeText = 3967;
///
/// 3968
///
- public const uint NextMeetingRibbonTitleText = 3968;
+ public const uint NextMeetingTitleText = 3968;
///
/// 3969
///
- public const uint NextMettingRibbonNameText = 3969;
+ public const uint NextMeetingNameText = 3969;
///
/// 3970
///
- public const uint NextMeetingRibbonButtonLabel = 3970;
+ public const uint NextMeetingButtonLabel = 3970;
///
/// 3971
///
@@ -227,37 +251,19 @@ namespace PepperDash.Essentials
/// 3972
///
public const uint NextMeetingFollowingMeetingText = 3972;
-
- ///
- /// 3991
- ///
- public const uint HeaderButtonIcon1 = 3991;
- ///
- /// 3992
- ///
- public const uint HeaderButtonIcon2 = 3992;
- ///
- /// 3993
- ///
- public const uint HeaderButtonIcon3 = 3993;
- ///
- /// 3994
- ///
- public const uint HeaderButtonIcon4 = 3994;
- ///
- /// 3995
- ///
- public const uint HeaderButtonIcon5 = 3995;
-
///
- /// 3996
+ /// 3976
///
- public const uint MeetingsOrContactMethodListIcon = 3996;
+ public const uint MeetingsOrContactMethodListIcon = 3976;
+ ///
+ /// 3977
+ ///
+ public const uint MeetingsOrContactMethodListTitleText = 3977;
- ///
- /// 3997
- ///
- public const uint MeetingsOrContactMethodListTitleText = 3997;
-
+ // ------------------------------------
+ //
+ // MODAL JOINS 3991 - 3999
+ //
+ // ------------------------------------
}
}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
index b37d306a..56a64fed 100644
--- a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
+++ b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
@@ -184,7 +184,11 @@ namespace PepperDash.Essentials
/// Tracks whether the user dismissed the meeting popup, while the system was on. Always false when
/// system is off.
///
- DateTime NextMeetingWarningDismissedTime;
+ bool NextMeetingWarningWasDismissed;
+ ///
+ /// Tracks the last meeting that was cancelled
+ ///
+ Meeting LastMeetingDismissed;
@@ -326,6 +330,7 @@ namespace PepperDash.Essentials
///
void ShowActiveCallsList()
{
+ TriList.SetBool(UIBoolJoin.CallEndAllConfirmVisible, true);
if(PopupInterlock.CurrentJoin == UIBoolJoin.HeaderActiveCallsListVisible)
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HeaderActiveCallsListVisible);
else
@@ -417,59 +422,78 @@ namespace PepperDash.Essentials
var ss = CurrentRoom.ScheduleSource;
if (ss != null)
{
- NextMeetingTimer = new CTimer(o =>
- {
- if (CurrentRoom.OnFeedback.BoolValue)
- return;
- // Every 60 seconds, check meetings list for the closest, joinable meeting
- var meetings = ss.CodecSchedule.Meetings;
- if (meetings.Count > 0)
- {
- var meeting = meetings.FirstOrDefault(m => m.Joinable);
-
- //var meeting = meetings.Aggregate((m1, m2) => m1.StartTime < m2.StartTime ? m1 : m2);
-
-
-#warning PICK UP CALENDAR TIME HERE
- if (meeting != null)// && NextMeetingWarningDismissedTime != null
- //&& (DateTime.Now - NextMeetingWarningDismissedTime).Minutes > 5) // && meeting.Joinable)
- {
- TriList.SetString(UIStringJoin.NextMeetingRibbonStartText, meeting.StartTime.ToShortTimeString());
- TriList.SetString(UIStringJoin.NextMeetingRibbonEndText, meeting.EndTime.ToShortTimeString());
- TriList.SetString(UIStringJoin.NextMeetingRibbonTitleText, meeting.Title);
- TriList.SetString(UIStringJoin.NextMettingRibbonNameText, meeting.Organizer);
- TriList.SetString(UIStringJoin.NextMeetingRibbonButtonLabel, "Join");
- TriList.SetSigFalseAction(UIBoolJoin.NextMeetingRibbonJoinPress, () =>
- {
- HideNextMeetingPopup();
- RoomOnAndDialMeeting(meeting);
- });
- TriList.SetString(UIStringJoin.NextMeetingSecondaryButtonLabel, "Show Schedule");
- TriList.SetSigFalseAction(UIBoolJoin.CalendarHeaderButtonPress, () =>
- {
- HideNextMeetingPopup();
- CalendarPress();
- });
- if (meetings.Count > 1)
- {
- TriList.SetString(UIStringJoin.NextMeetingFollowingMeetingText,
- meetings[1].StartTime.ToShortTimeString());
- }
-
- ShowNextMeetingPopup();
- }
- }
- }, null, 0, 60000);
+ NextMeetingTimer = new CTimer(o => ShowNextMeetingCallback(), null, 0, 60000);
}
}
///
///
///
- void ShowNextMeetingPopup()
+ void ShowNextMeetingCallback()
{
- TriList.SetSigFalseAction(UIBoolJoin.NextMeetingModalClosePress, HideNextMeetingPopup);
- TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, true);
+ // Every 60 seconds, check meetings list for the closest, joinable meeting
+ var ss = CurrentRoom.ScheduleSource;
+ var meetings = ss.CodecSchedule.Meetings;
+ Debug.Console(0, "***** Checking meetings *****");
+ foreach (var m in meetings)
+ Debug.Console(0, "****** {0} {1} ******", m.StartTime.ToShortTimeString(), m.Joinable);
+
+ if (meetings.Count > 0)
+ {
+ var meeting = meetings.FirstOrDefault(m => m.Joinable);
+
+ // If the room is off pester the user
+ // If the room is on, and the meeting is joinable
+ // and the LastMeetingDismissed != this meeting
+
+ if (CurrentRoom.OnFeedback.BoolValue
+ && LastMeetingDismissed == meeting)
+ //|| (LastMeetingDismissed != null && !LastMeetingDismissed.Joinable)))
+ {
+ Debug.Console(0, "****** Ignoring previously cancelled meeting warning ******");
+ return;
+ }
+
+ LastMeetingDismissed = null;
+ if (meeting != null)
+ {
+ Debug.Console(0, "***** First joinable meeting: {0} {1}", meeting.StartTime.ToShortTimeString(), meeting.Joinable);
+ TriList.SetString(UIStringJoin.MeetingsOrContactMethodListTitleText, "Upcoming meeting");
+ TriList.SetString(UIStringJoin.NextMeetingStartTimeText, meeting.StartTime.ToShortTimeString());
+ TriList.SetString(UIStringJoin.NextMeetingEndTimeText, meeting.EndTime.ToShortTimeString());
+ TriList.SetString(UIStringJoin.NextMeetingTitleText, meeting.Title);
+ TriList.SetString(UIStringJoin.NextMeetingNameText, meeting.Organizer);
+ TriList.SetString(UIStringJoin.NextMeetingButtonLabel, "Join");
+ TriList.SetSigFalseAction(UIBoolJoin.NextMeetingJoinPress, () =>
+ {
+ HideNextMeetingPopup();
+ RoomOnAndDialMeeting(meeting);
+ });
+ TriList.SetString(UIStringJoin.NextMeetingSecondaryButtonLabel, "Show Schedule");
+ TriList.SetSigFalseAction(UIBoolJoin.CalendarHeaderButtonPress, () =>
+ {
+ HideNextMeetingPopup();
+ CalendarPress();
+ });
+ var indexOfNext = meetings.IndexOf(meeting) + 1;
+
+ // indexOf = 3, 4 meetings :
+ if (indexOfNext < meetings.Count)
+ {
+ TriList.SetString(UIStringJoin.NextMeetingFollowingMeetingText,
+ meetings[indexOfNext].StartTime.ToShortTimeString());
+ }
+ TriList.SetSigFalseAction(UIBoolJoin.NextMeetingModalClosePress, () =>
+ {
+ // Mark the meeting to not re-harass the user
+ if(CurrentRoom.OnFeedback.BoolValue)
+ LastMeetingDismissed = meeting;
+ HideNextMeetingPopup();
+ });
+
+ TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, true);
+ }
+ }
}
///
@@ -478,6 +502,7 @@ namespace PepperDash.Essentials
void HideNextMeetingPopup()
{
TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, false);
+
}
///
@@ -1007,7 +1032,7 @@ namespace PepperDash.Essentials
// //TriList.StringInput[UIStringJoin.HelpMessage].StringValue = message;
// PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HelpPageVisible);
//});
- uint nextJoin = 3993;
+ uint nextJoin = 3953;
// Lights button
//if (WHATEVER MAKES LIGHTS WORK)
@@ -1041,7 +1066,7 @@ namespace PepperDash.Essentials
nextJoin--;
// blank any that remain
- for (var i = nextJoin; i > 3990; i--)
+ for (var i = nextJoin; i > 3950; i--)
{
//var blankBut = new HeaderListButton(HeaderButtonsList, i);
//blankBut.ClearIcon();
@@ -1053,13 +1078,13 @@ namespace PepperDash.Essentials
// Set Call Status Subpage Position
- if (nextJoin == 1)
+ if (nextJoin == 3951)
{
// Set to right position
TriList.SetBool(UIBoolJoin.HeaderCallStatusLeftPositionVisible, false);
TriList.SetBool(UIBoolJoin.HeaderCallStatusRightPositionVisible, true);
}
- else if (nextJoin == 0)
+ else if (nextJoin == 3950)
{
// Set to left position
TriList.SetBool(UIBoolJoin.HeaderCallStatusLeftPositionVisible, true);
@@ -1080,11 +1105,11 @@ namespace PepperDash.Essentials
//HeaderCallButton.SetIcon(HeaderListButton.OnHook);
}
else if (codec.ActiveCalls.Any(c => c.Type == eCodecCallType.Video))
- HeaderCallButtonIconSig.StringValue = "Camera";
+ HeaderCallButtonIconSig.StringValue = "Misc-06_Dark";
//HeaderCallButton.SetIcon(HeaderListButton.Camera);
//TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 2);
else
- HeaderCallButtonIconSig.StringValue = "Phone";
+ HeaderCallButtonIconSig.StringValue = "Misc-09_Dark";
//HeaderCallButton.SetIcon(HeaderListButton.Phone);
//TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 1);
@@ -1180,6 +1205,8 @@ namespace PepperDash.Essentials
SetActivityFooterFeedbacks();
TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false;
+ // Clear this so that the pesky meeting warning can resurface every minute when off
+ LastMeetingDismissed = null;
}
}
diff --git a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
index ce822ec1..be935a6d 100644
--- a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
+++ b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
@@ -829,7 +829,6 @@ namespace PepperDash.Essentials.UIDrivers.VC
else if (e.SpecialKey == KeyboardSpecialKey.GoButton)
{
ConnectPress();
- Parent.Keyboard.Hide();
}
}
DialStringFeedback.FireUpdate();
@@ -935,6 +934,8 @@ namespace PepperDash.Essentials.UIDrivers.VC
///
void ConnectPress()
{
+ if (Parent.Keyboard != null)
+ Parent.Keyboard.Hide();
Codec.Dial(DialStringBuilder.ToString());
}
@@ -957,6 +958,7 @@ namespace PepperDash.Essentials.UIDrivers.VC
DialStringFeedback.FireUpdate();
// no delete key in this mode!
}
+ DialStringTextCheckEnables();
}
///
diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz
index 394f956d..0d1bf0b3 100644
Binary files a/Release Package/PepperDashEssentials.cpz and b/Release Package/PepperDashEssentials.cpz differ
diff --git a/Release Package/PepperDashEssentials.dll b/Release Package/PepperDashEssentials.dll
index e35db778..6fb4054d 100644
Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ