From 509e7b543f8a8770cf09dff97000acf78140c119 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期一, 06 一月 2020 09:46:13 +0800 Subject: [PATCH] 2019、1、6 --- ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs | 173 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 136 insertions(+), 37 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs index ff45178..70aa1dd 100644 --- 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), @@ -211,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