wjc
2023-08-03 fd1f19e8479c764fa28b0da3a2f9b34a3debe772
HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs
@@ -7,6 +7,9 @@
using HDL_ON.DriverLayer;
using HDL_ON.UI.Music;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using HDL_ON.UI.UI2.Intelligence.Automation;
using System.Linq;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
{
    public class AksPage : FrameLayout
@@ -45,6 +48,10 @@
        /// 删除设备后需要更新界面的回调
        /// </summary>
        public Action action;
        /// <summary>
        /// 记录当前设备
        /// </summary>
        public IntType currnetIntType= IntType.none;
        public VerticalScrolViewLayout vv;
        #endregion
@@ -89,7 +96,7 @@
            this.BackgroundColor = MusicColor.ViewColor;
            this.topView = new TopView();
            this.topView.setBtn.Visible = true;
            this.topView.topNameBtn.Text= this.device.name;
            this.topView.topNameBtn.Text = this.device.name;
            this.AddChidren(topView.TopFLayoutView());
        }
        /// <summary>
@@ -103,10 +110,8 @@
                Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
            };
            this.AddChidren(vv);
            AksMusicPage aksMusicPage = new AksMusicPage();
            this.vv.AddChidren(aksMusicPage);
            aksMusicPage.Show();
            //进来默认播放器界面
            this.SwitchUI(IntType.Player);
        }
        /// <summary>
        /// 注册事件
@@ -133,8 +138,8 @@
                        ////刷新显示
                        this.btnDeviceName.Text = this.device.name;
                        this.btnRoomName.Text = this.device.GetRoomListName();
                        this.btnCurrDeviceName.Text = this.device.name;
                        this.btnCurrDeviceRoom.Text = this.device.GetRoomListName();
                        //this.btnCurrDeviceName.Text = this.device.name;
                        //this.btnCurrDeviceRoom.Text = this.device.GetRoomListName();
                        //this.CalculatedPosition();//重新计算宽度
                    });
@@ -175,5 +180,172 @@
                }
            });
        }
        /// <summary>
        /// 切换界面(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
        /// </summary>
        private void SwitchUI(IntType type)
        {
            if (this.currnetIntType == type)
            {
                return;
            }
            if (IntType.none == type)
            {
                return;
            }
            if (vv != null)
            {
                vv.RemoveAll();
            }
            this.currnetIntType = type;
            switch (type)
            {
                case IntType.Player:
                    {
                        AksMusicPage aksMusicPage = new AksMusicPage();
                        this.vv.AddChidren(aksMusicPage);
                        aksMusicPage.Show();
                        aksMusicPage.action += (type) =>
                        {
                            SelectedType();
                        };
                    }
                    break;
                case IntType.HiFi: {
                        GFPage gFPage = new GFPage();
                        this.vv.AddChidren(gFPage);
                        gFPage.Show();
                        gFPage.action += (type) =>
                        {
                            SelectedType();
                        };
                    } break;
                case IntType.TV: {
                        TvPage tvPage = new TvPage();
                        this.vv.AddChidren(tvPage);
                        tvPage.Show();
                        tvPage.action += (type) =>
                        {
                            SelectedType();
                        };
                    } break;
                case IntType.STB: { } break;
                case IntType.Projector: {
                        TYYPage tYYPage = new TYYPage();
                        this.vv.AddChidren(tYYPage);
                        tYYPage.Show();
                        tYYPage.action += (type) =>
                        {
                            SelectedType();
                        };
                    } break;
                case IntType.Control: { } break;
            }
        }
        /// <summary>
        /// 选中类型弹框(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
        /// </summary>
        private void SelectedType()
        {
            var deviceTypeList = GetTypeDictionary().Values.ToList();
            ///之前的状态文本
            string ccurrnetDeviceStr= this.GetValueString(this.currnetIntType);
            PublicInterface conditionView = new PublicInterface();
            conditionView.SingleSelectionShow(this, deviceTypeList, "设备选择", ccurrnetDeviceStr
               , (valueStr) =>
               {
                   //界面显示选中值
                   var intType = this.GetKeyIntType(valueStr);
                   this.SwitchUI(intType);
               });
        }
        public enum IntType
        {
            /// <summary>
            /// 没有
            /// </summary>
            none = 0,
            /// <summary>
            /// 播放器
            /// </summary>
            Player = 1,
            /// <summary>
            /// 功放
            /// </summary>
            HiFi = 2,
            /// <summary>
            /// 电视
            /// </summary>
            TV = 3,
            /// <summary>
            /// 机顶盒
            /// </summary>
            STB = 4,
            /// <summary>
            /// 投影仪
            /// </summary>
            Projector = 5,
            /// <summary>
            /// 万能遥控器
            /// </summary>
            Control = 6,
        }
        /// <summary>
        /// 初始化字典
        /// </summary>
        /// <returns></returns>
        private Dictionary<IntType, string> GetTypeDictionary()
        {
            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));
            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();
            foreach (var d in dic)
            {
                if (d.Value == value)
                {
                    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 "";
        }
    }
}