From a3313818a548d51777ae4e6cc006e9d1e2c1036e Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 07 四月 2023 09:15:37 +0800 Subject: [PATCH] 群控备份 --- HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs | 6 HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage.cs | 585 ++++++++++++++++ HDL_ON/UI/UI2/1-HomePage/HomePage.cs | 2 HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs | 38 + HDL-ON_Android/Assets/Language.ini | 6 HDL_ON/Common/ApiUtlis.cs | 46 + HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs | 95 ++ HDL_ON/DAL/Mqtt/MqttClient.cs | 2 HDL_ON/HDL_ON.projitems | 1 HDL_ON/UI/UI0-Public/DiySelectPopupDialog.cs | 8 HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs | 3 HDL-ON_iOS/Resources/Language.ini | 42 + HDL_ON/Entity/Function/Function.cs | 5 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs | 5 HDL_ON/DAL/Server/NewApiRes.cs | 5 HDL_ON/UI/UI2/2-Classification/FunctionPage.cs | 2 HDL_ON/DAL/Server/HttpUtil.cs | 12 HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs | 1140 ++----------------------------- HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs | 4 HDL_ON/Common/R.cs | 5 HDL_ON/DAL/Server/HttpServerRequest.cs | 76 ++ HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs | 4 HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs | 11 HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs | 4 24 files changed, 1,000 insertions(+), 1,107 deletions(-) diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini index 6d53d64..1afed9f 100644 --- a/HDL-ON_Android/Assets/Language.ini +++ b/HDL-ON_Android/Assets/Language.ini @@ -585,7 +585,7 @@ 598=Select device 599=Please input name 600=Add combined dimming - +601=Please select two or more devices @@ -1857,6 +1857,7 @@ 598=閫夋嫨缇ゆ帶璁惧 599=璇疯緭鍏ョ粍鍚嶇О 600=娣诲姞缁勫悎璋冨厜 +601=璇烽�夋嫨涓や釜浠ヤ笂鐨勮澶� @@ -3109,6 +3110,7 @@ 598=Select device 599=Please input name 600=Add combined dimming +601=Please select two or more devices @@ -4344,6 +4346,7 @@ 598=Select device 599=Please input name 600=Add combined dimming +601=Please select two or more devices 2532=Visitor Invitation Record @@ -5563,6 +5566,7 @@ 598=Select device 599=Please input name 600=Add combined dimming +601=Please select two or more devices 1000=袙谢邪卸薪芯褋褌 胁 褋褌邪褟褌邪 diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini index e1a9b45..1afed9f 100644 --- a/HDL-ON_iOS/Resources/Language.ini +++ b/HDL-ON_iOS/Resources/Language.ini @@ -580,6 +580,13 @@ 593=Face photo 594=Please enter member name 595=Delete +596=Group Name +597=Please enter +598=Select device +599=Please input name +600=Add combined dimming +601=Please select two or more devices + 2532=Visitor Invitation Record @@ -1143,6 +1150,8 @@ 8509=Fluorite video door lock 8510=Call from the doorbell 8511=User Education + + @@ -1843,6 +1852,12 @@ 593=浜鸿劯鐓х墖 594=璇疯緭鍏ユ垚鍛樺悕绉� 595=鍒犻櫎浜鸿劯鏁版嵁 +596=缁勫悕绉� +597=璇疯緭鍏� +598=閫夋嫨缇ゆ帶璁惧 +599=璇疯緭鍏ョ粍鍚嶇О +600=娣诲姞缁勫悎璋冨厜 +601=璇烽�夋嫨涓や釜浠ヤ笂鐨勮澶� @@ -2381,6 +2396,7 @@ 7167=鎬绘帶寮�鍏� 7168=PM10 + 8501=瑙嗛闂ㄩ攣 8502=鐢甸噺 8503=褰撳墠闂ㄥ凡鍏� @@ -2392,6 +2408,13 @@ 8509=钀ょ煶瑙嗛闂ㄩ攣 8510=鏉ヨ嚜鈥滈棬閾冣�濆懠鍙� 8511=鐢ㄦ埛浜哄憳 + + + + + + + @@ -3082,6 +3105,12 @@ 593=Face photo 594=Please enter member name 595=Delete +596=Group Name +597=Please enter +598=Select device +599=Please input name +600=Add combined dimming +601=Please select two or more devices @@ -4312,7 +4341,12 @@ 593=Face photo 594=Please enter member name 595=Delete - +596=Group Name +597=Please enter +598=Select device +599=Please input name +600=Add combined dimming +601=Please select two or more devices 2532=Visitor Invitation Record @@ -5527,6 +5561,12 @@ 593=Face photo 594=Please enter member name 595=Delete +596=Group Name +597=Please enter +598=Select device +599=Please input name +600=Add combined dimming +601=Please select two or more devices 1000=袙谢邪卸薪芯褋褌 胁 褋褌邪褟褌邪 diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs index 893a034..a177095 100644 --- a/HDL_ON/Common/ApiUtlis.cs +++ b/HDL_ON/Common/ApiUtlis.cs @@ -348,9 +348,9 @@ #if DEBUG - DB_ResidenceData.Instance.CurrentRegion.isSupportGroupControl = true; + DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl = true; #endif - if (DB_ResidenceData.Instance.CurrentRegion.isSupportGroupControl) + if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { var pack = Ins.HttpRequest.GetGroupControlList(); if (pack != null) @@ -359,7 +359,47 @@ { try { - FunctionList.List.groupControls = JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString()); + var groupControlList = JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString()); + var readSidList = new List<string>(); + foreach(var temp in groupControlList) + { + FunctionList.List.groupControls.Clear(); + readSidList.Add(temp.userDeviceGroupControlId); + if (readSidList.Count >= 20) + { + var data = Ins.httpRequest.GetGroupControInfo(readSidList); + if(data != null) + { + if(data.Code == StateCode.SUCCESS) + { + var groupControlInfoList = JsonConvert.DeserializeObject<List<GroupControl>>(data.Data.ToString()); + FunctionList.List.groupControls.AddRange(groupControlInfoList); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + readSidList.Clear(); + } + } + if (readSidList.Count > 0) + { + var data = Ins.httpRequest.GetGroupControInfo(readSidList); + if (data != null) + { + if (data.Code == StateCode.SUCCESS) + { + var groupControlInfoList = JsonConvert.DeserializeObject<List<GroupControl>>(data.Data.ToString()); + FunctionList.List.groupControls.AddRange(groupControlInfoList); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + readSidList.Clear(); + } } catch (Exception ex) { diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs index 0795813..cc07f53 100644 --- a/HDL_ON/Common/R.cs +++ b/HDL_ON/Common/R.cs @@ -4,7 +4,10 @@ { public static class StringId { - + /// <summary> + /// 璇烽�夋嫨2涓互涓婄殑璁惧 + /// </summary> + public const int PlsSelectMoreData = 601; /// <summary> /// 娣诲姞缁勫悎璋冨厜 /// </summary> diff --git a/HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs b/HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs index b6c1cb3..704758b 100644 --- a/HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs +++ b/HDL_ON/Common/Utlis/FloorRoomSelectPopupView.cs @@ -131,7 +131,7 @@ /// <param name="i_listAllFun">鍏ㄩ儴鐨勮澶囧垪琛�,闇�瑕佹墜鍔ㄦ寚瀹�</param> /// <param name="SelectEvent">鏍规嵁閫夋嫨鐨勬潯浠�,绛涢�変箣鍚庣殑璁惧鍒楄〃(绗竴涓弬鏁版槸閫夋嫨鐨刄ID,涓嶇鏈夋病鏈夌敤,鎬讳箣鍏堣繑鍥�)</param> /// <param name="i_defultSelectId">榛樿鍝釜涓洪�夋嫨鐘舵��</param> - public void ShowDeviceFunctionView(Button btnFloor, List<Function> i_listAllFun, Action<string, List<Function>> SelectEvent, string i_defultSelectId = null) + public void ShowDeviceFunctionView(Button btnFloor, List<Function> i_listAllFun, Action<string, List<Function>> SelectEvent, string i_defultSelectId = null, int offsetY = 0) { //娓呯紦瀛� this.ClearMemory(); @@ -155,7 +155,7 @@ SelectEvent?.Invoke(this.nowShowSelectId, listDevice); SelectEvent = null; - }, i_defultSelectId); + }, i_defultSelectId, offsetY); } /// <summary> diff --git a/HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs b/HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs index 6c86100..020c744 100644 --- a/HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs +++ b/HDL_ON/Common/Utlis/FloorSelectPopupDialog.cs @@ -30,7 +30,7 @@ /// </summary> /// <param name="selectAction">鍥炶皟閫変腑浜嬩欢锛屽洖璋冮�変腑鐨剈id</param> /// <param name="selectTag">璁剧疆閫変腑鐨則ga鏍囪</param> - public void ShowView(Action<string> selectAction, string selectTag = DiySelectPopupDialog.ALLSELECT) + public void ShowView(Action<string> selectAction, string selectTag = DiySelectPopupDialog.ALLSELECT, int offsetY = 0) { //妤煎眰闆嗗悎鏁版嵁 var floorList = SpatialInfo.CurrentSpatial.FloorList; @@ -54,7 +54,7 @@ } //寮圭獥涓�绾ц仈鍔ㄩ�夋嫨绐楀彛 var roomSelectPopupDialog = new DiySelectPopupDialog(); - roomSelectPopupDialog.ShowView(mFirstList, null, selectAction, selectTag); + roomSelectPopupDialog.ShowView(mFirstList, null, selectAction, selectTag,offsetY); } else { @@ -80,7 +80,7 @@ } //寮圭獥浜岀骇鑱斿姩閫夋嫨绐楀彛 var roomSelectPopupDialog = new DiySelectPopupDialog(); - roomSelectPopupDialog.ShowView(mFirstList, mSecondList, selectAction, selectTag); + roomSelectPopupDialog.ShowView(mFirstList, mSecondList, selectAction, selectTag,offsetY); } diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs index 7aead41..12026aa 100644 --- a/HDL_ON/DAL/Mqtt/MqttClient.cs +++ b/HDL_ON/DAL/Mqtt/MqttClient.cs @@ -269,7 +269,7 @@ deviceOnlinePush, securityStatusChange}); //璁㈤槄缇ゆ帶鐘舵�� - if (DB_ResidenceData.Instance.CurrentRegion.isSupportGroupControl) + if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { await RemoteMqttClient.SubscribeAsync(groupControlStatus); } diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs index 0ae1596..6054436 100644 --- a/HDL_ON/DAL/Server/HttpServerRequest.cs +++ b/HDL_ON/DAL/Server/HttpServerRequest.cs @@ -3206,7 +3206,7 @@ /// <summary> /// 鑾峰彇缇ゆ帶璇︽儏 /// </summary> - public ResponsePackNew GetGroupControInfo(String userDeviceGroupControlIds) + public ResponsePackNew GetGroupControInfo(string userDeviceGroupControlIds) { Dictionary<string, object> d = new Dictionary<string, object>(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); @@ -3221,10 +3221,21 @@ } /// <summary> + /// 鑾峰彇缇ゆ帶璇︽儏 + /// </summary> + public ResponsePackNew GetGroupControInfo(List<string> ids) + { + Dictionary<string, object> d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("userDeviceGroupControlIds", ids); + var requestJson = HttpUtil.GetSignRequestJson(d); + var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGroupControlInfos, requestJson); + return pack; + } + + /// <summary> /// 娣诲姞缇ゆ帶鍒楄〃 /// </summary> - /// <param name="spk"></param> - /// <returns></returns> public ResponsePackNew AddGroupControl(List<GroupControl> groupControls) { Dictionary<string, object> d = new Dictionary<string, object>(); @@ -3233,6 +3244,20 @@ d.Add("infos", groupControls); var requestJson = HttpUtil.GetSignRequestJson(d); var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_AddGroupControl, requestJson); + return pack; + } + + + /// <summary> + /// 娣诲姞缇ゆ帶鍒楄〃 + /// </summary> + public ResponsePackNew DelGroupControl(string groupControlId) + { + Dictionary<string, object> d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("userDeviceGroupControlIds", new List<string>() { groupControlId }); + var requestJson = HttpUtil.GetSignRequestJson(d); + var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_DeleteGroupControl, requestJson); return pack; } @@ -3251,6 +3276,51 @@ return pack; } + + /// <summary> + /// 缇ゆ帶鎺у埗 + /// </summary> + public ResponsePackNew ControlGroupControl(string userDeviceGroupControlId, Dictionary<string, object> pair) + { + var d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("userDeviceGroupControlId", userDeviceGroupControlId); + List<Dictionary<string, object>> dd = new List<Dictionary<string, object>>(); + dd.Add(pair); + d.Add("status",dd); + + var requestJson = HttpUtil.GetSignRequestJson(d); + var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_ControlGroupControl, requestJson); + return pack; + } + + /// <summary> + /// 鏀惰棌缇ゆ帶 + /// </summary> + public ResponsePackNew CollectGroupControl(string groupControlId) + { + Dictionary<string, object> d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("userDeviceGroupControlIds", new List<string>() { groupControlId }); + var requestJson = HttpUtil.GetSignRequestJson(d); + var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CollectGroupControl, requestJson); + return pack; + } + + + /// <summary> + /// 鍙栨秷鏀惰棌缇ゆ帶 + /// </summary> + public ResponsePackNew CancelCollectGroupControl(string groupControlId) + { + Dictionary<string, object> d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("userDeviceGroupControlIds", new List<string>() { groupControlId }); + var requestJson = HttpUtil.GetSignRequestJson(d); + var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_CancelCollectGroupControl, requestJson); + return pack; + } + #endregion } diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs index 0d07a76..62b4b3f 100644 --- a/HDL_ON/DAL/Server/HttpUtil.cs +++ b/HDL_ON/DAL/Server/HttpUtil.cs @@ -239,6 +239,18 @@ else { HDL_ON.Utlis.WriteLine($"鎺ュ彛寮傚父:{requestFullUrl} \r\n"+response.Content); + if(response.Content!= null) + { + try + { + var pack = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(response.Content); + if (pack != null) + { + return pack; + } + } + catch { } + } return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; } diff --git a/HDL_ON/DAL/Server/NewApiRes.cs b/HDL_ON/DAL/Server/NewApiRes.cs index 955e396..8447527 100644 --- a/HDL_ON/DAL/Server/NewApiRes.cs +++ b/HDL_ON/DAL/Server/NewApiRes.cs @@ -633,6 +633,11 @@ /// </summary> public bool gatewayStatus; + /// <summary> + /// 鏄惁鏀寔缇ゆ帶 + /// </summary> + public bool isSupportGroupControl = false; + ///// <summary> ///// ///// </summary> diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs index 99332a5..f180034 100644 --- a/HDL_ON/Entity/Function/Function.cs +++ b/HDL_ON/Entity/Function/Function.cs @@ -562,11 +562,14 @@ new System.Threading.Thread(() => { if (spk == SPK.GroupControl) { + var groupControl = FunctionList.List.groupControls.Find((obj) => obj.sid == sid); if (collect) { + result = ApiUtlis.Ins.HttpRequest.CollectGroupControl(groupControl.userDeviceGroupControlId).Code; } else { + result = ApiUtlis.Ins.HttpRequest.CancelCollectGroupControl(groupControl.userDeviceGroupControlId).Code; } } else @@ -1514,7 +1517,7 @@ public const string HvacAC = "hvac.ac"; /// <summary> /// 姣涚粏绠$┖璋� - /// </summary> + /// </summaryc public const string HvacCac = "hvac.cac"; /// <summary> diff --git a/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs b/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs index 387964a..f64b239 100644 --- a/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs +++ b/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs @@ -131,10 +131,6 @@ /// 浜や粯閾炬帴 /// </summary> public string deliverUrl; - /// <summary> - /// 鏄惁鏀寔缇ゆ帶 - /// </summary> - public bool isSupportGroupControl = false; } } diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems index c9da4f9..8e6018b 100644 --- a/HDL_ON/HDL_ON.projitems +++ b/HDL_ON/HDL_ON.projitems @@ -544,6 +544,7 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\CommonMethod.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorLockPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorLockListPage.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\GroupControlPage.cs" /> </ItemGroup> <ItemGroup> <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" /> diff --git a/HDL_ON/UI/UI0-Public/DiySelectPopupDialog.cs b/HDL_ON/UI/UI0-Public/DiySelectPopupDialog.cs index 980ea4d..db258bb 100644 --- a/HDL_ON/UI/UI0-Public/DiySelectPopupDialog.cs +++ b/HDL_ON/UI/UI0-Public/DiySelectPopupDialog.cs @@ -70,7 +70,7 @@ /// <param name="mSecondList">浜岀骇鏁版嵁闆嗗悎</param> /// <param name="SelectAction">閫夋嫨鍥炶皟浜嬩欢</param> /// <param name="selectTagId"></param> - public void ShowView(List<RoomCellInfo> mFirstList, List<List<RoomCellInfo>> mSecondList, Action<string> SelectAction, string selectTagId = ALLSELECT) + public void ShowView(List<RoomCellInfo> mFirstList, List<List<RoomCellInfo>> mSecondList, Action<string> SelectAction, string selectTagId = ALLSELECT, int offsetY = 0) { if (mFirstList == null) { @@ -109,7 +109,7 @@ } //View鏄剧ず - ShowDoubleBaseView(); + ShowDoubleBaseView(offsetY); //鏁版嵁鍐呭濉厖 RefreshDoubleBaseView(); //閫変腑鏁堟灉 @@ -206,7 +206,7 @@ /// <summary> /// 鏄剧ず浜岀骇view /// </summary> - void ShowDoubleBaseView() + void ShowDoubleBaseView(int offsetY = 0) { bodyView.BackgroundColor = CSS_Color.DialogTransparentColor1; this.AddChidren(bodyView); @@ -218,7 +218,7 @@ BackView = new FrameLayout() { X = Application.GetRealWidth(10), - Y = Application.GetRealHeight(104), + Y = Application.GetRealHeight(104+ offsetY), Width = Application.GetRealWidth(283), Height = Application.GetRealWidth(242), }; diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs index 70a5fc2..631866a 100644 --- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs +++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs @@ -725,7 +725,7 @@ { int index = 0; var list = FunctionList.List.GetDeviceFunctionList(); - + list.AddRange(FunctionList.List.groupControls);//鍔犲叆缇ゆ帶 foreach (var function in list) { //闊充箰妯″潡鏈変富浠庡叧绯伙紝闇�瑕佺壒娈婂鐞� diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs index 221c195..8209237 100644 --- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs +++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs @@ -78,7 +78,10 @@ } btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png"; - + if(function.spk == SPK.GroupControl) + { + btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/lightswitch.png"; + } if (SPK.CurtainSpkList().Contains(function.spk)) {//绐楀笜娌℃湁寮�鍏虫寜閽� CurtainFragment(); diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs index 1fb2267..a639e02 100644 --- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs +++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs @@ -405,6 +405,17 @@ /// </summary> void LoadEvent_DivSkipEvent() { + if (function.spk == SPK.GroupControl) + { + EventHandler<MouseEventArgs> handler = (sender, e) => { + var dialog = new GroupControlPage(FunctionList.List.groupControls.Find((obj) => obj.sid == function.sid)); + dialog.ShowDialog(); + }; + this.MouseUpEventHandler = handler; + btnName.MouseUpEventHandler = handler; + btnFromFloor.MouseUpEventHandler = handler; + return; + } var eventHandler = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollectionIcon, btnName, btnFromFloor, UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.room,this.action); this.MouseUpEventHandler = eventHandler; btnName.MouseUpEventHandler = eventHandler; diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs index d304f4b..dee3d46 100644 --- a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs +++ b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs @@ -39,7 +39,7 @@ { bodyView.BackgroundColor = CSS_Color.BackgroundColor; - if (titleId == StringId.Lights && !DB_ResidenceData.Instance.CurrentRegion.isSupportGroupControl) + if (titleId == StringId.Lights && !DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { Action action = () => { diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs index c507931..b64cdd0 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs @@ -55,6 +55,10 @@ /// 鏄惁鏂板缇ゆ帶 /// </summary> bool isAdd = true; + /// <summary> + /// 缂栬緫鐨勭粍鎺ф暟鎹� + /// </summary> + string editDataString = ""; GroupControl groupControl; @@ -71,6 +75,7 @@ { isAdd = false; this.groupControl = groupControl; + editDataString = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl); } groupControlLightList = new List<Function>(); backActon = action; @@ -172,6 +177,7 @@ locationMagtView.AddChidren(btnLocationInfoRight); EventHandler<MouseEventArgs> eventHandler = (sender, e) => { + Application.HideSoftInput(); //淇敼鍔熻兘鎵�灞炴埧闂翠箣鍚庣殑鍥炶皟浜嬩欢 Action chooseRoomBackAction = () => { try @@ -278,7 +284,6 @@ bodyView.AddChidren(functionListView); - LoadLightRow(lightList); functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(10), @@ -308,6 +313,7 @@ TextSize = CSS_FontSize.SubheadingFontSize, SelectedTextColor = CSS_Color.MainBackgroundColor, SelectedBackgroundColor = CSS_Color.MainColor, + IsSelected = !isAdd }; bottomView.AddChidren(btnConfrim); btnConfrim.MouseUpEventHandler = (sender, e) => { @@ -320,59 +326,96 @@ new PublicAssmebly().TipMsg(StringId.Tip, StringId.PlsEntryGroupName); return; } - groupControl.name = name; - groupControl.sids.Clear(); - foreach (var light in groupControlLightList) + if (groupControlLightList.Count < 2) { + new PublicAssmebly().TipMsg(StringId.Tip, StringId.PlsSelectMoreData); + return; + } + if (isAdd) + { + groupControl.name = name; + groupControl.sids.Clear(); + foreach (var light in groupControlLightList) + { + try + { + var gc = new GroupControlFunction(); + gc.sid = light.sid; + gc.spk = light.spk; + groupControl.sids.Add(gc); + } + catch (Exception ex) + { + MainPage.Log($"鏂板缇ゆ帶杞崲鏁版嵁寮傚父:{ex.Message}"); + } + } try { - var gc = new GroupControlFunction(); - gc.sid = light.sid; - gc.spk = light.spk; - groupControl.sids.Add(gc); + groupControl.type = groupControlType.type; + groupControl.sid = groupControl.NewGroupControlSid(); + var pack = Common.ApiUtlis.Ins.HttpRequest.AddGroupControl(new List<GroupControl>() { groupControl }); + if (pack != null) + { + if (pack.Code == StateCode.SUCCESS) + { + backActon?.Invoke(); + this.RemoveFromParent(); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } } catch (Exception ex) { - MainPage.Log($"鏂板缇ゆ帶杞崲鏁版嵁寮傚父:{ex.Message}"); + MainPage.Log($"鏂板缇ゆ帶寮傚父:{ex.Message}"); } } - try + else { - var http = new HttpServerRequest(); - groupControl.type = groupControlType.type; - groupControl.sid = groupControl.NewGroupControlSid(); - var pack = http.AddGroupControl(new List<GroupControl>() { groupControl }); - if (pack != null) + try { - if(pack.Code == StateCode.SUCCESS) + var newEditDataString = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl); + //娌℃湁鏇存柊鏁版嵁鍒欑洿鎺ラ��鍑� + if (newEditDataString == editDataString) { - backActon?.Invoke(); this.RemoveFromParent(); + return; } - else + var pack = Common.ApiUtlis.Ins.HttpRequest.EditGroupControl(new List<GroupControl>() { groupControl }); + if (pack != null) { - IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + if (pack.Code == StateCode.SUCCESS) + { + backActon?.Invoke(); + this.RemoveFromParent(); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } } } - } - catch (Exception ex) - { - MainPage.Log($"鏂板缇ゆ帶寮傚父:{ex.Message}"); + catch (Exception ex) + { + MainPage.Log($"缂栬緫缇ゆ帶寮傚父:{ex.Message}"); + } + } } }; #endregion - //鍔犺浇鍔熻兘绛涢�夌粍浠� + LoadDialog_ChangeFloor(); new Thread(() => { - var http = new HttpServerRequest(); if (isAdd) { - var pack = http.GetGroupControlTypes("light.switch"); + var pack = Common.ApiUtlis.Ins.HttpRequest.GetGroupControlTypes("light.switch"); if (pack != null) { if (pack.Code == StateCode.SUCCESS) @@ -384,6 +427,9 @@ if (groupControlTypes != null && groupControlTypes.Count > 0) { groupControlType = groupControlTypes[0]; + Application.RunOnMainThread(() => { + LoadLightRow(lightList); + }); } } catch (Exception ex) @@ -399,7 +445,7 @@ } else { - var pack = http.GetGroupControInfo(groupControl.userDeviceGroupControlId); + var pack = Common.ApiUtlis.Ins.HttpRequest.GetGroupControInfo(groupControl.userDeviceGroupControlId); if (pack != null) { if (pack.Code == StateCode.SUCCESS) @@ -411,6 +457,10 @@ if (groupControlTemps != null && groupControlTemps.Count > 0) { groupControl = groupControlTemps[0]; + Application.RunOnMainThread(() => + { + LoadLightRow(lightList); + }); } } catch (Exception ex) @@ -558,6 +608,7 @@ string nowSelectId = null; btnFloor.MouseUpEventHandler += (sender, e) => { + Application.HideSoftInput(); //鏄剧ず涓嬫媺鍒楄〃 var form = new FloorRoomSelectPopupView(); form.ShowDeviceFunctionView(btnFloor, this.lightList, (selectId, listFunc) => @@ -580,1044 +631,11 @@ nowSelectId = selectId; //閲嶆柊鍔犺浇鐣岄潰 LoadLightRow(listFunc); - }, nowSelectId); + }, nowSelectId,100); }; } } - - //public class LightRow : FrameLayout - //{ - // #region 鍖哄煙鎺т欢 - // static FrameLayout bodyDiv; - // /// <summary> - // /// 鍔熻兘/鍦烘櫙icon - // /// </summary> - // Button btnIcon; - // /// <summary> - // /// 鍔熻兘鍚嶇О/鍦烘櫙鍚嶇О - // /// </summary> - // Button btnName; - // /// <summary> - // /// 妤煎眰淇℃伅鏄剧ず鎸夐挳 - // /// </summary> - // Button btnFromFloor; - // /// <summary> - // /// 閫変腑鎸夐挳 - // /// </summary> - // Button btnSelect; - // #endregion - - // #region 鍖哄煙鍙橀噺 - // Function function; - // #endregion - // public LightRow(Function func) - // { - // bodyDiv = this; - // bodyDiv.Tag = func.sid; - // function = func; - // } - - - // /// <summary> - // /// 鍔犺浇鎺у埗鍗$墖鍖哄煙 - // /// </summary> - // public void LoadDiv(List<Function> functions, Action action) - // { - // btnIcon = new Button() - // { - // X = Application.GetRealWidth(10), - // Y = Application.GetRealHeight(15), - // Width = Application.GetRealWidth(32), - // Height = Application.GetRealWidth(32), - // UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png" - // }; - // bodyDiv.AddChidren(btnIcon); - - // btnName = new Button() - // { - // X = Application.GetRealWidth(8 + 10 + 32), - // Y = Application.GetRealHeight(10), - // Width = Application.GetRealWidth(200), - // Height = Application.GetRealHeight(24), - // Text = function.name, - // TextAlignment = TextAlignment.CenterLeft, - // TextColor = CSS_Color.FirstLevelTitleColor, - // TextSize = CSS_FontSize.TextFontSize, - // }; - // bodyDiv.AddChidren(btnName); - - // btnFromFloor = new Button() - // { - // X = Application.GetRealWidth(8 + 10 + 32), - // Y = Application.GetRealHeight(10 + 24), - // Width = Application.GetRealWidth(200), - // Height = Application.GetRealHeight(18), - // Text = function.GetRoomListName(), - // TextAlignment = TextAlignment.CenterLeft, - // TextColor = CSS_Color.PromptingColor1, - // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - // }; - // bodyDiv.AddChidren(btnFromFloor); - - // btnSelect = new Button() - // { - // X = Application.GetRealWidth(303), - // Gravity = Gravity.CenterVertical, - // Width = Application.GetRealWidth(32), - // Height = Application.GetRealWidth(32), - // UnSelectedImagePath = "FunctionIcon/Light/LightScene/CheckIcon.png", - // SelectedImagePath = "FunctionIcon/Light/LightScene/CheckOnIcon.png", - // IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null - // }; - // bodyDiv.AddChidren(btnSelect); - - // btnSelect.MouseUpEventHandler = (sender, e) => { - // btnSelect.IsSelected = !btnSelect.IsSelected; - // if (btnSelect.IsSelected) - // { - // var addTemp = functions.Find((obj) => obj.deviceId == function.deviceId); - // if (addTemp == null) - // { - // functions.Add(function); - // } - // } - // else - // { - // var removeTemp = functions.Find((obj) => obj.deviceId == function.deviceId); - // if (removeTemp != null) - // { - // functions.Remove(removeTemp); - // } - // } - // ///鍒锋柊鐣岄潰 - // if (functions.Count == 0 || functions.Count == 1) - // { - // action(); - // } - // }; - - // } - - - //} - - ///// <summary> - ///// 鐏厜鍦烘櫙缂栬緫寮圭獥 - ///// </summary> - //public class LightSceneEditDialog : Dialog - //{ - - - // Dictionary<string, string> d = new Dictionary<string, string>(); - // List<Function> listSwitch = new List<Function>(); - // List<Function> lightDimming = new List<Function>(); - // List<Function> lightCCT = new List<Function>(); - // List<Function> lightRGB = new List<Function>(); - - // /// <summary> - // /// 浼犲叆鐨勭伅鍏夊垪琛� - // /// 鍔犲叆鍦烘櫙鎺у埗鍔熻兘鍒楄〃 - // /// </summary> - // List<Function> lights; - // /// <summary> - // /// 涓存椂鐏厜瀵硅薄 - // /// 澶勭悊鐏厜鏂规硶 - // /// </summary> - // Light tempLight = new Light(); - // //鍙戦�佹暟鎹敹闆� - // Dictionary<string, string> commandDic = new Dictionary<string, string>(); - - // Scene scene; - // Action<Scene> backAction; - // public LightSceneEditDialog(List<Function> functions, Scene inParScene, Action<Scene> action) - // { - // lights = functions; - // scene = inParScene; - // backAction = action; - // } - - - // public void ShowDialog() - // { - // commandDic.Clear(); - // commandDic.Add(FunctionAttributeKey.OnOff, "off"); - - // listSwitch = lights.FindAll((obj) => obj.spk == SPK.LightSwitch); - // lightDimming = lights.FindAll((obj) => obj.spk == SPK.LightDimming); - // lightCCT = lights.FindAll((obj) => obj.spk == SPK.LightCCT); - // lightRGB = lights.FindAll((obj) => obj.spk == SPK.LightRGB); - - - - // var hadDimming = lightDimming.Count > 0; - // var hadCCT = lightCCT.Count > 0; - // var hadRGB = lightRGB.Count > 0; - // if (hadRGB) - // { - // commandDic.Add(FunctionAttributeKey.RGB, lightRGB[0].GetAttrState(FunctionAttributeKey.RGB)); - // commandDic.Add(FunctionAttributeKey.Brightness, lightRGB[0].GetAttrState(FunctionAttributeKey.Brightness)); - // } - // if (hadCCT) - // { - // commandDic.Add(FunctionAttributeKey.CCT, lightCCT[0].GetAttrState(FunctionAttributeKey.CCT)); - // if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness)) - // { - // commandDic.Add(FunctionAttributeKey.Brightness, lightCCT[0].GetAttrState(FunctionAttributeKey.Brightness)); - // } - // } - // if (hadDimming) - // { - // if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness)) - // { - // commandDic.Add(FunctionAttributeKey.Brightness, lightDimming[0].GetAttrState(FunctionAttributeKey.Brightness)); - // } - // } - - // var bodyView = new FrameLayout(); - // this.AddChidren(bodyView); - // bodyView.MouseUpEventHandler = (sender, e) => { - // this.Close(); - // }; - - // var contentView = new FrameLayout() - // { - // BackgroundColor = CSS_Color.MainBackgroundColor, - // Width = Application.GetRealWidth(343), - // Radius = (uint)Application.GetRealWidth(12), - // }; - // bodyView.AddChidren(contentView); - - // #region 鏍囬鍖� - // var titleView = new FrameLayout() - // { - // Width = Application.GetRealWidth(343), - // Height = Application.GetRealHeight(52), - // }; - // contentView.AddChidren(titleView); - - // var btnTitle = new Button() - // { - // Height = Application.GetRealHeight(52), - // Gravity = Gravity.Center, - // TextSize = CSS_FontSize.SubheadingFontSize, - // TextColor = CSS_Color.MainColor, - // TextID = StringId.CombinedDimming, - // TextAlignment = TextAlignment.Center, - // }; - // if (btnTitle.GetTextWidth() > Application.GetRealWidth(197))//247 - // { - // btnTitle.Width = Application.GetRealWidth(197); - // btnTitle.IsMoreLines = true; - // } - // else - // { - // btnTitle.Width = btnTitle.GetTextWidth() + Application.GetRealWidth(10); - // btnTitle.IsMoreLines = false; - // } - // titleView.AddChidren(btnTitle); - - // var btnEditIcon = new Button() - // { - // Width = Application.GetRealWidth(24), - // Height = Application.GetRealWidth(24), - // X = Application.GetRealWidth(12) + btnTitle.Right, - // Gravity = Gravity.CenterVertical, - // UnSelectedImagePath = "Public/Edit.png", - // }; - // if (string.IsNullOrEmpty(scene.userSceneId)) - // { - // titleView.AddChidren(btnEditIcon); - // } - // else - // { - // btnTitle.Text = scene.name; - // btnTitle.Width = btnTitle.GetTextWidth() + Application.GetRealWidth(10); - // btnTitle.Gravity = Gravity.Center; - // } - - // Action<string> callBack = (str) => - // { - // //鍚嶇О涓嶈兘涓虹┖ - // if (string.IsNullOrEmpty(str)) - // { - // new Tip() - // { - // CloseTime = 1, - // Text = Language.StringByID(StringId.NameCannotBeEmpty), - // Direction = AMPopTipDirection.None, - // }.Show(bodyView); - // return; - // } - // btnTitle.Text = str; - // scene.name = str; - - - // if (btnTitle.GetTextWidth() > Application.GetRealWidth(197))//247 - // { - // btnTitle.Width = Application.GetRealWidth(197); - // } - // else - // { - // btnTitle.Width = btnTitle.GetTextWidth(); - // } - - // }; - // EventHandler<MouseEventArgs> eventHandler = (sender, e) => - // { - // List<string> sceneNameList = new List<string>(); - // foreach (var tempScene in FunctionList.List.scenes) - // { - // sceneNameList.Add(tempScene.name); - // } - // new PublicAssmebly().LoadDialog_EditParater(StringId.SceneName, scene.name, callBack, StringId.SceneNameCannotBeEmpty, StringId.SceneNameAlreadyExists, sceneNameList); - // }; - // btnTitle.MouseUpEventHandler = eventHandler; - // btnEditIcon.MouseUpEventHandler = eventHandler; - - // titleView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor, Y = Application.GetRealHeight(51) }); - - // #endregion - - - // //var dimmingLight = lights.Find((obj) => obj.spk == SPK.LightDimming); - // //var cctLight = lights.Find((obj) => obj.spk == SPK.LightCCT); - // //var rgbLight = lights.Find((obj) => obj.spk == SPK.LightRGB); - // var dimmingLight = scene.functions.Find((obj) => obj.localFunction.spk == SPK.LightDimming); - // var cctLight = scene.functions.Find((obj) => obj.localFunction.spk == SPK.LightCCT); - // var rgbLight = scene.functions.Find((obj) => obj.localFunction.spk == SPK.LightRGB); - - // var brightnessValue = 0; - // var cctValue = 27; - // //if(rgbLight!= null) - // //{ - // // int.TryParse(rgbLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue); - // //} - // //if (cctLight != null) - // //{ - // // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue); - // // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cctValue); - // //} - // //if(dimmingLight!=null) - // //{ - // // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out brightnessValue); - // //} - - - // //灞炴�ц缃尯鍩� - // var attrView = new VerticalScrolViewLayout() - // { - // Y = Application.GetRealHeight(52), - // Width = Application.GetRealWidth(343), - // ScrollEnabled = false, - // }; - // //灞炴�ц缃尯鍩熼珮搴� - // int attrViewHight = Application.GetRealHeight(18 + 22); - - - // //鍙湁缁х數鍣� - // if (!hadDimming && !hadCCT && !hadRGB) - // { - // attrViewHight += Application.GetRealHeight(50); - // attrView.Height = attrViewHight; - // contentView.AddChidren(attrView); - // attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) }); - - // var view = new FrameLayout() - // { - // Width = Application.GetRealWidth(343), - // Height = Application.GetRealHeight(50), - // }; - // attrView.AddChidren(view); - - - // var btnClose = new Button() - // { - // X = Application.GetRealWidth(50), - // Gravity = Gravity.CenterVertical, - // Width = Application.GetRealWidth(98), - // Height = Application.GetRealHeight(40), - // TextColor = CSS_Color.TextualColor, - // SelectedBackgroundColor = CSS_Color.MainColor, - // SelectedTextColor = CSS_Color.MainBackgroundColor, - // BackgroundColor = CSS_Color.DividingLineColor, - // TextID = StringId.OFF, - // TextSize = CSS_FontSize.TextFontSize, - // Radius = (uint)Application.GetRealWidth(5), - // IsSelected = true, - // //BorderWidth = 1, - // //BorderColor = 0x00000000 - // }; - // view.AddChidren(btnClose); - - // var btnOpen = new Button() - // { - // X = Application.GetRealWidth(100 + 98), - // Gravity = Gravity.CenterVertical, - // Width = Application.GetRealWidth(98), - // Height = Application.GetRealHeight(40), - // TextColor = CSS_Color.TextualColor, - // SelectedBackgroundColor = CSS_Color.MainColor, - // SelectedTextColor = CSS_Color.MainBackgroundColor, - // BackgroundColor = CSS_Color.DividingLineColor, - // TextID = StringId.On, - // TextSize = CSS_FontSize.TextFontSize, - // Radius = (uint)Application.GetRealWidth(5), - // }; - // view.AddChidren(btnOpen); - - // btnClose.MouseUpEventHandler = (sender, e) => - // { - // btnClose.IsSelected = true; - // btnOpen.IsSelected = false; - // commandDic[FunctionAttributeKey.OnOff] = "off"; - // d.Clear(); - // d.Add(FunctionAttributeKey.OnOff, "off"); - // foreach (var light in lights) - // { - // Control.Ins.SendWriteCommand(light, d); - // } - // }; - // btnOpen.MouseUpEventHandler = (sender, e) => - // { - // btnClose.IsSelected = false; - // btnOpen.IsSelected = true; - // commandDic[FunctionAttributeKey.OnOff] = "on"; - // d.Clear(); - // d.Add(FunctionAttributeKey.OnOff, "on"); - // foreach (var light in lights) - // { - // Control.Ins.SendWriteCommand(light, d); - // } - // }; - - // } - - // else - // { - // if (hadRGB) - // { - // attrViewHight += Application.GetRealHeight(248); - // hadDimming = true; - // } - // if (hadCCT) - // { - // attrViewHight += Application.GetRealHeight(54 + 11); - // hadDimming = true; - // } - // if (hadDimming) - // { - // attrViewHight += Application.GetRealHeight(54 + 11); - // } - // attrView.Height = attrViewHight; - // contentView.AddChidren(attrView); - // attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) }); - - - // if (hadDimming) - // { - // LoadDimmingAttrView(attrView); - // } - // if (hadCCT) - // { - // LoadCctAttrView(attrView); - // } - // if (hadRGB) - // { - // LoadRgbAttrView(attrView); - // } - // } - - // contentView.Height = Application.GetRealHeight(52 + 44) + attrViewHight; - // contentView.Gravity = Gravity.Center; - - - - - // #region bottom View - // var bottomView = new FrameLayout() - // { - // Y = Application.GetRealHeight(52) + attrViewHight, - // Height = Application.GetRealHeight(46), - // }; - // contentView.AddChidren(bottomView); - // bottomView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor }); - - // if (string.IsNullOrEmpty(scene.userSceneId)) - // { - // var btnCacel = new Button() - // { - // Width = Application.GetRealWidth(172), - // Height = Application.GetRealHeight(44), - // TextAlignment = TextAlignment.Center, - // TextSize = CSS_FontSize.SubheadingFontSize, - // TextColor = CSS_Color.TextualColor, - // TextID = StringId.Cancel, - // }; - // bottomView.AddChidren(btnCacel); - - // var btnSave = new Button() - // { - // X = Application.GetRealWidth(172), - // Width = Application.GetRealWidth(172), - // Height = Application.GetRealHeight(46), - // BackgroundColor = CSS_Color.MainColor, - // TextColor = CSS_Color.MainBackgroundColor, - // TextAlignment = TextAlignment.Center, - // TextSize = CSS_FontSize.SubheadingFontSize, - // TextID = StringId.Save - // }; - // bottomView.AddChidren(btnSave); - - // //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 - // int mRectCornerID = HDLUtils.RectCornerBottomRight; - // btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID); - - // btnCacel.MouseUpEventHandler = (sender, e) => - // { - // this.Close(); - - // //var waitPage = new Loading(); - // //MainPage.BaseView.AddChidren(waitPage); - // //waitPage.Start(Language.StringByID(StringId.PleaseWait)); - // //new Thread(() => - // //{ - // // try - // // { - // // foreach (var light in lights) - // // { - // // Dictionary<string, string> sendDate = new Dictionary<string, string>(); - // // //璧嬪�煎満鏅姛鑳芥暟鎹� - // // foreach (var attr in light.GetAttributes()) - // // { - // // if (commandDic.ContainsKey(attr)) - // // { - // // try - // // { - // // sendDate.Add(attr, commandDic[attr]); - // // } - // // catch { } - // // } - - // // } - // // Control.Ins.SendWriteCommand(light, sendDate); - // // Thread.Sleep(50); - // // } - // // } - // // catch - // // { } - // // finally - // // { - // // Application.RunOnMainThread(() => - // // { - // // waitPage.Hide(); - // // new PublicAssmebly().TipMsgAutoClose("缁勫悎鎺у埗宸叉墽琛�", true); - // // if (waitPage != null) - // // { - // // //backAction(null); - // // waitPage.RemoveFromParent(); - // // } - // // }); - // // } - // //}) - // //{ IsBackground = true }.Start(); - // }; - - // btnSave.MouseUpEventHandler = (sender, e) => - // { - // if (string.IsNullOrEmpty(scene.name)) - // { - // new Tip() - // { - // CloseTime = 1, - // Text = Language.StringByID(StringId.NameCannotBeEmpty), - // Direction = AMPopTipDirection.None, - // }.Show(bodyView); - // return; - // } - // foreach (var tempRoom in FunctionList.List.scenes) - // { - // if (scene.name == tempRoom.name) - // { - // new PublicAssmebly().TipMsg(StringId.Tip, StringId.NameAlreadyExists); - // return; - // } - // } - // var waitPage = new Loading(); - // MainPage.BaseView.AddChidren(waitPage); - // waitPage.Start(Language.StringByID(StringId.PleaseWait)); - // new Thread(() => - // { - // try - // { - // var serverScene = new Scene(); - // for (int i = 0; i < lights.Count; i++) - // { - // var light = lights[i]; - // //璧嬪�煎満鏅姛鑳芥暟鎹� - // foreach (var attr in light.GetAttributes()) - // { - // if (commandDic.ContainsKey(attr)) - // { - // try - // { - // light.SetAttrState(attr, commandDic[attr]); - // } - // catch { } - // } - // } - // //杞崲鍦烘櫙鐨勫姛鑳藉璞� - // var sceneFunction = light.ConvertSceneFunction(); - // //鏌ヨ鏈夋病鏈夊瓨鍦� - // var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid); - // //璧嬪�� - // if (temp != null) - // { - // temp = sceneFunction; - // } - // else - // { - // scene.functions.Add(sceneFunction); - // } - // } - // var result = FunctionList.List.AddScene(scene, out serverScene); - // Application.RunOnMainThread(() => - // { - // if (result == StateCode.SUCCESS) - // { - // scene.userSceneId = serverScene.userSceneId; - // FunctionList.List.scenes.Add(scene); - // backAction?.Invoke(scene); - // this.Close(); - // } - // else - // { - // if (result == "124005") - // IMessageCommon.Current.ShowErrorInfoAlter(Language.StringByID(StringId.GatewayOffline)); - // else - // IMessageCommon.Current.ShowErrorInfoAlter(result); - // } - // }); - // } - // catch { } - // finally - // { - // Application.RunOnMainThread(() => - // { - // waitPage.Hide(); - // waitPage.RemoveFromParent(); - // }); - // } - // }) - // { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start(); - // }; - // } - // else - // { - // var btnCacel = new Button() - // { - // Height = Application.GetRealHeight(44), - // TextAlignment = TextAlignment.Center, - // TextSize = CSS_FontSize.SubheadingFontSize, - // TextColor = CSS_Color.TextualColor, - // TextID = StringId.Close, - // }; - // bottomView.AddChidren(btnCacel); - - - // //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 - // //int mRectCornerID = HDLUtils.RectCornerBottomRight; - // //btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID); - - // btnCacel.MouseUpEventHandler = (sender, e) => - // { - // this.Close(); - // }; - - // } - - - - - - // #endregion - - - // this.Show(); - - // } - - // /// <summary> - // /// 鍔犺浇璋冨厜灞炴�ц缃帶浠� - // /// </summary> - // /// <param name="attrView"></param> - // void LoadDimmingAttrView(VerticalScrolViewLayout attrView) - // { - // string briValue = ""; - // commandDic.TryGetValue(FunctionAttributeKey.Brightness, out briValue); - - // var dimmingView = new FrameLayout() - // { - // Height = Application.GetRealHeight(54 + 11) - // }; - // attrView.AddChidren(dimmingView); - - // #region 浜害璋冭妭 - // var btnBrightnessText = new Button() - // { - // X = Application.GetRealWidth(35), - // Y = Application.GetRealHeight(1), - // Width = Application.GetRealWidth(224), - // Height = Application.GetRealHeight(25), - // TextAlignment = TextAlignment.CenterLeft, - // TextColor = CSS_Color.FirstLevelTitleColor, - // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - // TextID = StringId.Brightness, - // }; - // btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + commandDic[FunctionAttributeKey.Brightness] + "%"; - // dimmingView.AddChidren(btnBrightnessText); - - - // var btnMinValuesText = new Button() - // { - // X = Application.GetRealWidth(35), - // Y = btnBrightnessText.Bottom, - // Width = Application.GetRealWidth(40), - // Height = Application.GetRealHeight(21), - // Text = "0%", - // TextAlignment = TextAlignment.CenterLeft, - // TextColor = CSS_Color.PromptingColor1, - // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - // }; - // dimmingView.AddChidren(btnMinValuesText); - - // var dimmerBar = new DiyImageSeekBar() - // { - // X = Application.GetRealWidth(45 + 10), - // Y = Application.GetRealHeight(11), - // Width = Application.GetRealWidth(220), - // Height = Application.GetRealHeight(54), - // SeekBarViewHeight = Application.GetRealHeight(8), - // ThumbImagePath = "Public/ThumbImage.png", - // ThumbImageHeight = Application.GetRealHeight(54), - // ProgressTextColor = CSS_Color.FirstLevelTitleColor, - // ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, - // ProgressBarColor = CSS_Color.AuxiliaryColor1, - // MaxValue = 100, - // Progress = Convert.ToInt32(commandDic[FunctionAttributeKey.Brightness]), - // SeekBarPadding = Application.GetRealWidth(20), - // IsProgressTextShow = false, - // ProgressChangeDelayTime = 0, - // }; - // dimmingView.AddChidren(dimmerBar); - // dimmerBar.OnProgressChangedEvent = (sender, e) => { - // btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%"; - // }; - // dimmerBar.OnStopTrackingTouchEvent = (sender, e) => { - // commandDic[FunctionAttributeKey.Brightness] = dimmerBar.Progress.ToString(); - // btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%"; - - // foreach (var light in lights) - // { - // if (light.spk == SPK.LightSwitch) - // { - // d.Clear(); - // d.Add(FunctionAttributeKey.OnOff, e > 0 ? "on" : "off"); - // Control.Ins.SendWriteCommand(light, d); - // } - // else - // { - // d.Clear(); - // d.Add(FunctionAttributeKey.Brightness, e.ToString()); - // Control.Ins.SendWriteCommand(light, d); - // } - // } - // }; - - - // var btnMaxValuesText = new Button() - // { - // X = dimmerBar.Right, - // Y = btnBrightnessText.Bottom, - // Width = Application.GetRealWidth(55), - // Height = Application.GetRealHeight(21), - // Text = "100%", - // TextAlignment = TextAlignment.CenterLeft, - // TextColor = CSS_Color.PromptingColor1, - // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - // }; - // dimmingView.AddChidren(btnMaxValuesText); - // #endregion - - // } - - // /// <summary> - // /// 鍔犺浇cct灞炴�ц缃帶浠� - // /// </summary> - // /// <param name="attrView"></param> - // void LoadCctAttrView(VerticalScrolViewLayout attrView) - // { - // #region 鑹叉俯 - - // string valueStr = "2700"; - // commandDic.TryGetValue(FunctionAttributeKey.CCT, out valueStr); - // int value = Convert.ToInt32(valueStr) / 100; - - // var cctView = new FrameLayout() - // { - // Height = Application.GetRealHeight(54 + 11) - // }; - // attrView.AddChidren(cctView); - - - // //鑹叉俯 - // var btnTempClolor = new Button(); - // btnTempClolor.X = Application.GetRealWidth(35); - // btnTempClolor.Y = Application.GetRealHeight(1); - // btnTempClolor.Width = Application.GetRealWidth(224); - // btnTempClolor.Height = Application.GetRealHeight(21); - // btnTempClolor.TextAlignment = TextAlignment.CenterLeft; - // btnTempClolor.TextColor = CSS_Color.FirstLevelTitleColor; - // btnTempClolor.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; - // btnTempClolor.TextID = StringId.ColorTemperature; - // cctView.AddChidren(btnTempClolor); - - // //2700K - // var btnTempClolorMin = new Button() - // { - // X = Application.GetRealWidth(35), - // Y = btnTempClolor.Bottom, - // Width = Application.GetRealWidth(40), - // Height = Application.GetRealHeight(21), - // }; - // btnTempClolorMin.Width = Application.GetRealWidth(54); - // btnTempClolorMin.Height = Application.GetRealHeight(21); - // btnTempClolorMin.Text = "2700K"; - // btnTempClolorMin.TextAlignment = TextAlignment.CenterLeft; - // btnTempClolorMin.TextColor = CSS_Color.PromptingColor1; - // btnTempClolorMin.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; - // cctView.AddChidren(btnTempClolorMin); - - // //婊戝姩鏉$殑鑳屾櫙鍥剧墖 - // var btnColorTemplatrueBack = new Button() - // { - // X = Application.GetRealWidth(55 + 22 + 15), - // Y = Application.GetRealHeight(11), - // Width = Application.GetRealWidth(180), - // Height = Application.GetRealHeight(54), - // }; - // btnColorTemplatrueBack.UnSelectedImagePath = "FunctionIcon/Light/ColorTemperatureBar.png"; - // btnColorTemplatrueBack.Height = Application.GetRealHeight(8); - // btnColorTemplatrueBack.Gravity = Gravity.CenterHorizontal; - // cctView.AddChidren(btnColorTemplatrueBack); - // //婊戝姩鏉℃帶浠� - // var barColorTemplatrue = new CCTSeekBarControl() - // { - // X = Application.GetRealWidth(55 + 22), - // Y = Application.GetRealHeight(11), - // Width = Application.GetRealWidth(220), - // Height = Application.GetRealHeight(54), - // }; - // barColorTemplatrue.MinValue = 27; - // barColorTemplatrue.MaxValue = 65; - // barColorTemplatrue.ProgressBarColor = 0x00000000;//鍏ㄩ儴閫忔槑 - // barColorTemplatrue.ProgressBarUnEnableColor = 0x00000000; - // barColorTemplatrue.SeekBarBackgroundColor = 0x00000000; - // cctView.AddChidren(barColorTemplatrue); - // barColorTemplatrue.Y = btnTempClolorMin.Y - (barColorTemplatrue.Height - btnTempClolorMin.Height) / 2; - // barColorTemplatrue.Progress = value; - // //璁剧疆鍒濆鍊� - // btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K"); - // barColorTemplatrue.OnProgressChangedEvent = (sender, e) => - // { - // btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K"); - // }; - // barColorTemplatrue.OnStopTrackingTouchEvent = (sender, e) => - // { - // commandDic[FunctionAttributeKey.CCT] = (barColorTemplatrue.Progress * 100).ToString(); - - // d.Clear(); - // d.Add(FunctionAttributeKey.CCT, (barColorTemplatrue.Progress * 100).ToString()); - // foreach (var light in lightCCT) - // { - // if (light.spk == SPK.LightCCT) - // { - // Control.Ins.SendWriteCommand(light, d); - // } - // } - // }; - // //鍙樻洿鑳屾櫙鍥剧殑Y杞村潗鏍� - // btnColorTemplatrueBack.Y = barColorTemplatrue.Y + (barColorTemplatrue.Height - btnColorTemplatrueBack.Height) / 2; - - // //6500K - // var btnTempClolorMax = new Button(); - // btnTempClolorMax.Y = btnTempClolorMin.Y; - // btnTempClolorMax.X = barColorTemplatrue.Right - Application.GetRealWidth(30); - // btnTempClolorMax.Width = Application.GetRealWidth(54); - // btnTempClolorMax.Height = Application.GetRealHeight(21); - // btnTempClolorMax.Text = "6500K"; - // btnTempClolorMax.TextAlignment = TextAlignment.CenterRight; - // btnTempClolorMax.TextColor = CSS_Color.PromptingColor1; - // btnTempClolorMax.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; - // cctView.AddChidren(btnTempClolorMax); - - // #endregion - - - // } - - // /// <summary> - // /// 鍔犺浇rgb灞炴�ц缃帶浠� - // /// </summary> - // /// <param name="attrView"></param> - // void LoadRgbAttrView(VerticalScrolViewLayout attrView) - // { - - // #region RGB - - // string value = "255,255,255"; - // commandDic.TryGetValue(FunctionAttributeKey.RGB, out value); - - // var rgbView = new FrameLayout() - // { - // Height = Application.GetRealHeight(248) - // }; - // attrView.AddChidren(rgbView); - - - // var btnCurColor = new Button() - // { - // X = Application.GetRealWidth(24), - // Y = Application.GetRealHeight(10), - // Width = Application.GetMinRealAverage(24), - // Height = Application.GetMinRealAverage(24), - // Radius = (uint)Application.GetMinRealAverage(8), - // BorderColor = CSS_Color.PromptingColor2, - // BorderWidth = 1, - // BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(commandDic[FunctionAttributeKey.RGB])) - // }; - // rgbView.AddChidren(btnCurColor); - - // //鑹茬洏鐨勬甯冩帶浠�(闄愬埗閭d釜鐧借壊婊戝姩鐞冧娇鐢�) - // var framePickerBack = new FrameLayout(); - // framePickerBack.Gravity = Gravity.CenterHorizontal; - // framePickerBack.Y = Application.GetRealHeight(20); - // framePickerBack.Width = Application.GetMinRealAverage(198); - // framePickerBack.Height = Application.GetMinRealAverage(198); - // rgbView.AddChidren(framePickerBack); - - // var colorPicker = new ColorPicker() - // { - // ColorImagePath = "FunctionIcon/Light/ColorWheel.png", - // }; - // framePickerBack.AddChidren(colorPicker); - - - - - - - // //鐧界偣鎺т欢 - // var btnWhiteRound = new Button(); - // btnWhiteRound.Width = Application.GetRealWidth(24); - // btnWhiteRound.Height = Application.GetRealWidth(24); - // btnWhiteRound.UnSelectedImagePath = "FunctionIcon/Light/ColorWheelTip.png"; - // btnWhiteRound.Visible = false; - // framePickerBack.AddChidren(btnWhiteRound); - - - // //褰撳墠鐐瑰嚮鐨勩�愮偣銆戞槸鍚︽纭� - // bool pointIsRight = false; - // //鍦嗙殑鍗婂緞(鑰冭檻杈圭晫,闇�瑕佽缃畠鐨勫崐寰勬瘮杈冨皬涓�鐐�) - // int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12); - - // colorPicker.MouseUpEventHandler = (sender2, e) => { - // d.Clear(); - // d.Add(FunctionAttributeKey.RGB, commandDic[FunctionAttributeKey.RGB]); - // foreach (var light in lightCCT) - // { - // if (light.spk == SPK.LightCCT) - // { - // Control.Ins.SendWriteCommand(light, d); - // } - // } - // }; - // colorPicker.ColorChaged += (sender2, e2) => { - // string rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString(); - // commandDic[FunctionAttributeKey.RGB] = rgbString; - // btnCurColor.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString)); - // foreach (var rgbTemp in lightRGB) - // { - // rgbTemp.SetAttrState(FunctionAttributeKey.RGB, rgbString); - // } - // }; - // colorPicker.MouseDownEventHandler += (sender, e) => - // { - // pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y); - // if (pointIsRight == false) - // { - // //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐� - // return; - // } - // //鏄剧ず鐧界偣 - // btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2; - // btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2; - // if (btnWhiteRound.Visible == false) - // { - // btnWhiteRound.Visible = true; - // } - // }; - // colorPicker.MouseUpEventHandler = (sender, e) => { - // foreach (var rgbTemp in lightRGB) - // { - // Dictionary<string, string> d = new Dictionary<string, string>(); - // d.Add(FunctionAttributeKey.RGB, tempLight.GetRGBcolorString(rgbTemp)); - // Control.Ins.SendWriteCommand(rgbTemp, d, false, 0); - // } - // }; - - // colorPicker.MouseMoveEventHandler += (sender, e) => - // { - // //褰撻紶鏍囩偣涓嬩簨浠跺鐞� - // colorPicker.MouseDownEventHandler(sender, e); - // }; - - - // #endregion - - // } - - - // /// <summary> - // /// 妫�娴嬬偣鍑荤偣 - // /// </summary> - // /// <param name="circleR">鍦嗙殑鍗婂緞</param> - // /// <param name="circleX">鍦嗗績X杞�</param> - // /// <param name="circleY">鍦嗗績Y杞�</param> - // /// <param name="pointX">鐐瑰嚮鐐圭殑X杞�</param> - // /// <param name="pointY">鐐瑰嚮鐐圭殑Y杞�</param> - // /// <returns></returns> - // private bool CheckPoint(int circleR, int circleX, int circleY, int pointX, int pointY) - // { - // int dwidth = circleX - pointX; - // if (dwidth < 0) { dwidth *= -1; } - - // int dHeight = circleY - pointY; - // if (dHeight < 0) { dHeight *= -1; } - - // //鏍规嵁涓夎鍑芥暟,姹備笁瑙掑舰鐨勬枩杈归暱 - // int dlength = dwidth * dwidth + dHeight * dHeight; - // //鍗婂緞闀垮害(涓嶅紑鏂�,鎵�浠ユ槸鎸夊钩鏂圭畻) - // circleR *= circleR; - // if (dlength < circleR) - // { - // //濡傛灉缁勬垚鐨勪笁瑙掑舰骞舵病鏈夐暱杩囧崐寰�,鍒欎唬琛ㄨ繕鍦ㄥ渾鍐�(涓嶅厑璁哥偣杈圭晫) - // return true; - // } - // return false; - // } - - //} } \ No newline at end of file diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs index 5805d72..886a2f0 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using HDL_ON.Common; using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; @@ -26,7 +27,7 @@ { var page = new AddGroupControlPage(null, ()=> { - + ReadGroupControlList(); }); MainPage.BasePageView.AddChidren(page); page.LoadPage(); @@ -43,13 +44,27 @@ }; bodyView.AddChidren(contentView); + ReadGroupControlList(); + + #region + contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) }); + + + + #endregion + + } + /// <summary> + /// 璇诲彇缁勬帶鏁版嵁 + /// </summary> + private void ReadGroupControlList() + { new System.Threading.Thread(() => { - var http = new HttpServerRequest(); - var pack = http.GetGroupControlList(); - if(pack != null) + var pack = ApiUtlis.Ins.HttpRequest.GetGroupControlList(); + if (pack != null) { - if(pack.Code == StateCode.SUCCESS ) + if (pack.Code == StateCode.SUCCESS) { try { @@ -69,14 +84,8 @@ IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); } } - }) { IsBackground = true }.Start(); - - #region - contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) }); - - - - #endregion + }) + { IsBackground = true }.Start(); } @@ -117,10 +126,11 @@ foreach (var groupControl in list) { - var functionRow = new FrameLayout() + var functionRow = new RowLayout() { Height = Application.GetRealHeight(65), BackgroundColor = CSS_Color.MainBackgroundColor, + LineColor = 0x00000000 }; contentView.AddChidren(functionRow); @@ -186,6 +196,63 @@ btnFunctionName.MouseUpEventHandler = eventHandler; btnFunctionLocationInfo.MouseUpEventHandler = eventHandler; + var btnDelGroupControl = new Button() + { + TextColor = CSS_Color.MainBackgroundColor, + BackgroundColor = CSS_Color.WarningColor, + TextID = StringId.Del, + TextAlignment = TextAlignment.Center, + }; + functionRow.AddRightView(btnDelGroupControl); + btnDelGroupControl.MouseUpEventHandler = (sender1, e1) => { + var waitPage = new Loading(); + this.AddChidren(waitPage); + waitPage.Start(""); + new System.Threading.Thread(() => + { + try + { + var pack = ApiUtlis.Ins.HttpRequest.DelGroupControl(groupControl.userDeviceGroupControlId); + if (pack != null) + { + Application.RunOnMainThread(() => + { + try + { + if (pack.Code == StateCode.SUCCESS) + { + list.Remove(groupControl); + LoadGroupControlView(list); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + }catch(Exception ex) + { + MainPage.Log($"鍒锋柊缁勬帶鏁版嵁寮傚父:{ex.Message}"); + } + }); + } + }catch(Exception ex) + { + MainPage.Log($"鍒犻櫎缁勬帶寮傚父:{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => { + if (waitPage != null) + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); + }; + } } diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs index e58062f..1c25db0 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs @@ -1,5 +1,7 @@ 锘縰sing System; using System.Collections.Generic; +using HDL_ON.Common; +using HDL_ON.DAL.Server; using Shared; namespace HDL_ON.Entity @@ -86,8 +88,6 @@ /// </summary> public List<GroupControlFunction> sids = new List<GroupControlFunction>(); - - ///// <summary> ///// 鑾峰彇璁惧娣诲姞鍒版埧闂寸殑鎴块棿鍚嶇О ///// </summary> @@ -114,6 +114,38 @@ // } // return roomNameList; //} + + /// <summary> + /// 缇ゆ帶鎺у埗 + /// </summary> + /// <param name="pairs"></param> + public void Control(Dictionary<string,object> pairs) + { + try + { + var controlValues = new Dictionary<string, object>(); + foreach(var p in pairs) + { + controlValues.Add("key", p.Key); + controlValues.Add("value", p.Value); + } + var pack = ApiUtlis.Ins.HttpRequest.ControlGroupControl(userDeviceGroupControlId, controlValues); + if (pack != null) + { + if (pack.Code == StateCode.SUCCESS) + { + //DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl. + } + else + { + MainPage.Log($"缇ゆ帶鎺у埗澶辫触,Code: {pack.Code}"); + } + } + } + catch (Exception ex){ + MainPage.Log($"缇ゆ帶鎺у埗澶辫触: {ex.Message}"); + } + } } public class GroupControlFunction @@ -126,6 +158,8 @@ /// 鍔熻兘spk /// </summary> public string spk = string.Empty; + + } diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs index f09d43a..b5b4628 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs @@ -297,7 +297,7 @@ #region 浣忓畢淇℃伅鍖哄煙 if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare && DB_ResidenceData.Instance.GatewayType == 1 - && DB_ResidenceData.Instance.CurrentRegion.isSupportGroupControl) + && DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { residenceInfoView = new FrameLayout() { @@ -587,7 +587,7 @@ residenceAddFunctionView.AddChidren(btnResidenceAddFunctionText); #endregion - if (DB_ResidenceData.Instance.CurrentRegion.isSupportGroupControl) + if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { residenceFunctionCount++; #region ---缁勫悎璋冨厜 diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage.cs new file mode 100644 index 0000000..9b0088a --- /dev/null +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage.cs @@ -0,0 +1,585 @@ +锘� +using System; +using System.Collections.Generic; +using HDL_ON.Entity; +using HDL_ON.UI.CSS; +using Shared; + +namespace HDL_ON.UI +{ + /// <summary> + /// 鐏厜鍦烘櫙缂栬緫寮圭獥 + /// </summary> + public class GroupControlPage : Dialog + { + GroupControl group; + public GroupControlPage(GroupControl groupControl) + { + group = groupControl; + if(group == null) + { + group = new GroupControl(); + } + } + + + public void ShowDialog() + { + var hadDimming = false; + var hadCCT = false; + var hadRGB = false; + + foreach (var temp in group.sids) + { + if (temp.spk == SPK.LightRGB) + { + hadRGB = true; + } + else if (temp.spk == SPK.LightCCT) + { + hadCCT = true; + }else if (temp.spk == SPK.LightDimming) + { + hadDimming = true; + } + + if(hadDimming && hadCCT && hadRGB) + { + break; + } + } + + + var bodyView = new FrameLayout(); + this.AddChidren(bodyView); + //bodyView.MouseUpEventHandler = (sender, e) => + //{ + // this.Close(); + //}; + + var contentView = new FrameLayout() + { + BackgroundColor = CSS_Color.MainBackgroundColor, + Width = Application.GetRealWidth(343), + Radius = (uint)Application.GetRealWidth(12), + }; + bodyView.AddChidren(contentView); + + #region 鏍囬鍖� + var titleView = new FrameLayout() + { + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(52), + }; + contentView.AddChidren(titleView); + + var btnTitle = new Button() + { + Height = Application.GetRealHeight(52), + Gravity = Gravity.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.MainColor, + TextID = StringId.CombinedDimming, + TextAlignment = TextAlignment.Center, + }; + if (btnTitle.GetTextWidth() > Application.GetRealWidth(197))//247 + { + btnTitle.Width = Application.GetRealWidth(197); + btnTitle.IsMoreLines = true; + } + else + { + btnTitle.Width = btnTitle.GetTextWidth() + Application.GetRealWidth(10); + btnTitle.IsMoreLines = false; + } + titleView.AddChidren(btnTitle); + + var btnEditIcon = new Button() + { + Width = Application.GetRealWidth(24), + Height = Application.GetRealWidth(24), + X = Application.GetRealWidth(12) + btnTitle.Right, + Gravity = Gravity.CenterVertical, + UnSelectedImagePath = "Public/Edit.png", + }; + + btnTitle.Text = group.name; + btnTitle.Width = btnTitle.GetTextWidth() + Application.GetRealWidth(10); + btnTitle.Gravity = Gravity.Center; + + titleView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor, Y = Application.GetRealHeight(51) }); + + #endregion + + //灞炴�ц缃尯鍩� + var attrView = new VerticalScrolViewLayout() + { + Y = Application.GetRealHeight(52), + Width = Application.GetRealWidth(343), + ScrollEnabled = false, + }; + //灞炴�ц缃尯鍩熼珮搴� + int attrViewHight = Application.GetRealHeight(18 + 22); + + + //鍙湁缁х數鍣� + if (!hadDimming && !hadCCT && !hadRGB) + { + attrViewHight += Application.GetRealHeight(50); + attrView.Height = attrViewHight; + contentView.AddChidren(attrView); + attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) }); + + var view = new FrameLayout() + { + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(50), + }; + attrView.AddChidren(view); + + + var btnClose = new Button() + { + X = Application.GetRealWidth(50), + Gravity = Gravity.CenterVertical, + Width = Application.GetRealWidth(98), + Height = Application.GetRealHeight(40), + TextColor = CSS_Color.TextualColor, + SelectedBackgroundColor = CSS_Color.MainColor, + SelectedTextColor = CSS_Color.MainBackgroundColor, + BackgroundColor = CSS_Color.DividingLineColor, + TextID = StringId.OFF, + TextSize = CSS_FontSize.TextFontSize, + Radius = (uint)Application.GetRealWidth(5), + IsSelected = true, + //BorderWidth = 1, + //BorderColor = 0x00000000 + }; + view.AddChidren(btnClose); + + var btnOpen = new Button() + { + X = Application.GetRealWidth(100 + 98), + Gravity = Gravity.CenterVertical, + Width = Application.GetRealWidth(98), + Height = Application.GetRealHeight(40), + TextColor = CSS_Color.TextualColor, + SelectedBackgroundColor = CSS_Color.MainColor, + SelectedTextColor = CSS_Color.MainBackgroundColor, + BackgroundColor = CSS_Color.DividingLineColor, + TextID = StringId.On, + TextSize = CSS_FontSize.TextFontSize, + Radius = (uint)Application.GetRealWidth(5), + }; + view.AddChidren(btnOpen); + + btnClose.MouseUpEventHandler = (sender, e) => + { + btnClose.IsSelected = true; + btnOpen.IsSelected = false; + var d = new Dictionary<string, object>(); + d.Add(FunctionAttributeKey.OnOff, "off"); + group.Control(d); + }; + btnOpen.MouseUpEventHandler = (sender, e) => + { + btnClose.IsSelected = false; + btnOpen.IsSelected = true; + + var d = new Dictionary<string, object>(); + d.Add(FunctionAttributeKey.OnOff, "on"); + group.Control(d); + }; + + } + + else + { + if (hadRGB) + { + attrViewHight += Application.GetRealHeight(248); + hadDimming = true; + } + if (hadCCT) + { + attrViewHight += Application.GetRealHeight(54 + 11); + hadDimming = true; + } + if (hadDimming) + { + attrViewHight += Application.GetRealHeight(54 + 11); + } + attrView.Height = attrViewHight; + contentView.AddChidren(attrView); + attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) }); + + + if (hadDimming) + { + LoadDimmingAttrView(attrView); + } + if (hadCCT) + { + LoadCctAttrView(attrView); + } + if (hadRGB) + { + LoadRgbAttrView(attrView); + } + } + + contentView.Height = Application.GetRealHeight(52 + 44) + attrViewHight; + contentView.Gravity = Gravity.Center; + + + var bottomView = new FrameLayout() + { + Y = Application.GetRealHeight(52) + attrViewHight, + Height = Application.GetRealHeight(46), + }; + contentView.AddChidren(bottomView); + bottomView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor }); + + var btnCloseDialog = new Button() + { + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + TextID = StringId.Close, + TextSize = CSS_FontSize.SubheadingFontSize, + }; + bottomView.AddChidren(btnCloseDialog); + btnCloseDialog.MouseUpEventHandler = (sender, e) => { + this.Close(); + }; + + + this.Show(); + + } + + /// <summary> + /// 鍔犺浇璋冨厜灞炴�ц缃帶浠� + /// </summary> + /// <param name="attrView"></param> + void LoadDimmingAttrView(VerticalScrolViewLayout attrView) + { + var dimmingView = new FrameLayout() + { + Height = Application.GetRealHeight(54 + 11) + }; + attrView.AddChidren(dimmingView); + + #region 浜害璋冭妭 + var btnBrightnessText = new Button() + { + X = Application.GetRealWidth(35), + Y = Application.GetRealHeight(1), + Width = Application.GetRealWidth(224), + Height = Application.GetRealHeight(25), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.Brightness, + }; + btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + group.GetAttrState(FunctionAttributeKey.Brightness) + "%"; + dimmingView.AddChidren(btnBrightnessText); + + + var btnMinValuesText = new Button() + { + X = Application.GetRealWidth(35), + Y = btnBrightnessText.Bottom, + Width = Application.GetRealWidth(40), + Height = Application.GetRealHeight(21), + Text = "0%", + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + }; + dimmingView.AddChidren(btnMinValuesText); + + var dimmerBar = new DiyImageSeekBar() + { + X = Application.GetRealWidth(45 + 10), + Y = Application.GetRealHeight(11), + Width = Application.GetRealWidth(220), + Height = Application.GetRealHeight(54), + SeekBarViewHeight = Application.GetRealHeight(8), + ThumbImagePath = "Public/ThumbImage.png", + ThumbImageHeight = Application.GetRealHeight(54), + ProgressTextColor = CSS_Color.FirstLevelTitleColor, + ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, + ProgressBarColor = CSS_Color.AuxiliaryColor1, + MaxValue = 100, + SeekBarPadding = Application.GetRealWidth(20), + IsProgressTextShow = false, + ProgressChangeDelayTime = 0, + }; + dimmingView.AddChidren(dimmerBar); + dimmerBar.OnProgressChangedEvent = (sender, e) => + { + btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%"; + }; + dimmerBar.OnStopTrackingTouchEvent = (sender, e) => + { + btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%"; + + var d = new Dictionary<string, object>(); + d.Add(FunctionAttributeKey.Brightness, e.ToString()); + group.Control(d); + }; + + + var btnMaxValuesText = new Button() + { + X = dimmerBar.Right, + Y = btnBrightnessText.Bottom, + Width = Application.GetRealWidth(55), + Height = Application.GetRealHeight(21), + Text = "100%", + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + }; + dimmingView.AddChidren(btnMaxValuesText); + #endregion + + } + + /// <summary> + /// 鍔犺浇cct灞炴�ц缃帶浠� + /// </summary> + /// <param name="attrView"></param> + void LoadCctAttrView(VerticalScrolViewLayout attrView) + { + #region 鑹叉俯 + var cctView = new FrameLayout() + { + Height = Application.GetRealHeight(54 + 11) + }; + attrView.AddChidren(cctView); + + + //鑹叉俯 + var btnTempClolor = new Button(); + btnTempClolor.X = Application.GetRealWidth(35); + btnTempClolor.Y = Application.GetRealHeight(1); + btnTempClolor.Width = Application.GetRealWidth(224); + btnTempClolor.Height = Application.GetRealHeight(21); + btnTempClolor.TextAlignment = TextAlignment.CenterLeft; + btnTempClolor.TextColor = CSS_Color.FirstLevelTitleColor; + btnTempClolor.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; + btnTempClolor.TextID = StringId.ColorTemperature; + cctView.AddChidren(btnTempClolor); + + //2700K + var btnTempClolorMin = new Button() + { + X = Application.GetRealWidth(35), + Y = btnTempClolor.Bottom, + Width = Application.GetRealWidth(40), + Height = Application.GetRealHeight(21), + }; + btnTempClolorMin.Width = Application.GetRealWidth(54); + btnTempClolorMin.Height = Application.GetRealHeight(21); + btnTempClolorMin.Text = "2700K"; + btnTempClolorMin.TextAlignment = TextAlignment.CenterLeft; + btnTempClolorMin.TextColor = CSS_Color.PromptingColor1; + btnTempClolorMin.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; + cctView.AddChidren(btnTempClolorMin); + + //婊戝姩鏉$殑鑳屾櫙鍥剧墖 + var btnColorTemplatrueBack = new Button() + { + X = Application.GetRealWidth(55 + 22 + 15), + Y = Application.GetRealHeight(11), + Width = Application.GetRealWidth(180), + Height = Application.GetRealHeight(54), + }; + btnColorTemplatrueBack.UnSelectedImagePath = "FunctionIcon/Light/ColorTemperatureBar.png"; + btnColorTemplatrueBack.Height = Application.GetRealHeight(8); + btnColorTemplatrueBack.Gravity = Gravity.CenterHorizontal; + cctView.AddChidren(btnColorTemplatrueBack); + //婊戝姩鏉℃帶浠� + var barColorTemplatrue = new CCTSeekBarControl() + { + X = Application.GetRealWidth(55 + 22), + Y = Application.GetRealHeight(11), + Width = Application.GetRealWidth(220), + Height = Application.GetRealHeight(54), + }; + barColorTemplatrue.MinValue = 27; + barColorTemplatrue.MaxValue = 65; + barColorTemplatrue.ProgressBarColor = 0x00000000;//鍏ㄩ儴閫忔槑 + barColorTemplatrue.ProgressBarUnEnableColor = 0x00000000; + barColorTemplatrue.SeekBarBackgroundColor = 0x00000000; + cctView.AddChidren(barColorTemplatrue); + barColorTemplatrue.Y = btnTempClolorMin.Y - (barColorTemplatrue.Height - btnTempClolorMin.Height) / 2; + //璁剧疆鍒濆鍊� + btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K"); + barColorTemplatrue.OnProgressChangedEvent = (sender, e) => + { + btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K"); + }; + barColorTemplatrue.OnStopTrackingTouchEvent = (sender, e) => + { + var d = new Dictionary<string, object>(); + d.Add(FunctionAttributeKey.CCT, (barColorTemplatrue.Progress * 100).ToString()); + group.Control(d); + }; + //鍙樻洿鑳屾櫙鍥剧殑Y杞村潗鏍� + btnColorTemplatrueBack.Y = barColorTemplatrue.Y + (barColorTemplatrue.Height - btnColorTemplatrueBack.Height) / 2; + + //6500K + var btnTempClolorMax = new Button(); + btnTempClolorMax.Y = btnTempClolorMin.Y; + btnTempClolorMax.X = barColorTemplatrue.Right - Application.GetRealWidth(30); + btnTempClolorMax.Width = Application.GetRealWidth(54); + btnTempClolorMax.Height = Application.GetRealHeight(21); + btnTempClolorMax.Text = "6500K"; + btnTempClolorMax.TextAlignment = TextAlignment.CenterRight; + btnTempClolorMax.TextColor = CSS_Color.PromptingColor1; + btnTempClolorMax.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; + cctView.AddChidren(btnTempClolorMax); + + #endregion + + + } + + /// <summary> + /// 鍔犺浇rgb灞炴�ц缃帶浠� + /// </summary> + /// <param name="attrView"></param> + void LoadRgbAttrView(VerticalScrolViewLayout attrView) + { + + #region RGB + var rgbView = new FrameLayout() + { + Height = Application.GetRealHeight(248) + }; + attrView.AddChidren(rgbView); + + + var btnCurColor = new Button() + { + X = Application.GetRealWidth(24), + Y = Application.GetRealHeight(10), + Width = Application.GetMinRealAverage(24), + Height = Application.GetMinRealAverage(24), + Radius = (uint)Application.GetMinRealAverage(8), + BorderColor = CSS_Color.PromptingColor2, + BorderWidth = 1, + //BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(commandDic[FunctionAttributeKey.RGB])) + }; + rgbView.AddChidren(btnCurColor); + + //鑹茬洏鐨勬甯冩帶浠�(闄愬埗閭d釜鐧借壊婊戝姩鐞冧娇鐢�) + var framePickerBack = new FrameLayout(); + framePickerBack.Gravity = Gravity.CenterHorizontal; + framePickerBack.Y = Application.GetRealHeight(20); + framePickerBack.Width = Application.GetMinRealAverage(198); + framePickerBack.Height = Application.GetMinRealAverage(198); + rgbView.AddChidren(framePickerBack); + + var colorPicker = new ColorPicker() + { + ColorImagePath = "FunctionIcon/Light/ColorWheel.png", + }; + framePickerBack.AddChidren(colorPicker); + + + + + + + //鐧界偣鎺т欢 + var btnWhiteRound = new Button(); + btnWhiteRound.Width = Application.GetRealWidth(24); + btnWhiteRound.Height = Application.GetRealWidth(24); + btnWhiteRound.UnSelectedImagePath = "FunctionIcon/Light/ColorWheelTip.png"; + btnWhiteRound.Visible = false; + framePickerBack.AddChidren(btnWhiteRound); + + + //褰撳墠鐐瑰嚮鐨勩�愮偣銆戞槸鍚︽纭� + bool pointIsRight = false; + //鍦嗙殑鍗婂緞(鑰冭檻杈圭晫,闇�瑕佽缃畠鐨勫崐寰勬瘮杈冨皬涓�鐐�) + int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12); + string rgbString = "255,255,255"; + var rgbTemp = new Light(); + colorPicker.MouseUpEventHandler = (sender2, e2) => + { + var d = new Dictionary<string, object>(); + d.Add(FunctionAttributeKey.RGB, rgbString); + group.Control(d); + }; + colorPicker.ColorChaged += (sender2, e2) => + { + rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString(); + btnCurColor.BackgroundColor = (uint)(0xFF000000 + rgbTemp.GetRGBcolor(rgbString)); + var d = new Dictionary<string, object>(); + d.Add(FunctionAttributeKey.RGB, rgbString); + group.Control(d); + }; + colorPicker.MouseDownEventHandler += (sender, e) => + { + pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y); + if (pointIsRight == false) + { + //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐� + return; + } + //鏄剧ず鐧界偣 + btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2; + btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2; + if (btnWhiteRound.Visible == false) + { + btnWhiteRound.Visible = true; + } + }; + + colorPicker.MouseMoveEventHandler += (sender, e) => + { + //褰撻紶鏍囩偣涓嬩簨浠跺鐞� + colorPicker.MouseDownEventHandler(sender, e); + }; + + + #endregion + + } + + + /// <summary> + /// 妫�娴嬬偣鍑荤偣 + /// </summary> + /// <param name="circleR">鍦嗙殑鍗婂緞</param> + /// <param name="circleX">鍦嗗績X杞�</param> + /// <param name="circleY">鍦嗗績Y杞�</param> + /// <param name="pointX">鐐瑰嚮鐐圭殑X杞�</param> + /// <param name="pointY">鐐瑰嚮鐐圭殑Y杞�</param> + /// <returns></returns> + private bool CheckPoint(int circleR, int circleX, int circleY, int pointX, int pointY) + { + int dwidth = circleX - pointX; + if (dwidth < 0) { dwidth *= -1; } + + int dHeight = circleY - pointY; + if (dHeight < 0) { dHeight *= -1; } + + //鏍规嵁涓夎鍑芥暟,姹備笁瑙掑舰鐨勬枩杈归暱 + int dlength = dwidth * dwidth + dHeight * dHeight; + //鍗婂緞闀垮害(涓嶅紑鏂�,鎵�浠ユ槸鎸夊钩鏂圭畻) + circleR *= circleR; + if (dlength < circleR) + { + //濡傛灉缁勬垚鐨勪笁瑙掑舰骞舵病鏈夐暱杩囧崐寰�,鍒欎唬琛ㄨ繕鍦ㄥ渾鍐�(涓嶅厑璁哥偣杈圭晫) + return true; + } + return false; + } + + } +} \ No newline at end of file diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs index 0eb7ff8..c908e90 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs @@ -421,13 +421,14 @@ SelectedImagePath = "FunctionIcon/Light/LightScene/CheckOnIcon.png", IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null }; - if (DB_ResidenceData.Instance.CurrentRegion.isSupportGroupControl) + if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { btnSelect.X = Application.GetRealWidth(323); } bodyDiv.AddChidren(btnSelect); btnSelect.MouseUpEventHandler = (sender, e) => { + Application.HideSoftInput(); btnSelect.IsSelected = !btnSelect.IsSelected; if(btnSelect.IsSelected) { -- Gitblit v1.8.0