mac
2023-09-01 0a11352dffeb8d5f31dd40b9728fe1abf4537f04
HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs
@@ -9,12 +9,24 @@
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using HDL_ON.UI.UI2.Intelligence.Automation;
using System.Linq;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
{
    /// <summary>
    /// 埃克斯主界面
    /// </summary>
    public class AksPage : FrameLayout
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 遥控器列表
        /// </summary>
        private List<RemoteControlEntity> remoteControlList;
        /// 时序器列表
        /// </summary>
        private List<SequencerEntity> sequencerList;
        /// <summary>
        /// 设备
        /// </summary>
@@ -48,8 +60,12 @@
        /// 删除设备后需要更新界面的回调
        /// </summary>
        public Action action;
        /// <summary>
        /// 记录当前设备
        /// </summary>
        public IntType currnetIntType= IntType.none;
        public VerticalScrolViewLayout vv;
        #endregion
@@ -109,7 +125,7 @@
            };
            this.AddChidren(vv);
            //进来默认播放器界面
            this.SwitchUI(IntType.Player);
            //this.SwitchUI(IntType.Player);
        }
        /// <summary>
        /// 注册事件
@@ -119,6 +135,8 @@
            //返回
            this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
            {
                //清空所有缓存数据
                AksCommonMethod.Current.ClearData();
                this.RemoveFromParent();
            };
            //设置
@@ -166,26 +184,36 @@
            {
                try
                {
                    this.remoteControlList = SendMethod.Current.GetRemoteControlLits(this.device.deviceId);
                    this.sequencerList = SendMethod.Current.GetSequencerLits(this.device.deviceId);
                }
                catch { }
                finally
                {
                    Application.RunOnMainThread(() =>
                    CommonMethod.Current.MainThread(() =>
                    {
                        CommonMethod.Current.Loading.Hide();
                        if (this.remoteControlList.Count > 0)
                        {
                            if (string.IsNullOrEmpty(this.GetValueString(IntType.Player)))
                            {
                                //默认取第一位
                                this.SwitchUI((IntType)this.remoteControlList[0].type);
                            }
                            else
                            {
                                //有播放类型遥控器优先显示
                                this.SwitchUI(IntType.Player);
                            }
                        }
                    });
                }
            });
        }
        /// <summary>
        /// 切换界面
        ///1 = 播放器
        ///2 = 功放
        ///3 = 电视
        ///4 = 机顶盒
        ///5 = 投影仪
        ///6 = 万能遥控器
        /// 切换界面(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
        /// </summary>
        private void SwitchUI(IntType type)
        {
@@ -197,59 +225,127 @@
            {
                return;
            }
            if (vv != null)
            if (this.vv == null)
            {
                vv.RemoveAll();
                return;
            }
            this.vv.RemoveAll();
            this.currnetIntType = type;
            switch (type)
            {
                case IntType.Player:
                    {
                        AksMusicPage aksMusicPage = new AksMusicPage();
                        this.vv.AddChidren(aksMusicPage);
                        aksMusicPage.Show();
                        aksMusicPage.action += (type) =>
                        MusicPage musicPage = new MusicPage(GetRemoteControl((int)IntType.Player),this.sequencerList);
                        this.vv.AddChidren(musicPage);
                        musicPage.Show();
                        musicPage.action += (deviceType) =>
                        {
                            SelectedType();
                        };
                    }
                    break;
                case IntType.HiFi: { } break;
                case IntType.TV: { } break;
                case IntType.STB: { } break;
                case IntType.Projector: { } break;
                case IntType.Control: { } break;
                case IntType.HiFi:
                    {
                        GfPage gfPage = new GfPage(GetRemoteControl((int)IntType.HiFi), this.sequencerList);
                        this.vv.AddChidren(gfPage);
                        gfPage.Show();
                        gfPage.action += (deviceType) =>
                        {
                            SelectedType();
                        };
                    }
                    break;
                case IntType.TV:
                    {
                        TvPage tvPage = new TvPage(GetRemoteControl((int)IntType.TV), this.sequencerList);
                        this.vv.AddChidren(tvPage);
                        tvPage.Show();
                        tvPage.action += (deviceType) =>
                        {
                            SelectedType();
                        };
                    }
                    break;
                case IntType.STB:
                    {
                        JdhPage jdhPage = new JdhPage(GetRemoteControl((int)IntType.STB), this.sequencerList);
                        this.vv.AddChidren(jdhPage);
                        jdhPage.Show();
                        jdhPage.action += (deviceType) =>
                        {
                            SelectedType();
                        };
                    }
                    break;
                case IntType.Projector:
                    {
                        TyyPage tyyPage = new TyyPage(GetRemoteControl((int)IntType.Projector), this.sequencerList);
                        this.vv.AddChidren(tyyPage);
                        tyyPage.Show();
                        tyyPage.action += (deviceType) =>
                        {
                            SelectedType();
                        };
                    }
                    break;
                case IntType.Control:
                    {
                        YkqPage ykqPage = new YkqPage(GetRemoteControl((int)IntType.Control), this.sequencerList);
                        this.vv.AddChidren(ykqPage);
                        ykqPage.Show();
                        ykqPage.action += (deviceType) =>
                        {
                            SelectedType();
                        };
                    }
                    break;
            }
        }
        /// <summary>
        /// 选中类型
        ///1 = 播放器
        ///2 = 功放
        ///3 = 电视
        ///4 = 机顶盒
        ///5 = 投影仪
        ///6 = 万能遥控器
        /// 选中类型弹框(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
        /// </summary>
        /// <param name="button">显示文本</param>
        private void SelectedType()
        {
            var deviceTypeList = GetTypeDictionary().Values.ToList();
            ///之前的状态文本
            string currCondition = Language.StringByID(StringId.bofangqi);
            string ccurrnetDeviceStr= this.GetValueString(this.currnetIntType);
            PublicInterface conditionView = new PublicInterface();
            conditionView.SingleSelectionShow(this, deviceTypeList, "设备选择", currCondition
               , (stateValue) =>
            conditionView.SingleSelectionShow(this, deviceTypeList, "设备选择", ccurrnetDeviceStr
               , (valueStr) =>
               {
                   //界面显示选中值
                   //button.Text = stateValue;
                   var intType = this.GetKeyIntType(stateValue);
                   var intType = this.GetKeyIntType(valueStr);
                   this.SwitchUI(intType);
               });
        }
        /// <summary>
        /// 查找遥控器
        /// </summary>
        /// <param name="type">(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)</param>
        /// <returns>不会为null</returns>
        private RemoteControlEntity GetRemoteControl(int type)
        {
            if (this.remoteControlList == null || this.remoteControlList.Count == 0)
            {
                return new RemoteControlEntity();
            }
            var re = this.remoteControlList.Find((o) => o.type == type);
            if (re == null)
            {
                re = new RemoteControlEntity();
            }
            //re.deviceId = this.device.deviceId;
            return re;
        }
        public enum IntType
        {
@@ -284,20 +380,60 @@
        }
        /// <summary>
        ///
        /// 初始化字典
        /// </summary>
        /// <returns></returns>
        private Dictionary<IntType, string> GetTypeDictionary()
        {
            if (this.remoteControlList == null || this.remoteControlList.Count == 0)
            {
                return new Dictionary<IntType, string>();
            }
            var dic = new Dictionary<IntType, string>();
            dic.Add(IntType.Player, Language.StringByID(StringId.bofangqi));
            dic.Add(IntType.HiFi, Language.StringByID(StringId.gongfan));
            dic.Add(IntType.TV, Language.StringByID(StringId.dianshi));
            dic.Add(IntType.STB, Language.StringByID(StringId.jidinghe));
            dic.Add(IntType.Projector, Language.StringByID(StringId.touyingyi));
            dic.Add(IntType.Control, Language.StringByID(StringId.xuniyaokongqi));
            foreach (var o in this.remoteControlList)
            {
                switch (o.type)
                {
                    case (int)IntType.Player:
                        {
                            dic.Add(IntType.Player, Language.StringByID(StringId.bofangqi));
                        }
                        break;
                    case (int)IntType.HiFi:
                        {
                            dic.Add(IntType.HiFi, Language.StringByID(StringId.gongfan));
                        }
                        break;
                    case (int)IntType.TV:
                        {
                            dic.Add(IntType.TV, Language.StringByID(StringId.dianshi));
                        }
                        break;
                    case (int)IntType.STB:
                        {
                            dic.Add(IntType.STB, Language.StringByID(StringId.jidinghe));
                        }
                        break;
                    case (int)IntType.Projector:
                        {
                            dic.Add(IntType.Projector, Language.StringByID(StringId.touyingyi));
                        }
                        break;
                    case (int)IntType.Control:
                        {
                            dic.Add(IntType.Control, Language.StringByID(StringId.xuniyaokongqi));
                        }
                        break;
                }
            }
            return dic;
        }
        /// <summary>
        /// 获取设备类型
        /// </summary>
        /// <param name="value">(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)</param>
        /// <returns></returns>
        private IntType GetKeyIntType(string value)
        {
            var dic = this.GetTypeDictionary();
@@ -310,6 +446,11 @@
            }
            return IntType.none;
        }
        /// <summary>
        /// 获取设备名称
        /// </summary>
        /// <param name="key">(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)</param>
        /// <returns></returns>
        private string GetValueString(IntType key)
        {
            var dic = this.GetTypeDictionary();
@@ -323,5 +464,9 @@
            return "";
        }
    }
}