mac
2023-09-26 841e7972869b6e967d06da0d91186cd69f1d4eb5
HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs
@@ -10,6 +10,7 @@
using HDL_ON.UI.UI2.Intelligence.Automation;
using System.Linq;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
using System.Reflection;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
{
@@ -64,6 +65,10 @@
        /// 记录当前设备
        /// </summary>
        public IntType currnetIntType= IntType.none;
        /// <summary>
        /// 记录当前选择的索引值
        /// </summary>
        public int indexValue = -1;
        
@@ -196,16 +201,19 @@
                        if (this.remoteControlList.Count > 0)
                        {
                            if (string.IsNullOrEmpty(this.GetValueString(IntType.Player)))
                            {
                                //默认取第一位
                                this.SwitchUI((IntType)this.remoteControlList[0].type);
                            }
                            else
                            if (this.isExistType(IntType.Player))
                            {
                                //有播放类型遥控器优先显示
                                this.SwitchUI(IntType.Player);
                            }
                            else
                            {
                                //默认取第一位
                                this.indexValue = 0;
                                var type = (IntType)this.remoteControlList[this.indexValue].type;
                                this.SwitchUI(type);
                            }
                        }
                    });
@@ -213,14 +221,15 @@
            });
        }
        /// <summary>
        /// 切换界面(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
        /// 界面显示(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
        /// </summary>
        private void SwitchUI(IntType type)
        {
            if (this.currnetIntType == type)
            {
                return;
            }
            //if (this.currnetIntType == type)
            //{
            //    //去掉判断类型,因为可能存在多个同类型
            //    return;
            //}
            if (IntType.none == type)
            {
                return;
@@ -230,12 +239,12 @@
                return;
            }
            this.vv.RemoveAll();
            this.currnetIntType = type;
            var remoteContro = this.remoteControlList[this.indexValue];
            switch (type)
            {
                case IntType.Player:
                    {
                        MusicPage musicPage = new MusicPage(GetRemoteControl((int)IntType.Player),this.sequencerList);
                        MusicPage musicPage = new MusicPage(remoteContro, this.sequencerList);
                        this.vv.AddChidren(musicPage);
                        musicPage.Show();
                        musicPage.action += (deviceType) =>
@@ -246,7 +255,7 @@
                    break;
                case IntType.HiFi:
                    {
                        GfPage gfPage = new GfPage(GetRemoteControl((int)IntType.HiFi), this.sequencerList);
                        GfPage gfPage = new GfPage(remoteContro, this.sequencerList);
                        this.vv.AddChidren(gfPage);
                        gfPage.Show();
                        gfPage.action += (deviceType) =>
@@ -259,7 +268,7 @@
                case IntType.TV:
                    {
                        TvPage tvPage = new TvPage(GetRemoteControl((int)IntType.TV), this.sequencerList);
                        TvPage tvPage = new TvPage(remoteContro, this.sequencerList);
                        this.vv.AddChidren(tvPage);
                        tvPage.Show();
                        tvPage.action += (deviceType) =>
@@ -270,7 +279,7 @@
                    break;
                case IntType.STB:
                    {
                        JdhPage jdhPage = new JdhPage(GetRemoteControl((int)IntType.STB), this.sequencerList);
                        JdhPage jdhPage = new JdhPage(remoteContro, this.sequencerList);
                        this.vv.AddChidren(jdhPage);
                        jdhPage.Show();
                        jdhPage.action += (deviceType) =>
@@ -281,7 +290,7 @@
                    break;
                case IntType.Projector:
                    {
                        TyyPage tyyPage = new TyyPage(GetRemoteControl((int)IntType.Projector), this.sequencerList);
                        TyyPage tyyPage = new TyyPage(remoteContro, this.sequencerList);
                        this.vv.AddChidren(tyyPage);
                        tyyPage.Show();
                        tyyPage.action += (deviceType) =>
@@ -293,7 +302,7 @@
                case IntType.Control:
                    {
                        YkqPage ykqPage = new YkqPage(GetRemoteControl((int)IntType.Control), this.sequencerList);
                        YkqPage ykqPage = new YkqPage(remoteContro, this.sequencerList);
                        this.vv.AddChidren(ykqPage);
                        ykqPage.Show();
                        ykqPage.action += (deviceType) =>
@@ -308,43 +317,29 @@
        }
        /// <summary>
        /// 选中类型弹框(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
        /// 界面切换(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
        /// </summary>
        private void SelectedType()
        {
            var deviceTypeList = GetTypeDictionary().Values.ToList();
            var deviceTypeList = GetRemoteControlList();
            ///之前的状态文本
            string ccurrnetDeviceStr= this.GetValueString(this.currnetIntType);
            string ccurrnetDeviceStr = "";
            if (indexValue!=-1&& indexValue< deviceTypeList.Count) {
                ccurrnetDeviceStr= deviceTypeList[indexValue].name;
            }
            PublicInterface conditionView = new PublicInterface();
            conditionView.SingleSelectionShow(this, deviceTypeList, "设备选择", ccurrnetDeviceStr
               , (valueStr) =>
               , (index) =>
               {
                   //界面显示选中值
                   var intType = this.GetKeyIntType(valueStr);
                   this.SwitchUI(intType);
                   var remoteControl = deviceTypeList[index];
                   this.indexValue = index;
                   this.currnetIntType = (IntType)remoteControl.type;
                   this.SwitchUI((IntType)remoteControl.type);
               });
        }
        /// <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
@@ -380,92 +375,39 @@
        }
        /// <summary>
        /// 初始化字典
        /// 获取遥控器列表
        /// </summary>
        /// <returns></returns>
        private Dictionary<IntType, string> GetTypeDictionary()
        private List<RemoteControlEntity> GetRemoteControlList()
        {
            if (this.remoteControlList == null || this.remoteControlList.Count == 0)
            {
                return new Dictionary<IntType, string>();
                return new List<RemoteControlEntity>();
            }
            var dic = new Dictionary<IntType, string>();
            foreach (var o in this.remoteControlList)
            {
                switch (o.type)
                {
                    case (int)IntType.Player:
                        {
                            dic.Add(IntType.Player, Language.StringByID(StringId.bofangqi));
            return this.remoteControlList;
                        }
                        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>
        /// <param name="type">(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)</param>
        /// <returns></returns>
        private IntType GetKeyIntType(string value)
        private bool isExistType(IntType type)
        {
            var dic = this.GetTypeDictionary();
            foreach (var d in dic)
            var remoteControls = this.GetRemoteControlList();
            for (int i = 0; i < remoteControls.Count; i++)
            {
                if (d.Value == value)
                var re = remoteControls[i];
                if ((IntType)re.type == type)
                {
                    return d.Key;
                }
            }
            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();
            foreach (var d in dic)
            {
                if (d.Key == key)
                {
                    return d.Value;
                }
            }
            return "";
                    this.indexValue = i;
                    return true;
        }
            }
            return false;
        }
    }