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