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