From 0a11352dffeb8d5f31dd40b9728fe1abf4537f04 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 01 九月 2023 18:06:45 +0800
Subject: [PATCH] 2023年09月01日18:06:42

---
 HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs |  322 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 304 insertions(+), 18 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs
index cb0dc58..40156ef 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs
@@ -7,11 +7,26 @@
 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;
+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>
@@ -45,6 +60,12 @@
         /// 鍒犻櫎璁惧鍚庨渶瑕佹洿鏂扮晫闈㈢殑鍥炶皟
         /// </summary>
         public Action action;
+        /// <summary>
+        /// 璁板綍褰撳墠璁惧
+        /// </summary>
+        public IntType currnetIntType= IntType.none;
+
+        
 
         public VerticalScrolViewLayout vv;
         #endregion
@@ -89,7 +110,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>
@@ -97,23 +118,14 @@
         /// </summary>
         private void InitMiddle()
         {
-            this.vv = new VerticalScrolViewLayout()
+            vv = new VerticalScrolViewLayout()
             {
                 Y = topView.fLayout.Bottom,
                 Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
             };
-            var middleFl = new FrameLayout
-            {
-
-            };
-            this.vv.AddChidren(middleFl);
-
-            var whiteFl = new FrameLayout
-            {
-               
-            };
-            middleFl.AddChidren(whiteFl);
-
+            this.AddChidren(vv);
+            //杩涙潵榛樿鎾斁鍣ㄧ晫闈�
+            //this.SwitchUI(IntType.Player);
         }
         /// <summary>
         /// 娉ㄥ唽浜嬩欢
@@ -123,6 +135,8 @@
             //杩斿洖
             this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
             {
+                //娓呯┖鎵�鏈夌紦瀛樻暟鎹�
+                AksCommonMethod.Current.ClearData();
                 this.RemoveFromParent();
             };
             //璁剧疆
@@ -140,8 +154,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();//閲嶆柊璁$畻瀹藉害
 
                     });
@@ -170,17 +184,289 @@
             {
                 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 = 涓囪兘閬ユ帶鍣�)
+        /// </summary>
+        private void SwitchUI(IntType type)
+        {
+            if (this.currnetIntType == type)
+            {
+                return;
+            }
+            if (IntType.none == type)
+            {
+                return;
+            }
+            if (this.vv == null)
+            {
+                return;
+            }
+            this.vv.RemoveAll();
+            this.currnetIntType = type;
+            switch (type)
+            {
+                case IntType.Player:
+                    {
+                        MusicPage musicPage = new MusicPage(GetRemoteControl((int)IntType.Player),this.sequencerList);
+                        this.vv.AddChidren(musicPage);
+                        musicPage.Show();
+                        musicPage.action += (deviceType) =>
+                        {
+                            SelectedType();
+                        };
+                    }
+                    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 = 涓囪兘閬ユ帶鍣�)
+        /// </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);
+
+               });
+        }
+
+        /// <summary>
+        /// 鏌ユ壘閬ユ帶鍣�
+        /// </summary>
+        /// <param name="type">(1 = 鎾斁鍣�,2 = 鍔熸斁,3 = 鐢佃,4 = 鏈洪《鐩�,5 = 鎶曞奖浠�,6 = 涓囪兘閬ユ帶鍣�)</param>
+        /// <returns>涓嶄細涓簄ull</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
+        {
+            /// <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()
+        {
+            if (this.remoteControlList == null || this.remoteControlList.Count == 0)
+            {
+                return new Dictionary<IntType, string>();
+            }
+            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));
+                        }
+                        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();
+            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 "";
+        }
+
+
+        
+
+
     }
 }

--
Gitblit v1.8.0