Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="trilist"></param>
        /// <param name="parent"></param>
        public EssentialsHuddleTechPageDriver(BasicTriListWithSmartObject trilist, EssentialsRoomTechConfig config)
            : base(trilist)
        {
            Config = config;

            PagesInterlock = new JoinedSigInterlock(trilist);
            PagesInterlock.SetButDontShow(UIBoolJoin.TechSystemStatusVisible);

            trilist.SetSigFalseAction(UIBoolJoin.TechExitButton, Hide);

            MenuList = new SmartObjectDynamicList(trilist.SmartObjects[UISmartObjectJoin.TechMenuList],
                                                  true, 3100);

            MenuList.SetFeedback(1, true); // initial fb
            ushort count = 0;

            MenuList.SetItemMainText(1, "System Status");
            MenuList.SetItemButtonAction(1, b => {
                if (b)
                {
                    PagesInterlock.ShowInterlocked(UIBoolJoin.TechSystemStatusVisible);
                }
                MenuList.SetFeedback(1, true);
            });

            MenuList.SetItemMainText(2, "Display Controls");
            MenuList.SetItemButtonAction(2, b => {
                if (b)
                {
                    PagesInterlock.ShowInterlocked(UIBoolJoin.TechDisplayControlsVisible);
                }
                MenuList.SetFeedback(2, true);
            });

            count = 2;

            // Don't show panel setup on iPad or xpanel
            if (TriList is Crestron.SimplSharpPro.DeviceSupport.TswFt5Button)
            {
                count++;
                MenuList.SetItemMainText(count, "Panel Setup");
                MenuList.SetItemButtonAction(count, b =>
                {
                    if (b)
                    {
                        PagesInterlock.ShowInterlocked(UIBoolJoin.TechPanelSetupVisible);
                    }
                    MenuList.SetFeedback(count, true);
                });
            }

            MenuList.Count = count;
            BuildStatusList();
            BuildDisplayList();
            SetupPinModal();
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        void RefreshRecentCallsList()
        {
            var  codec          = Codec as IHasCallHistory;
            uint textOffset     = 1200;
            uint timeTextOffset = 1230;

            if (codec != null)
            {
                ushort i = 0;
                foreach (var c in codec.CallHistory.RecentCalls)
                {
                    i++;
                    TriList.SetString(textOffset + i, c.Name);
                    // if it's today, show a simpler string
                    string timeText = null;
                    if (c.StartTime.Date == DateTime.Now.Date)
                    {
                        timeText = c.StartTime.ToShortTimeString();
                    }
                    else if (c.StartTime == DateTime.MinValue)
                    {
                        timeText = "";
                    }
                    else
                    {
                        timeText = c.StartTime.ToString();
                    }
                    TriList.SetString(timeTextOffset + i, timeText);

                    string iconName = null;
                    if (c.OccurrenceType == eCodecOccurrenceType.Received)
                    {
                        iconName = "Misc-18_Light";
                    }
                    else if (c.OccurrenceType == eCodecOccurrenceType.Placed)
                    {
                        iconName = "Misc-17_Light";
                    }
                    else
                    {
                        iconName = "Delete";
                    }
                    RecentCallsList.SetItemIcon(i, iconName);

                    var call = c; // for lambda scope
                    RecentCallsList.SetItemButtonAction(i, b => { if (!b)
                                                                  {
                                                                      Codec.Dial(call.Number);
                                                                  }
                                                        });
                }
                RecentCallsList.Count = i;
            }
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dir"></param>
        void RefreshDirectory()
        {
            if ((Codec as IHasDirectory).CurrentDirectoryResult.CurrentDirectoryResults.Count > 0)
            {
                ushort i = 0;
                foreach (var r in (Codec as IHasDirectory).CurrentDirectoryResult.CurrentDirectoryResults)
                {
                    if (i == DirectoryList.MaxCount)
                    {
                        break;
                    }

                    i++;

                    if (r is DirectoryContact)
                    {
                        DirectoryList.SetItemMainText(i, r.Name);

                        var dc = r as DirectoryContact;

                        if (dc.ContactMethods.Count > 1)
                        {
                            // If more than one contact method, show contact method modal dialog
                            DirectoryList.SetItemButtonAction(i, b =>
                            {
                                if (!b)
                                {
                                    // Refresh the contact methods list
                                    RefreshContactMethodsModalList(dc);
                                    Parent.PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.MeetingsOrContacMethodsListVisible);
                                }
                            });
                        }
                        else
                        {
                            // If only one contact method, just dial that method
                            DirectoryList.SetItemButtonAction(i, b => { if (!b)
                                                                        {
                                                                            Codec.Dial(dc.ContactMethods[0].Number);
                                                                        }
                                                              });
                        }
                    }
                    else    // is DirectoryFolder
                    {
                        DirectoryList.SetItemMainText(i, string.Format("[+] {0}", r.Name));

                        var df = r as DirectoryFolder;

                        DirectoryList.SetItemButtonAction(i, b =>
                        {
                            if (!b)
                            {
                                GetDirectoryFolderContents(df);
                                // will later call event handler after folder contents retrieved
                            }
                        });
                    }
                }
                DirectoryList.Count = i;
            }
            else        // No results in directory, display message to user
            {
                DirectoryList.Count = 1;

                DirectoryList.SetItemMainText(1, "No Results Found");
            }
        }