From 4bad8585e51a855aa16a090154ae62f35a1ab772 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Wed, 26 Aug 2020 14:24:20 -0600 Subject: [PATCH 1/3] add null check to popup handler method --- .../UIDrivers/Essentials/EssentialsHeaderDriver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PepperDashEssentials/UIDrivers/Essentials/EssentialsHeaderDriver.cs b/PepperDashEssentials/UIDrivers/Essentials/EssentialsHeaderDriver.cs index 68d4cbcb..ccaedd9c 100644 --- a/PepperDashEssentials/UIDrivers/Essentials/EssentialsHeaderDriver.cs +++ b/PepperDashEssentials/UIDrivers/Essentials/EssentialsHeaderDriver.cs @@ -349,7 +349,7 @@ namespace PepperDash.Essentials // Check if the popup interlock is shown, and if one of the header popups is current, then show the carets subpage if (e.IsShown) { - if (e.NewJoin == Parent.EnvironmentDriver.BackgroundSubpageJoin) + if (Parent.EnvironmentDriver != null && e.NewJoin == Parent.EnvironmentDriver.BackgroundSubpageJoin) headerPopupShown = true; else if (e.NewJoin == UIBoolJoin.HeaderActiveCallsListVisible) headerPopupShown = true; From 5938869e7af22d2e511052e177eff809f029b175 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Wed, 26 Aug 2020 14:26:59 -0600 Subject: [PATCH 2/3] fix show & hide methods --- .../UIDrivers/ScreenSaverController.cs | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/PepperDashEssentials/UIDrivers/ScreenSaverController.cs b/PepperDashEssentials/UIDrivers/ScreenSaverController.cs index 1e3f6d22..55d9ac2b 100644 --- a/PepperDashEssentials/UIDrivers/ScreenSaverController.cs +++ b/PepperDashEssentials/UIDrivers/ScreenSaverController.cs @@ -18,7 +18,7 @@ namespace PepperDash.Essentials /// /// The parent driver for this /// - EssentialsPanelMainInterfaceDriver Parent; + private readonly EssentialsPanelMainInterfaceDriver _parent; CTimer PositionTimer; @@ -32,34 +32,38 @@ namespace PepperDash.Essentials public ScreenSaverController(EssentialsPanelMainInterfaceDriver parent, CrestronTouchpanelPropertiesConfig config) : base(parent.TriList) { - Parent = parent; + _parent = parent; PositionTimeoutMs = config.ScreenSaverMovePositionIntervalMs; - TriList.SetSigFalseAction(UIBoolJoin.MCScreenSaverClosePress, () => this.Hide()); + TriList.SetSigFalseAction(UIBoolJoin.MCScreenSaverClosePress, Hide); } public override void Show() { - TriList.SetBool(UIBoolJoin.MCScreenSaverVisible, true); - Parent.AvDriver.PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.MCScreenSaverVisible); - //TriList.SetBool(UIBoolJoin.MCScreenSaverVisible, true); + _parent.AvDriver.PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.MCScreenSaverVisible); CurrentPositionIndex = 0; SetCurrentPosition(); + StartPositionTimer(); + + base.Show(); + } + + public override void Hide() + { + PositionTimer.Stop(); + PositionTimer.Dispose(); + PositionTimer = null; ClearAllPositions(); - TriList.SetBool(UIBoolJoin.MCScreenSaverVisible, false); - Parent.AvDriver.PopupInterlock.HideAndClear(); - //TriList.SetBool(UIBoolJoin.MCScreenSaverVisible, false); + _parent.AvDriver.PopupInterlock.HideAndClear(); base.Hide(); } - - void StartPositionTimer() { if (PositionTimer == null) From 436db82006cd564cf807a15b1637e98ddfa30cf1 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Wed, 26 Aug 2020 14:49:11 -0600 Subject: [PATCH 3/3] fix weird merge conflicts --- .../UIDrivers/ScreenSaverController.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/PepperDashEssentials/UIDrivers/ScreenSaverController.cs b/PepperDashEssentials/UIDrivers/ScreenSaverController.cs index 55d9ac2b..9f973113 100644 --- a/PepperDashEssentials/UIDrivers/ScreenSaverController.cs +++ b/PepperDashEssentials/UIDrivers/ScreenSaverController.cs @@ -36,8 +36,13 @@ namespace PepperDash.Essentials PositionTimeoutMs = config.ScreenSaverMovePositionIntervalMs; - TriList.SetSigFalseAction(UIBoolJoin.MCScreenSaverClosePress, Hide); + PositionJoins = new List() { UIBoolJoin.MCScreenSaverPosition1Visible, UIBoolJoin.MCScreenSaverPosition2Visible, UIBoolJoin.MCScreenSaverPosition3Visible, UIBoolJoin.MCScreenSaverPosition4Visible }; + var cmdName = String.Format("shwscrsvr-{0}", config.IpId); + + CrestronConsole.AddNewConsoleCommand((o) => Show(), cmdName, "Shows Panel Screensaver", ConsoleAccessLevelEnum.AccessOperator); + + TriList.SetSigFalseAction(UIBoolJoin.MCScreenSaverClosePress, Hide); } public override void Show() @@ -53,9 +58,12 @@ namespace PepperDash.Essentials public override void Hide() { - PositionTimer.Stop(); - PositionTimer.Dispose(); - PositionTimer = null; + if (PositionTimer != null) + { + PositionTimer.Stop(); + PositionTimer.Dispose(); + PositionTimer = null; + } ClearAllPositions();