From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs | 199 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 154 insertions(+), 45 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs index 28e2981..5f8edaa 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 @@ -23,7 +27,7 @@ /// <summary> /// sceneImg /// </summary> - private Button sceneImg; + private ImageView sceneImg; /// <summary> /// SceneCategoryView @@ -56,23 +60,27 @@ /// </summary> private void InitFrame() { + RemoveAll(); var sceneRowLayout = new RowLayout { Y = Application.GetRealHeight(46), Height = Application.GetRealHeight(446 - 46), - LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor + LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor, + Tag= scene }; AddChidren(sceneRowLayout); + sceneRowLayout.SubViewWidth = Application.GetRealWidth(199); - sceneImg = new Button() + sceneImg = new ImageView() { X = Application.GetRealWidth(179), Width = Application.GetRealWidth(844), Height = Application.GetRealHeight(400), - UnSelectedImagePath = scene.IconPath, + ImagePath = scene.IconPathType == 0 ? scene.IconPath : System.IO.Path.Combine(Config.Instance.FullPath, scene.IconPath), Radius = (uint)Application.GetRealHeight(17) }; sceneRowLayout.AddChidren(sceneImg); + //sceneImg.SetViewShadow(true); var leftFL = new FrameLayout { @@ -162,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() @@ -171,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) { @@ -191,6 +202,7 @@ { sceneRowLayout.AddRightView(settingBtn); sceneRowLayout.AddRightView(deleteBtn); + } } @@ -200,56 +212,150 @@ if (room.IsLove) { Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); - RemoveViewByTag((sender as Button).Tag); + RemoveFromParent(); } else { - var tip = new CustomAlert { }; - 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(); - RemoveViewByTag((sender as Button).Tag); - } - //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(); - RemoveViewByTag((sender as Button).Tag); - 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) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain)); + return; + } + //2 娌℃湁璇ュ満鏅� + else if (removeSceneAllData.removeSceneData.Result == 2) + { + room.RemoveScene(scene); + //RefreshBodyView(); + RemoveFromParent(); + CommonFormResouce.ShowTip(Language.StringByID(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) => @@ -267,6 +373,8 @@ { scene.SceneDelayTime = t; delayTimeBtn.Text = CommonFormResouce.GetTimeString(t); + + room.ModifySceneDelayTime(scene); }; }; } @@ -311,11 +419,12 @@ { return; } - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail); + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.ControlSceneFail)); } scene.RemainTime = scene.SceneDelayTime; scene.SceneDelayTime = 0; + room.ModifySceneDelayTime(scene); new System.Threading.Thread(() => { while (scene.RemainTime > 0) -- Gitblit v1.8.0