From 2c1411a48874e4033a538a9725f09c8465536fa8 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 28 八月 2023 19:03:51 +0800
Subject: [PATCH] 2023年08月28日19:03:29

---
 HDL_ON/Entity/Function/Scene.cs                                |   44 ++++++++
 HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs     |    1 
 HDL_ON/Entity/Function/Function.cs                             |   40 +++++++
 HDL_ON/DAL/Server/HttpUtil.cs                                  |    4 
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs             |   11 ++
 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs                |    6 +
 HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs |  103 ++++++++++++++++++++
 HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs           |   54 ++++++++--
 8 files changed, 238 insertions(+), 25 deletions(-)

diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs
index b659327..5235064 100644
--- a/HDL_ON/DAL/Server/HttpUtil.cs
+++ b/HDL_ON/DAL/Server/HttpUtil.cs
@@ -18,8 +18,8 @@
         /// 鍥哄畾鍩熷悕,姝e紡鐜
         /// 鍏叡鍩熷悕灏辫繎瑙f瀽
         /// </summary>
-        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
-        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
+        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
+        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
         const string APP_KEY = "HDL-HOME-APP-TEST";
         const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
 
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 31a5117..2ef2075 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -860,9 +860,24 @@
                     }
                 }
             }
-            else if (spk == SPK.MusicStandard|| spk == SPK.AvMusic)
+            else if (spk == SPK.MusicStandard || spk == SPK.AvMusic)
             {
-                list.AddRange(attributes);
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.OnOff,
+                    curValue = string.Empty,
+                });
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.Volume,
+                    curValue = string.Empty,
+                });
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.SongName,
+                    curValue = string.Empty,
+                });
+
             }
             else if (spk == SPK.ElectricalTvHisense)
             {
@@ -962,7 +977,8 @@
 
                 switch (attr.key)
                 {
-
+                    case FunctionAttributeKey.SongName:
+                    case FunctionAttributeKey.Volume:
                     case FunctionAttributeKey.SetVolume:
                     case FunctionAttributeKey.Signal:
                     case FunctionAttributeKey.OnOff:
@@ -1611,6 +1627,24 @@
         /// </summary>
         public const string Signal = "signal";
 
+        /// <summary>
+        /// 闊充箰闊抽噺
+        /// </summary>
+        public const string Volume = "volume";
+        /// <summary>
+        /// 姝屾洸鍚�
+        /// </summary>
+        public const string SongName = "song_name";
+        /// <summary>
+        /// 鍒楄〃鍚�
+        /// </summary>
+        public const string PlaylistName = "playlist_name";
+        /// <summary>
+        /// 鎾斁璺緞
+        /// </summary>
+        public const string Url = "url";
+
+
     }
     /// <summary>
     /// 璁惧鍔熻兘oid
diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs
index cf4d230..c2844b4 100644
--- a/HDL_ON/Entity/Function/Scene.cs
+++ b/HDL_ON/Entity/Function/Scene.cs
@@ -632,6 +632,32 @@
             {
                 sceneFunctionInfo += " " + perAngle.value + "掳";
             }
+
+            var perSetVolume = status.Find((obj) => obj.key == FunctionAttributeKey.SetVolume);
+            if (perSetVolume != null)
+            {
+                sceneFunctionInfo += " " + perSetVolume.value;
+            }
+
+            var perSignal = status.Find((obj) => obj.key == FunctionAttributeKey.Signal);
+            if (perSignal != null)
+            {
+                var p = new HDL_ON.UI.UI2.Intelligence.Automation.PublicInterface();
+                string key = p.GetKey(p.GetHisenseSignalSourceDic(), perSignal.value);
+                sceneFunctionInfo += " " + key;
+            }
+
+            var perVolume =status.Find((obj) => obj.key == FunctionAttributeKey.Volume);
+            if (perVolume != null)
+            {
+                sceneFunctionInfo += " " + perVolume.value;
+            }
+
+            var perSongName =status.Find((obj) => obj.key == FunctionAttributeKey.SongName);
+            if (perSongName != null)
+            {
+                sceneFunctionInfo += " " + perSongName.value;
+            }
             return sceneFunctionInfo;
         }
 
@@ -711,6 +737,12 @@
                     break;
                 case FunctionAttributeKey.Signal:
                     text = Language.StringByID(StringId.xinhaoyuan);
+                    break;
+                case FunctionAttributeKey.Volume:
+                    text = Language.StringByID(StringId.yinliang);
+                    break;
+                case FunctionAttributeKey.SongName:
+                    text = Language.StringByID(StringId.tishiyin);
                     break;
             }
             return text;
@@ -857,14 +889,20 @@
                 case "auto":
                     text = Language.StringByID(StringId.Auto);
                     break;
-                case FunctionAttributeKey.SetVolume:
-                    text = value;
-                    break;
                 case FunctionAttributeKey.Signal:
                     var p = new UI.UI2.Intelligence.Automation.PublicInterface();
                     var dic = p.GetHisenseSignalSourceDic();
                     text = p.GetKey(dic, value);
                     break;
+                case FunctionAttributeKey.SetVolume:
+                    text = value;
+                    break;
+                case FunctionAttributeKey.Volume:
+                    text = value;
+                    break;
+                case FunctionAttributeKey.SongName:
+                    text = value;
+                    break;
             }
             return text;
         }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
index 1263bbf..0edb7a4 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -342,6 +342,7 @@
         /// <param name="stateList">涔嬪墠鐘舵�佹暟鎹簮</param>
         /// <param name="titleText">鏍囬</param>
         /// <param name="action">杩斿洖鍊肩储寮曞��</param>
+        /// <param name="isIcon">鏁版嵁婧愭病鏈夋暟鎹槸鍚︽樉绀烘彁绀哄浘鏍�(榛樿(true)鏄剧ず)</param>
         public void FrameOrVv(FrameLayout frame, List<string> list, List<string> stateList, string titleText, Action<int> action,bool isIcon=true)
         {
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
index 7274673..069e547 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -582,11 +582,17 @@
                 //澶辫触鏃舵槸鍚﹁鎻愮ず
                 if (isTip)
                 {
+                    if (r == null)
+                    {
+                        r = new ResponsePackNew { message = "娌″洖澶�,璇风‘璁ょ綉缁滄槸鍚︽甯�.", Code = "-1", };
+                    }
                     new LogicView.TipPopView().FlashingBox(r.message + $"({r.Code})");
                 }
             }
             return false;
         }
+
+
         /// <summary>
         /// 鎵撳嵃鏃ュ織
         /// </summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
index 62f26f6..4586b64 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
@@ -585,6 +585,17 @@
                 sceneFunctionInfo += " " + key;
             }
 
+            var perVolume = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Volume);
+            if (perVolume != null)
+            {
+                sceneFunctionInfo += " " + perVolume.value;
+            }
+
+            var perSongName = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SongName);
+            if (perSongName != null)
+            {
+                sceneFunctionInfo += " " + perSongName.value;
+            }
             return sceneFunctionInfo;
         }
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
index 681f9a9..54bcda7 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -29,10 +29,10 @@
 
         public SceneFunctionInfoEditPage(Scene s, SceneFunction fc, Action action)
         {
-
+            
             bodyView = this;
             scene = s;
-            sceneFunction = fc.localFunction.ConvertSceneFunction();
+            sceneFunction = fc.localFunction.ConvertSceneFunction(); 
             foreach (var ll in sceneFunction.status)
             {
                 try
@@ -126,6 +126,12 @@
                         break;
                     case FunctionAttributeKey.Signal:
                         LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Signal));
+                        break;
+                    case FunctionAttributeKey.SongName:
+                        LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SongName));
+                        break;
+                    case FunctionAttributeKey.Volume:
+                        LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Volume));
                         break;
                 }
             }
@@ -537,6 +543,45 @@
                                 sceneStatus.value = p.GetValue(dic, valueStr);
                             });
                             break;
+                        case FunctionAttributeKey.Volume:
+                            BrightnessView(btnFunctionText.Text, btnFunctionName.Text, (volume, uintStr) =>
+                            {
+                                btnFunctionText.Text = volume;
+                                sceneStatus.value = volume;
+                            });
+                            break;
+                        case FunctionAttributeKey.SongName:
+                            MusicListView(btnFunctionText.Text, (playListName, song) =>
+                            {
+                                btnFunctionText.Text = song.name;
+                                sceneStatus.value = song.name;
+                                //杩藉姞鎺у埗灞炴��
+                                var oldList = new List<SceneFunctionStatus>();
+                                for (int i = 0; i < sceneFunction.status.Count; i++)
+                                {
+                                    var status = sceneFunction.status[i];
+                                    if (status.key == FunctionAttributeKey.PlaylistName)
+                                    {
+                                        //鎺у埗闇�瑕侊紙鐣岄潰涓嶉渶瑕佹樉绀猴級
+                                        sceneFunction.status.RemoveAt(i);
+                                        sceneFunction.status.Insert(i, new SceneFunctionStatus { key = FunctionAttributeKey.PlaylistName, value = playListName });
+                                    }
+                                    else if (status.key == FunctionAttributeKey.Url)
+                                    {
+                                        //瀛樺湪url灏变竴璧峰彂閫佽繃鍘�
+                                        if (!string.IsNullOrEmpty(song.url))
+                                        {
+                                            //鎺у埗闇�瑕侊紙鐣岄潰涓嶉渶瑕佹樉绀猴級
+                                            sceneFunction.status.RemoveAt(i);
+                                            sceneFunction.status.Insert(i, new SceneFunctionStatus { key = FunctionAttributeKey.Url, value = song.url });
+                                        }
+                                    }
+
+                                }
+
+                            });
+                            break;
+
                     }
                 };
 
@@ -2396,8 +2441,60 @@
             pif.SingleSelectionShow(this, list, titleName, oldStateValue, action);
         }
 
-        #endregion
+        /// <summary>
+        /// 闊充箰鍒楄〃鐣岄潰
+        /// </summary>
+        /// <param name="oldStateValue">鏃х姸鎬佸��</param>
+        ///  <param name="action">鍥炶皟</param>
+        void MusicListView(string oldStateValue, Action<string, Music.SongInfo> action)
+        {
+            Loading loading = new Loading();
+            this.AddChidren(loading);
+            loading.Start();
+            System.Threading.Tasks.Task.Run(() =>
+            {
+                try
+                {
+                    var palyList = Music.SendMethod.Current.GetSingleSongList(new Function { sid = sceneFunction.sid }, "hdl_special", "");
+                    List<string> songNameList = new List<string>();
+                    for (int i = 0; i < palyList.songs.Count; i++)
+                    {
+                        var song = palyList.songs[i];
+                        songNameList.Add(song.name);
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        loading.Hide();
+                        var publicInterface = new UI2.Intelligence.Automation.PublicInterface();
+                        publicInterface.FrameOrVv(this, songNameList, new List<string> { oldStateValue }, palyList.group, (index) =>
+                        {
+                            if (index > palyList.songs.Count)
+                            {
+                                index = 0;
+                            }
+                            var song = palyList.songs[index];
+                            action?.Invoke(palyList.group, song);
 
+                            //鐣岄潰鏄剧ず閫変腑鍊�
+                            //funTypeView.btnState.Text = songSelecetd.name;
+                            ////鏁版嵁灏佽
+                            //AddDictionary("playlist_name", palyList.group);//鍒楄〃鍚�
+                            //AddDictionary("song_name", songSelecetd.name);//姝屾洸鍚�
+                            //if (!string.IsNullOrEmpty(songSelecetd.url))
+                            //{
+                            //    //瀛樺湪url灏变竴璧峰彂閫佽繃鍘�
+                            //    AddDictionary("url", songSelecetd.url);
+                            //}
+
+                        }, false);
+
+                    });
+                }
+                catch { }
+
+            });
+        }
+        #endregion
     }
 }
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
index 1ca1b0f..0734e13 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
@@ -6,8 +6,10 @@
 using System.Text;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
+using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
 using Newtonsoft.Json.Linq;
 using Shared;
+using static HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod;
 
 namespace HDL_ON.UI.Music
 {
@@ -77,8 +79,9 @@
         /// <summary>
         /// 鍒锋柊璁惧鐘舵��
         /// </summary>
+        /// <param name="tipType">鏄惁闇�瑕佹彁绀�,榛樿鎻愮ず</param>
         /// <returns></returns>
-        public void RefreshDeviceStatus(List<string> functionIds)
+        public void RefreshDeviceStatus(List<string> functionIds,TipType tipType = TipType.flicker)
         {
             try
             {
@@ -86,7 +89,7 @@
                 d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
                 d.Add("deviceIds", functionIds);
                 var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_RefreshDeviceStatus, "鍒锋柊璁惧鐘舵��");
-                if (!this.DataChecking(responsePackNew))
+                if (!this.DataChecking(responsePackNew, tipType))
                 {
                     return;
                 }
@@ -114,8 +117,9 @@
         /// </summary>
         /// <param name="music">闊充箰鎾斁鍣�</param>
         /// <param name="action">鍥炶皟</param>
+        ///  <param name="tipType">鏄惁闇�瑕佹彁绀�,榛樿鎻愮ず</param>
         /// <returns></returns>
-        public void GetCurrentPalyList(Function music, Action action)
+        public void GetCurrentPalyList(Function music, Action action, TipType tipType = TipType.flicker)
         {
             try
             {
@@ -123,7 +127,7 @@
                 d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
                 d.Add("deviceIds", new List<string> { music.deviceId });
                 var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_PlayerList, "鑾峰彇闊充箰鍒楄〃");
-                if (!this.DataChecking(responsePackNew))
+                if (!this.DataChecking(responsePackNew,tipType))
                 {
                     return;
                 }
@@ -157,8 +161,9 @@
         /// </summary>
         /// <param name="music"></param>
         /// <param name="source">闊充箰婧愪负null,鏀寔澶氫釜婧愯幏鍙�</param>
+        ///  <param name="tipType">鏄惁闇�瑕佹彁绀�,榛樿鎻愮ず</param>
         /// <returns></returns>
-        public List<GroupList> GetMultipleSourceListName(Function music, string source)
+        public List<GroupList> GetMultipleSourceListName(Function music, string source,TipType tipType=TipType.flicker)
         {
             try
             {
@@ -173,7 +178,7 @@
                 }
                 d.Add("deviceInfos", new List<Dictionary<string, object>> { deviceIds });
                 var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupList, "鑾峰彇鍒楄〃鍚嶅垪琛�");
-                if (!this.DataChecking(responsePackNew))
+                if (!this.DataChecking(responsePackNew, tipType))
                 {
                     return new List<GroupList>();
                 }
@@ -209,7 +214,7 @@
             return groupList.Count > 0 ? groupList[0] : new GroupList();
         }
 
-      
+
 
 
         /// <summary>
@@ -218,8 +223,9 @@
         /// <param name="music"></param>
         /// <param name="listName">鍒楄〃鍚�</param>
         /// <param name="source">闊充箰婧�</param>
+        /// <param name="tipType">鏄惁闇�瑕佹彁绀�,榛樿鎻愮ず</param>
         /// <returns></returns>
-        public List<PalyerSongListInfo> GetMultipleSongListM(Function music, string listName, string source)
+        public List<PalyerSongListInfo> GetMultipleSongListM(Function music, string listName, string source, TipType tipType= TipType.flicker)
         {
             try
             {
@@ -238,7 +244,7 @@
                 d.Add("sidGroups", new List<Dictionary<string, object>> { d1 });
 
                 var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupPlayerList, "閫氳繃鍒楄〃鍚嶈幏鍙栨瓕鏇插垪琛�");
-                if (!this.DataChecking(responsePackNew))
+                if (!this.DataChecking(responsePackNew, tipType))
                 {
                     return new List<PalyerSongListInfo>();
                 }
@@ -265,9 +271,9 @@
         /// <param name="listName">鍒楄〃鍚�</param>
         /// <param name="source">闊充箰婧�</param>
         /// <returns></returns>
-        public SongList GetSingleSongList(Function music, string listName, string source)
+        public SongList GetSingleSongList(Function music, string listName, string source, TipType tipType= TipType.flicker)
         {
-            List<PalyerSongListInfo> listInfos = this.GetMultipleSongListM(music, listName, source);
+            List<PalyerSongListInfo> listInfos = this.GetMultipleSongListM(music, listName, source, tipType);
             if (listInfos.Count == 0)
             {
                 return new SongList();
@@ -277,21 +283,41 @@
             return songList;
 
         }
+
+        /// <summary>
         /// <summary>
         /// 妫�楠屾暟鎹洖澶嶆垚鍔熸垨鑰呭け璐�
         /// </summary>
         /// <param name="responsePackNew">鍥炲鏁版嵁瀵硅薄</param>
+        /// <param name="tipType">鏄惁闇�瑕佹彁绀�</param>
         /// <returns></returns>
-        private bool DataChecking(ResponsePackNew responsePackNew)
+        private bool DataChecking(ResponsePackNew responsePackNew, TipType tipType)
         {
-            if (responsePackNew.Data == null||responsePackNew.Code != "0"  || responsePackNew.Data.ToString() == "")
+            if (responsePackNew.Data == null || responsePackNew.Code != "0" || responsePackNew.Data.ToString() == "")
             {
-                
+                if (TipType.flicker == tipType)
+                {
+                    if (responsePackNew == null)
+                    {
+                        responsePackNew = new ResponsePackNew { message = "娌″洖澶�,璇风‘璁ょ綉缁滄槸鍚︽甯�.", Code = "-1", };
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        //new Tip()
+                        //{
+                        //    CloseTime = 1,
+                        //    Text = responsePackNew.message + "(" + responsePackNew.Code + ")",
+                        //    Direction = AMPopTipDirection.None,
+                        //}.Show(MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1));
+                        CommonMethod.Current.ShowTip(responsePackNew.message + "(" + responsePackNew.Code + ")", 3);
+                    });
+                }
                 return false;
             }
             return true;
         }
 
+
         /// <summary>
         ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� 
         /// </summary>

--
Gitblit v1.8.0