diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs index 89aa0372..bc8bc7d7 100644 --- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs +++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs @@ -86,7 +86,7 @@ namespace PepperDash.Essentials /// /// 1201 /// - public const uint VCKeypadVisible = 1201; + public const uint VCKeypadWithFavoritesVisible = 1201; /// /// 1202 /// @@ -95,6 +95,10 @@ namespace PepperDash.Essentials /// /// public const uint VCStagingActivePopoverVisible = 1203; + /// + /// + /// + public const uint VCKeypadVisible = 1204; /// /// 1205 /// diff --git a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs index ebca3a35..c83b1e02 100644 --- a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs +++ b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs @@ -71,6 +71,8 @@ namespace PepperDash.Essentials.UIDrivers.VC eKeypadMode KeypadMode; + bool CodecHasFavorites; + /// /// /// @@ -87,6 +89,7 @@ namespace PepperDash.Essentials.UIDrivers.VC SetupDialKeypad(); ActiveCallsSRL = new SubpageReferenceList(TriList, UISmartObjectJoin.CodecActiveCallsHeaderList, 3, 3, 3); SetupRecentCallsList(); + SetupFavorites(); codec.CallStatusChange += new EventHandler(Codec_CallStatusChange); @@ -100,7 +103,10 @@ namespace PepperDash.Essentials.UIDrivers.VC LocalPrivacyIsMuted = new BoolFeedback(() => false); VCControlsInterlock = new JoinedSigInterlock(triList); - VCControlsInterlock.SetButDontShow(UIBoolJoin.VCKeypadVisible); + if(CodecHasFavorites) + VCControlsInterlock.SetButDontShow(UIBoolJoin.VCKeypadWithFavoritesVisible); + else + VCControlsInterlock.SetButDontShow(UIBoolJoin.VCKeypadVisible); StagingBarsInterlock = new JoinedSigInterlock(triList); StagingBarsInterlock.SetButDontShow(UIBoolJoin.VCStagingInactivePopoverVisible); @@ -156,7 +162,7 @@ namespace PepperDash.Essentials.UIDrivers.VC KeypadMode = eKeypadMode.DTMF; DialStringBuilder.Remove(0, DialStringBuilder.Length); DialStringFeedback.FireUpdate(); - TriList.SetBool(UIBoolJoin.VCKeypadBackspaceVisible, false); + TriList.SetBool(UIBoolJoin.VCKeypadVisible, false); Parent.ShowNotificationRibbon("Connected", 2000); StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible); @@ -175,6 +181,7 @@ namespace PepperDash.Essentials.UIDrivers.VC if (!Codec.IsInCall) { KeypadMode = eKeypadMode.Dial; + ShowKeypad(); DialStringBuilder.Remove(0, DialStringBuilder.Length); DialStringFeedback.FireUpdate(); Parent.ShowNotificationRibbon("Disonnected", 2000); @@ -382,6 +389,38 @@ namespace PepperDash.Essentials.UIDrivers.VC } } + /// + /// + /// + void SetupFavorites() + { + var c = Codec as IHasCallFavorites; + if (c != null && c.CallFavorites != null) + { + CodecHasFavorites = true; + var favs = c.CallFavorites.Favorites; + for (uint i = 0; i <= 3; i++) + { + if (i < favs.Count) + { + var fav = favs[(int)i]; + TriList.SetString(1211 + i, fav.Name); + TriList.SetBool(1221 + i, true); + TriList.SetSigFalseAction(1211 + i, () => + { + Codec.Dial(fav.Number); + }); + } + else + TriList.SetBool(1221 + i, false); + + } + } + } + + /// + /// + /// void SetupDirectoryList() { var codec = Codec as IHasDirectory; @@ -456,7 +495,10 @@ namespace PepperDash.Essentials.UIDrivers.VC void ShowKeypad() { - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible); + if(CodecHasFavorites) + VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadWithFavoritesVisible); + else + VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible); StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); } diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz index e558124b..2dafd7e0 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 83fd5582..951fd7da 100644 Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ