mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-13 03:35:00 +00:00
Added Directory Search, bug fixes and updates to recents and meeting list. Made Meeting list modal/srl reusable for directory dial contact method modal.
This commit is contained in:
@@ -211,12 +211,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
|
|
||||||
public class Call
|
public class Call
|
||||||
{
|
{
|
||||||
|
public string id { get; set; }
|
||||||
public Number Number { get; set; }
|
public Number Number { get; set; }
|
||||||
public Protocol Protocol { get; set; }
|
public Protocol Protocol { get; set; }
|
||||||
public CallRate CallRate { get; set; }
|
public CallRate CallRate { get; set; }
|
||||||
public CallType CallType { get; set; }
|
public CallType CallType { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class Calls
|
||||||
|
{
|
||||||
|
public List<Call> Call {get; set;}
|
||||||
|
}
|
||||||
|
|
||||||
public class ConnectMode
|
public class ConnectMode
|
||||||
{
|
{
|
||||||
public string Value { get; set; }
|
public string Value { get; set; }
|
||||||
@@ -224,12 +230,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
|
|
||||||
public class DialInfo
|
public class DialInfo
|
||||||
{
|
{
|
||||||
public List<Call> Calls { get; set; }
|
public Calls Calls { get; set; }
|
||||||
public ConnectMode ConnectMode { get; set; }
|
public ConnectMode ConnectMode { get; set; }
|
||||||
|
|
||||||
public DialInfo()
|
public DialInfo()
|
||||||
{
|
{
|
||||||
Calls = new List<Call>();
|
Calls = new Calls();
|
||||||
|
ConnectMode = new ConnectMode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,15 +326,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
if (b.DialInfo.ConnectMode.Value.ToLower() == "obtp" || b.DialInfo.ConnectMode.Value.ToLower() == "manual")
|
if (b.DialInfo.ConnectMode.Value.ToLower() == "obtp" || b.DialInfo.ConnectMode.Value.ToLower() == "manual")
|
||||||
meeting.IsOneButtonToPushMeeting = true;
|
meeting.IsOneButtonToPushMeeting = true;
|
||||||
|
|
||||||
foreach (Call c in b.DialInfo.Calls)
|
if (b.DialInfo.Calls.Call != null)
|
||||||
{
|
{
|
||||||
meeting.Calls.Add(new PepperDash.Essentials.Devices.Common.Codec.Call()
|
foreach (Call c in b.DialInfo.Calls.Call)
|
||||||
{
|
{
|
||||||
Number = c.Number.Value,
|
meeting.Calls.Add(new PepperDash.Essentials.Devices.Common.Codec.Call()
|
||||||
Protocol = c.Protocol.Value,
|
{
|
||||||
CallRate = c.CallRate.Value,
|
Number = c.Number.Value,
|
||||||
CallType = c.CallType.Value
|
Protocol = c.Protocol.Value,
|
||||||
});
|
CallRate = c.CallRate.Value,
|
||||||
|
CallType = c.CallType.Value
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ namespace PepperDash.Essentials.Room.Config
|
|||||||
PepperDash.Essentials.Devices.Common.VideoCodec.VideoCodecBase;
|
PepperDash.Essentials.Devices.Common.VideoCodec.VideoCodecBase;
|
||||||
|
|
||||||
var rm = new EssentialsHuddleVtc1Room(Key, Name, disp, codec, codec, props);
|
var rm = new EssentialsHuddleVtc1Room(Key, Name, disp, codec, codec, props);
|
||||||
|
// Add Occupancy object from config
|
||||||
|
#warning Add in occupancy object from confic if found and link up device to occupancy feedback
|
||||||
rm.LogoUrl = props.Logo.GetUrl();
|
rm.LogoUrl = props.Logo.GetUrl();
|
||||||
rm.SourceListKey = props.SourceListKey;
|
rm.SourceListKey = props.SourceListKey;
|
||||||
rm.DefaultSourceItem = props.DefaultSourceItem;
|
rm.DefaultSourceItem = props.DefaultSourceItem;
|
||||||
@@ -108,7 +110,7 @@ namespace PepperDash.Essentials.Room.Config
|
|||||||
public EssentialsHelpPropertiesConfig Help { get; set; }
|
public EssentialsHelpPropertiesConfig Help { get; set; }
|
||||||
public EssentialsOneButtonMeetingPropertiesConfig OneButtonMeeting { get; set; }
|
public EssentialsOneButtonMeetingPropertiesConfig OneButtonMeeting { get; set; }
|
||||||
public EssentialsRoomAddressPropertiesConfig Addresses { get; set; }
|
public EssentialsRoomAddressPropertiesConfig Addresses { get; set; }
|
||||||
public EssentialsRoomOccSensorConfig OccupancySensors { get; set; }
|
public EssentialsRoomOccSensorConfig Occupancy { get; set; }
|
||||||
public EssentialsLogoPropertiesConfig Logo { get; set; }
|
public EssentialsLogoPropertiesConfig Logo { get; set; }
|
||||||
public EssentialsRoomTechConfig Tech { get; set; }
|
public EssentialsRoomTechConfig Tech { get; set; }
|
||||||
public EssentialsRoomVolumesConfig Volumes { get; set; }
|
public EssentialsRoomVolumesConfig Volumes { get; set; }
|
||||||
@@ -173,8 +175,7 @@ namespace PepperDash.Essentials.Room.Config
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class EssentialsRoomOccSensorConfig
|
public class EssentialsRoomOccSensorConfig
|
||||||
{
|
{
|
||||||
public string Mode { get; set; }
|
public string DeviceKey { get; set; }
|
||||||
public List<string> Types { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class EssentialsRoomTechConfig
|
public class EssentialsRoomTechConfig
|
||||||
|
|||||||
@@ -234,13 +234,11 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
IsWarmingUpFeedback.FireUpdate();
|
IsWarmingUpFeedback.FireUpdate();
|
||||||
if (!IsWarmingUpFeedback.BoolValue)
|
if (!IsWarmingUpFeedback.BoolValue)
|
||||||
(DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume);
|
(CurrentVolumeControls as IBasicVolumeWithFeedback).SetVolume(DefaultVolume);
|
||||||
};
|
};
|
||||||
disp.IsCoolingDownFeedback.OutputChange += (o, a) =>
|
disp.IsCoolingDownFeedback.OutputChange += (o, a) =>
|
||||||
{
|
{
|
||||||
IsCoolingDownFeedback.FireUpdate();
|
IsCoolingDownFeedback.FireUpdate();
|
||||||
if (IsCoolingDownFeedback.BoolValue)
|
|
||||||
(DefaultDisplay as IBasicVolumeWithFeedback).SetVolume(DefaultVolume);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -190,17 +190,23 @@ namespace PepperDash.Essentials
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 1241 For touching the text area to bring up keyboard
|
/// 1241 For touching the text area to bring up keyboard
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const uint VCDirectoryTextEntryPress = 1241;
|
public const uint VCDirectorySearchTextPress = 1241;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 1242
|
/// 1242
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const uint VCStagingSelfViewLayoutPress = 1242;
|
public const uint VCStagingSelfViewLayoutPress = 1242;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 1243
|
/// 1243
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const uint VCDirectoryBackVisible = 1243;
|
public const uint VCDirectoryBackVisible = 1243;
|
||||||
|
/// <summary>
|
||||||
|
/// 1244
|
||||||
|
/// </summary>
|
||||||
|
public const uint VCDirectoryBackspacePress = 1244;
|
||||||
|
/// <summary>
|
||||||
|
/// 1245
|
||||||
|
/// </summary>
|
||||||
|
public const uint VCDirectoryBackspaceVisible = 1245;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 1251
|
/// 1251
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -215,23 +221,6 @@ namespace PepperDash.Essentials
|
|||||||
public const uint VCSelfViewPipTogglePress = 1253;
|
public const uint VCSelfViewPipTogglePress = 1253;
|
||||||
|
|
||||||
//******************************************************
|
//******************************************************
|
||||||
// Keyboard
|
|
||||||
/// <summary>
|
|
||||||
/// 2901
|
|
||||||
/// </summary>
|
|
||||||
public const uint KeyboardVisible = 2901;
|
|
||||||
/// <summary>
|
|
||||||
/// 2902
|
|
||||||
/// </summary>
|
|
||||||
public const uint KeyboardClosePress = 2902;
|
|
||||||
/// <summary>
|
|
||||||
/// 2903
|
|
||||||
/// </summary>
|
|
||||||
public const uint KeyboardButton1Press = 2903;
|
|
||||||
/// <summary>
|
|
||||||
/// 2904
|
|
||||||
/// </summary>
|
|
||||||
public const uint KeyboardButton2Press = 2904;
|
|
||||||
|
|
||||||
// Letter joins start at 2921;
|
// Letter joins start at 2921;
|
||||||
|
|
||||||
@@ -550,7 +539,7 @@ namespace PepperDash.Essentials
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 15046
|
/// 15046
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const uint MeetingsListVisible = 15046;
|
public const uint MeetingsOrContacMethodsListVisible = 15046;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 15047 The "Join" button on the next meeting ribbon
|
/// 15047 The "Join" button on the next meeting ribbon
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -18,7 +18,11 @@ namespace PepperDash.Essentials
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 1001
|
/// 1001
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const uint CodecAddressEntryText = 1001;
|
public const uint CodecAddressEntryText = 1001;
|
||||||
|
/// <summary>
|
||||||
|
/// 1002
|
||||||
|
/// </summary>
|
||||||
|
public const uint CodecDirectorySearchEntryText = 1002;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 1201 - 1230 range of joins for recents list
|
/// 1201 - 1230 range of joins for recents list
|
||||||
@@ -217,6 +221,17 @@ namespace PepperDash.Essentials
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 3972
|
/// 3972
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const uint NextMeetingFollowingMeetingText = 3972;
|
public const uint NextMeetingFollowingMeetingText = 3972;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 3996
|
||||||
|
/// </summary>
|
||||||
|
public const uint MeetingsOrContactMethodListIcon = 3996;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 3997
|
||||||
|
/// </summary>
|
||||||
|
public const uint MeetingsOrContactMethodListTitleText = 3997;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,7 +93,7 @@ namespace PepperDash.Essentials
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
SubpageReferenceList MeetingsSrl;
|
public SubpageReferenceList MeetingOrContactMethodModalSrl { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The list of buttons on the header. Managed with visibility only
|
/// The list of buttons on the header. Managed with visibility only
|
||||||
@@ -199,7 +199,7 @@ namespace PepperDash.Essentials
|
|||||||
ShareButtonSig = ActivityFooterSrl.BoolInputSig(1, 1);
|
ShareButtonSig = ActivityFooterSrl.BoolInputSig(1, 1);
|
||||||
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(3, 1);
|
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(3, 1);
|
||||||
|
|
||||||
MeetingsSrl = new SubpageReferenceList(TriList, UISmartObjectJoin.MeetingListSRL, 3, 3, 5);
|
MeetingOrContactMethodModalSrl = new SubpageReferenceList(TriList, UISmartObjectJoin.MeetingListSRL, 3, 3, 5);
|
||||||
|
|
||||||
|
|
||||||
// buttons are added in SetCurrentRoom
|
// buttons are added in SetCurrentRoom
|
||||||
@@ -454,7 +454,7 @@ namespace PepperDash.Essentials
|
|||||||
void CalendarPress()
|
void CalendarPress()
|
||||||
{
|
{
|
||||||
RefreshMeetingsList();
|
RefreshMeetingsList();
|
||||||
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.MeetingsListVisible);
|
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.MeetingsOrContacMethodsListVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -968,17 +968,21 @@ namespace PepperDash.Essentials
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void RefreshMeetingsList()
|
void RefreshMeetingsList()
|
||||||
{
|
{
|
||||||
|
TriList.SetString(UIStringJoin.MeetingsOrContactMethodListIcon, "Calendar");
|
||||||
|
TriList.SetString(UIStringJoin.MeetingsOrContactMethodListTitleText, "Today's Meetings");
|
||||||
|
|
||||||
ushort i = 0;
|
ushort i = 0;
|
||||||
foreach (var m in CurrentRoom.ScheduleSource.CodecSchedule.Meetings)
|
foreach (var m in CurrentRoom.ScheduleSource.CodecSchedule.Meetings)
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
MeetingsSrl.StringInputSig(i, 1).StringValue = m.StartTime.ToShortTimeString();
|
MeetingOrContactMethodModalSrl.StringInputSig(i, 1).StringValue = m.StartTime.ToShortTimeString();
|
||||||
MeetingsSrl.StringInputSig(i, 2).StringValue = m.EndTime.ToShortTimeString();
|
MeetingOrContactMethodModalSrl.StringInputSig(i, 2).StringValue = m.EndTime.ToShortTimeString();
|
||||||
MeetingsSrl.StringInputSig(i, 3).StringValue = m.Title;
|
MeetingOrContactMethodModalSrl.StringInputSig(i, 3).StringValue = m.Title;
|
||||||
MeetingsSrl.StringInputSig(i, 4).StringValue = "Join";
|
MeetingOrContactMethodModalSrl.StringInputSig(i, 4).StringValue = string.Format("<br>{0}",m.Organizer);
|
||||||
MeetingsSrl.BoolInputSig(i, 2).BoolValue = m.Joinable;
|
MeetingOrContactMethodModalSrl.StringInputSig(i, 5).StringValue = "Join";
|
||||||
|
MeetingOrContactMethodModalSrl.BoolInputSig(i, 2).BoolValue = m.Joinable;
|
||||||
var mm = m; // lambda scope
|
var mm = m; // lambda scope
|
||||||
MeetingsSrl.GetBoolFeedbackSig(i, 1).SetSigFalseAction(() =>
|
MeetingOrContactMethodModalSrl.GetBoolFeedbackSig(i, 1).SetSigFalseAction(() =>
|
||||||
{
|
{
|
||||||
PopupInterlock.Hide();
|
PopupInterlock.Hide();
|
||||||
var d = CurrentRoom.ScheduleSource as VideoCodecBase;
|
var d = CurrentRoom.ScheduleSource as VideoCodecBase;
|
||||||
@@ -986,7 +990,7 @@ namespace PepperDash.Essentials
|
|||||||
RoomOnAndDialMeeting(mm);
|
RoomOnAndDialMeeting(mm);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
MeetingsSrl.Count = i;
|
MeetingOrContactMethodModalSrl.Count = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1247,5 +1251,6 @@ namespace PepperDash.Essentials
|
|||||||
void HideNotificationRibbon();
|
void HideNotificationRibbon();
|
||||||
HeaderListButton HeaderGearButton { get; }
|
HeaderListButton HeaderGearButton { get; }
|
||||||
HeaderListButton HeaderCallButton { get; }
|
HeaderListButton HeaderCallButton { get; }
|
||||||
|
SubpageReferenceList MeetingOrContactMethodModalSrl { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,10 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
StringBuilder DialStringBuilder = new StringBuilder();
|
StringBuilder DialStringBuilder = new StringBuilder();
|
||||||
BoolFeedback DialStringBackspaceVisibleFeedback;
|
BoolFeedback DialStringBackspaceVisibleFeedback;
|
||||||
|
|
||||||
|
StringFeedback SearchStringFeedback;
|
||||||
|
StringBuilder SearchStringBuilder = new StringBuilder();
|
||||||
|
BoolFeedback SearchStringBackspaceVisibleFeedback;
|
||||||
|
|
||||||
ModalDialog IncomingCallModal;
|
ModalDialog IncomingCallModal;
|
||||||
|
|
||||||
eKeypadMode KeypadMode;
|
eKeypadMode KeypadMode;
|
||||||
@@ -134,6 +138,24 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
DialStringBackspaceVisibleFeedback
|
DialStringBackspaceVisibleFeedback
|
||||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VCKeypadBackspaceVisible]);
|
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VCKeypadBackspaceVisible]);
|
||||||
|
|
||||||
|
SearchStringFeedback = new StringFeedback(() =>
|
||||||
|
{
|
||||||
|
if (SearchStringBuilder.Length > 0)
|
||||||
|
{
|
||||||
|
Parent.Keyboard.EnableGoButton();
|
||||||
|
return SearchStringBuilder.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Parent.Keyboard.DisableGoButton();
|
||||||
|
return "Touch to Search";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
SearchStringFeedback.LinkInputSig(triList.StringInput[UIStringJoin.CodecDirectorySearchEntryText]);
|
||||||
|
|
||||||
|
SearchStringBackspaceVisibleFeedback = new BoolFeedback(() => SearchStringBuilder.Length > 0);
|
||||||
|
SearchStringBackspaceVisibleFeedback.LinkInputSig(triList.BooleanInput[UIBoolJoin.VCDirectoryBackspaceVisible]);
|
||||||
|
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.VCDirectoryBackPress, GetDirectoryParentFolderContents);
|
TriList.SetSigFalseAction(UIBoolJoin.VCDirectoryBackPress, GetDirectoryParentFolderContents);
|
||||||
|
|
||||||
DirectoryBackButtonVisibleFeedback = new BoolFeedback(() => CurrentDirectoryResult != (codec as IHasDirectory).DirectoryRoot);
|
DirectoryBackButtonVisibleFeedback = new BoolFeedback(() => CurrentDirectoryResult != (codec as IHasDirectory).DirectoryRoot);
|
||||||
@@ -142,6 +164,10 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
|
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.VCKeypadTextPress, RevealKeyboard);
|
TriList.SetSigFalseAction(UIBoolJoin.VCKeypadTextPress, RevealKeyboard);
|
||||||
|
|
||||||
|
TriList.SetSigFalseAction(UIBoolJoin.VCDirectorySearchTextPress, RevealKeyboard);
|
||||||
|
|
||||||
|
TriList.SetSigFalseAction(UIBoolJoin.VCDirectoryBackspacePress, SearchKeypadBackspacePress);
|
||||||
|
|
||||||
// Address and number
|
// Address and number
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -400,9 +426,9 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
|
|
||||||
string iconName = null;
|
string iconName = null;
|
||||||
if (c.OccurenceType == eCodecOccurrenceType.Received)
|
if (c.OccurenceType == eCodecOccurrenceType.Received)
|
||||||
iconName = "Left";
|
iconName = "Misc-18_Light";
|
||||||
else if (c.OccurenceType == eCodecOccurrenceType.Placed)
|
else if (c.OccurenceType == eCodecOccurrenceType.Placed)
|
||||||
iconName = "Right";
|
iconName = "Misc-17_Light";
|
||||||
else
|
else
|
||||||
iconName = "Help";
|
iconName = "Help";
|
||||||
RecentCallsList.SetItemIcon(i, iconName);
|
RecentCallsList.SetItemIcon(i, iconName);
|
||||||
@@ -522,7 +548,10 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
/// <param name="folderId"></param>
|
/// <param name="folderId"></param>
|
||||||
void GetDirectoryFolderContents(DirectoryFolder folder)
|
void GetDirectoryFolderContents(DirectoryFolder folder)
|
||||||
{
|
{
|
||||||
LastFolderRequestedParentFolderId = folder.ParentFolderId;
|
if (!string.IsNullOrEmpty(folder.ParentFolderId))
|
||||||
|
LastFolderRequestedParentFolderId = folder.ParentFolderId;
|
||||||
|
else
|
||||||
|
LastFolderRequestedParentFolderId = string.Empty;
|
||||||
|
|
||||||
(Codec as IHasDirectory).GetDirectoryFolderContents(folder.FolderId);
|
(Codec as IHasDirectory).GetDirectoryFolderContents(folder.FolderId);
|
||||||
}
|
}
|
||||||
@@ -567,16 +596,17 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
DirectoryList.SetItemMainText(i, r.Name);
|
DirectoryList.SetItemMainText(i, r.Name);
|
||||||
|
|
||||||
var dc = r as DirectoryContact;
|
var dc = r as DirectoryContact;
|
||||||
// if more than one contact method, pop up modal to choose
|
|
||||||
// otherwiese dial 0 entry
|
|
||||||
if (dc.ContactMethods.Count == 1)
|
|
||||||
{
|
|
||||||
DirectoryList.SetItemButtonAction(i, b => { if (!b) Codec.Dial(dc.ContactMethods[0].Number); });
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
DirectoryList.SetItemButtonAction(i, b =>
|
||||||
|
{
|
||||||
|
if (!b)
|
||||||
|
{
|
||||||
|
// Refresh the contact methods list
|
||||||
|
RefreshContactMethodsModalList(dc);
|
||||||
|
Parent.PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.MeetingsOrContacMethodsListVisible);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
else // is DirectoryFolder
|
else // is DirectoryFolder
|
||||||
{
|
{
|
||||||
@@ -597,6 +627,34 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
DirectoryList.Count = i;
|
DirectoryList.Count = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RefreshContactMethodsModalList(DirectoryContact contact)
|
||||||
|
{
|
||||||
|
TriList.SetString(UIStringJoin.MeetingsOrContactMethodListIcon, "Users");
|
||||||
|
TriList.SetString(UIStringJoin.MeetingsOrContactMethodListTitleText, "Contact Methods");
|
||||||
|
|
||||||
|
ushort i = 0;
|
||||||
|
foreach (var c in contact.ContactMethods)
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 1).StringValue = c.Device.ToString();
|
||||||
|
Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 2).StringValue = c.CallType.ToString();
|
||||||
|
Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 3).StringValue = c.Number;
|
||||||
|
Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 4).StringValue = "";
|
||||||
|
Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 5).StringValue = "Connect";
|
||||||
|
Parent.MeetingOrContactMethodModalSrl.BoolInputSig(i, 2).BoolValue = true;
|
||||||
|
var cc = c; // lambda scope
|
||||||
|
Parent.MeetingOrContactMethodModalSrl.GetBoolFeedbackSig(i, 1).SetSigFalseAction(() =>
|
||||||
|
{
|
||||||
|
Parent.PopupInterlock.Hide();
|
||||||
|
var codec = Codec as VideoCodecBase;
|
||||||
|
if (codec != null)
|
||||||
|
codec.Dial(c.Number);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Parent.MeetingOrContactMethodModalSrl.Count = i;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -624,7 +682,7 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void RevealKeyboard()
|
void RevealKeyboard()
|
||||||
{
|
{
|
||||||
if (KeypadMode == eKeypadMode.Dial)
|
if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCKeypadVisible && KeypadMode == eKeypadMode.Dial)
|
||||||
{
|
{
|
||||||
var kb = Parent.Keyboard;
|
var kb = Parent.Keyboard;
|
||||||
kb.KeyPress += new EventHandler<PepperDash.Essentials.Core.Touchpanels.Keyboards.KeyboardControllerPressEventArgs>(Keyboard_KeyPress);
|
kb.KeyPress += new EventHandler<PepperDash.Essentials.Core.Touchpanels.Keyboards.KeyboardControllerPressEventArgs>(Keyboard_KeyPress);
|
||||||
@@ -634,6 +692,16 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
DialStringKeypadCheckEnables();
|
DialStringKeypadCheckEnables();
|
||||||
kb.Show();
|
kb.Show();
|
||||||
}
|
}
|
||||||
|
else if(VCControlsInterlock.CurrentJoin == UIBoolJoin.VCDirectoryVisible)
|
||||||
|
{
|
||||||
|
var kb = Parent.Keyboard;
|
||||||
|
kb.KeyPress += Keyboard_KeyPress;
|
||||||
|
kb.HideAction = this.DetachKeyboard;
|
||||||
|
kb.GoButtonText = "Search";
|
||||||
|
kb.GoButtonVisible = true;
|
||||||
|
SearchStringKeypadCheckEnables();
|
||||||
|
kb.Show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -641,22 +709,47 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void Keyboard_KeyPress(object sender, PepperDash.Essentials.Core.Touchpanels.Keyboards.KeyboardControllerPressEventArgs e)
|
void Keyboard_KeyPress(object sender, PepperDash.Essentials.Core.Touchpanels.Keyboards.KeyboardControllerPressEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Text != null)
|
if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCKeypadVisible)
|
||||||
DialStringBuilder.Append(e.Text);
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (e.SpecialKey == KeyboardSpecialKey.Backspace)
|
if (KeypadMode == eKeypadMode.Dial)
|
||||||
DialKeypadBackspacePress();
|
if (e.Text != null)
|
||||||
else if (e.SpecialKey == KeyboardSpecialKey.Clear)
|
DialStringBuilder.Append(e.Text);
|
||||||
DialKeypadClear();
|
else
|
||||||
else if (e.SpecialKey == KeyboardSpecialKey.GoButton)
|
{
|
||||||
{
|
if (e.SpecialKey == KeyboardSpecialKey.Backspace)
|
||||||
ConnectPress();
|
DialKeypadBackspacePress();
|
||||||
Parent.Keyboard.Hide();
|
else if (e.SpecialKey == KeyboardSpecialKey.Clear)
|
||||||
}
|
DialKeypadClear();
|
||||||
|
else if (e.SpecialKey == KeyboardSpecialKey.GoButton)
|
||||||
|
{
|
||||||
|
ConnectPress();
|
||||||
|
Parent.Keyboard.Hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DialStringFeedback.FireUpdate();
|
||||||
|
DialStringKeypadCheckEnables();
|
||||||
}
|
}
|
||||||
DialStringFeedback.FireUpdate();
|
else if (VCControlsInterlock.CurrentJoin == UIBoolJoin.VCDirectoryVisible)
|
||||||
DialStringKeypadCheckEnables();
|
{
|
||||||
|
if (e.Text != null)
|
||||||
|
SearchStringBuilder.Append(e.Text);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (e.SpecialKey == KeyboardSpecialKey.Backspace)
|
||||||
|
SearchKeypadBackspacePress();
|
||||||
|
else if (e.SpecialKey == KeyboardSpecialKey.Clear)
|
||||||
|
SearchKeypadClear();
|
||||||
|
else if (e.SpecialKey == KeyboardSpecialKey.GoButton)
|
||||||
|
{
|
||||||
|
SearchPress();
|
||||||
|
Parent.Keyboard.Hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SearchStringFeedback.FireUpdate();
|
||||||
|
SearchStringKeypadCheckEnables();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DetachKeyboard()
|
void DetachKeyboard()
|
||||||
@@ -778,6 +871,59 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
Parent.Keyboard.DisableGoButton();
|
Parent.Keyboard.DisableGoButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SearchPress()
|
||||||
|
{
|
||||||
|
(Codec as IHasDirectory).SearchDirectory(SearchStringBuilder.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
void SearchKeypadPress(string i)
|
||||||
|
{
|
||||||
|
SearchStringBuilder.Append(i);
|
||||||
|
SearchStringFeedback.FireUpdate();
|
||||||
|
SearchStringKeypadCheckEnables();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
void SearchKeypadBackspacePress()
|
||||||
|
{
|
||||||
|
SearchStringBuilder.Remove(SearchStringBuilder.Length - 1, 1);
|
||||||
|
|
||||||
|
if (SearchStringBuilder.Length == 0)
|
||||||
|
SetCurrentDirectoryToRoot();
|
||||||
|
|
||||||
|
SearchStringFeedback.FireUpdate();
|
||||||
|
SearchStringKeypadCheckEnables();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clears the Search keypad
|
||||||
|
/// </summary>
|
||||||
|
void SearchKeypadClear()
|
||||||
|
{
|
||||||
|
SearchStringBuilder.Remove(0, SearchStringBuilder.Length);
|
||||||
|
SearchStringFeedback.FireUpdate();
|
||||||
|
SearchStringKeypadCheckEnables();
|
||||||
|
|
||||||
|
SetCurrentDirectoryToRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Checks the enabled states of various elements around the keypad
|
||||||
|
/// </summary>
|
||||||
|
void SearchStringKeypadCheckEnables()
|
||||||
|
{
|
||||||
|
var textIsEntered = SearchStringBuilder.Length > 0;
|
||||||
|
TriList.SetBool(UIBoolJoin.VCDirectoryBackspaceVisible, textIsEntered);
|
||||||
|
if (textIsEntered)
|
||||||
|
Parent.Keyboard.EnableGoButton();
|
||||||
|
else
|
||||||
|
Parent.Keyboard.DisableGoButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user