From 72be4f06a683de33ddd563c8447c39f7f17e5b7d Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 06 一月 2020 13:03:50 +0800 Subject: [PATCH] 合并代码 --- ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs | 182 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 143 insertions(+), 39 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs index e1e988d..70aa1dd 100755 --- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs +++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs @@ -1,5 +1,9 @@ 锘縰sing System; +using System.Collections.Generic; using Shared.Common; +using Shared.Phone.Device.Category; +using Shared.Phone.UserCenter; + namespace Shared.Phone.Device.CommonForm { public class SceneCategoryView : FrameLayout @@ -56,6 +60,7 @@ /// </summary> private void InitFrame() { + RemoveAll(); var sceneRowLayout = new RowLayout { Y = Application.GetRealHeight(46), @@ -64,6 +69,7 @@ Tag= scene }; AddChidren(sceneRowLayout); + sceneRowLayout.SubViewWidth = Application.GetRealWidth(199); sceneImg = new ImageView() { @@ -164,8 +170,10 @@ var delayBtn = new RowLayoutDeleteButton { TextID = R.MyInternationalizationString.Delay, - Tag = scene.SceneDelayTime + Tag = scene.SceneDelayTime, + BackgroundColor=ZigbeeColor.Current.GXCTextSelectedColor, }; + delayBtn.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight); sceneRowLayout.AddLeftView(delayBtn); //缂栬緫 var settingBtn = new Device.CommonForm.RowLayoutEditButton() @@ -173,12 +181,13 @@ TextID = R.MyInternationalizationString.Editor, Tag = scene.SceneDelayTime }; + settingBtn.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerTopLeft); //鍒犻櫎 var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton { Tag = scene }; - + deleteBtn.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight); if (room.IsSharedRoom) { @@ -193,6 +202,7 @@ { sceneRowLayout.AddRightView(settingBtn); sceneRowLayout.AddRightView(deleteBtn); + } } @@ -206,52 +216,146 @@ } else { - var tip = new CustomAlert { }; - Common.CommonPage.Instance.AddChidren(tip); - tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); - - tip.ResultEventHandler += async (e1) => + var alert = new UserCenter.ShowMsgControl(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); + alert.Show(); + alert.ConfirmClickEvent += async () => { - if (e1) + //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� + var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); + if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) { - //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� - var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); - if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) - { - CommonPage.Instance.FailureToServer(); - return; - } - //1鎴愬姛 - if (removeSceneAllData.removeSceneData.Result == 1) - { - room.RemoveScene(scene); - //RefreshBodyView(); - RemoveFromParent(); - } - //0 绉婚櫎澶辫触 - else if (removeSceneAllData.removeSceneData.Result == 0) - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - //2 娌℃湁璇ュ満鏅� - else if (removeSceneAllData.removeSceneData.Result == 2) - { - room.RemoveScene(scene); - //RefreshBodyView(); - RemoveFromParent(); - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); - return; - } + CommonPage.Instance.FailureToServer(); + return; + } + //1鎴愬姛 + if (removeSceneAllData.removeSceneData.Result == 1) + { + room.RemoveScene(scene); + //RefreshBodyView(); + RemoveFromParent(); + } + //0 绉婚櫎澶辫触 + else if (removeSceneAllData.removeSceneData.Result == 0) + { + CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); + return; + } + //2 娌℃湁璇ュ満鏅� + else if (removeSceneAllData.removeSceneData.Result == 2) + { + room.RemoveScene(scene); + //RefreshBodyView(); + RemoveFromParent(); + CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); + return; } }; } }; deleteBtn.MouseUpEventHandler += delEvent; //缂栬緫鍦烘櫙 - settingBtn.MouseUpEventHandler += (sender, e) => + settingBtn.MouseUpEventHandler += async (sender, e) => { - SceneUI.EditScene(scene, room); + try + { + var targetList = new List<SceneTargetDeviceUI> { }; + CommonPage.Loading.Start(); + //浠庣綉鍏充腑鍙嶅簭鍒楀寲鍑哄搴旂殑鎴块棿璁惧 + var sceneDeviceList = await ZigBee.Device.Scene.GetSceneDeviceListAsync(scene.Id); + if (sceneDeviceList == null) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheMainGatewayIsNotOnLine)); + return; + } + + if (sceneDeviceList.getSceneDeviceListInfo != null) + { + var deviceList = sceneDeviceList.getSceneDeviceListInfo.DeviceList; + var allDevice = Common.Room.AllRoomDeviceUIList; + var allScene = Common.Room.AllRoomSceneUIList; + + if (deviceList != null && allDevice.Count != 0) + { + foreach (var sceneDev in deviceList) + { + if (sceneDev.Type == 0) + { + var dev = allDevice.Find((obj) => obj.DeviceEpoint == sceneDev.Epoint && obj.DeviceAddr == sceneDev.DeviceAddr); + if (dev != null) + { + var sceneTargetDevice = new SceneTargetDeviceUI + { + Type = 0, + DeviceUI = dev, + TaskList = sceneDev.TaskList, + DelayTimeSerialNumber = deviceList.IndexOf(sceneDev) + 1 + }; + + targetList.Add(sceneTargetDevice); + } + } + else if (sceneDev.Type == 1) + { + var localScene = allScene.Find((obj) => obj.Id == sceneDev.ElseScenesId); + if (localScene != null) + { + var sceneTargetDeviceScene = new SceneTargetDeviceUI + { + Type = 1, + ElseScenesId = sceneDev.ElseScenesId, + SceneName = localScene.Name, + SceneUI = localScene, + DelayTimeSerialNumber = deviceList.IndexOf(sceneDev) + 1 + }; + targetList.Add(sceneTargetDeviceScene); + } + } + else + { + var sceneTargetDeviceScene = new SceneTargetDeviceUI + { + Type = 2, + DelayTime = sceneDev.DelayTime, + DelayTimeSerialNumber = deviceList.IndexOf(sceneDev) + 1 + }; + targetList.Add(sceneTargetDeviceScene); + } + } + } + } + else + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain)); + } + + var sceneView = new CategoryAddScene(); + Phone.UserView.HomePage.Instance.AddChidren(sceneView); + Phone.UserView.HomePage.Instance.PageIndex += 1; + sceneView.isModify = true; + sceneView.modifyRoom = room; + sceneView.modifySceneUI = scene; + sceneView.modifySceneTargetDevicesList = targetList; + sceneView.Show(); + sceneView.EditorAction = (s, r) => + { + if(r.Id!=room.Id) + { + RemoveFromParent(); + } + else + { + Init(s, r); + } + }; + } + catch (Exception ex) + { + System.Console.WriteLine($"缂栬緫鍦烘櫙鍑洪敊---{ex.Message}"); + } + finally + { + CommonPage.Loading.Hide(); + } }; //缂栬緫寤舵椂 delayBtn.MouseUpEventHandler += (sender, e) => -- Gitblit v1.8.0