黄学彪
2020-04-02 9904031f5291daaf56985146bb671f25e18ebbdf
ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
@@ -1,1911 +1,1912 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using Shared.Common;
using Shared.Phone.Device.CommonForm;
using Shared.Phone.Device.Room;
using Shared.Phone.UserCenter;
using System;
using System.Collections.Generic;
using System.Globalization;
using Shared.Common;
using Shared.Phone.Device.CommonForm;
using Shared.Phone.Device.Room;
using Shared.Phone.UserCenter;
using ZigBee.Device;
using static ZigBee.Device.Scene;
namespace Shared.Phone.Device.Category
{
    public class CategoryAddScene : FrameLayout
    {
        #region ◆ 变量____________________________
        /// <summary>
        /// bodyFrameLayout
        /// </summary>
        private FrameLayout bodyFrameLayout;
        ///// <summary>
        ///// floorIds
        ///// </summary>
        //List<string> floorIds = new List<string> { };
        ///// <summary>
        ///// floorNames
        ///// </summary>
        //List<string> floorNames = new List<string> { };
        ///// <summary>
        ///// roomNames
        ///// </summary>
        //List<List<string>> roomNames = new List<List<string>> { };
        ///// <summary>
        ///// roomNames
        ///// </summary>
        //List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
        /// <summary>
        /// ImagePath
        /// </summary>
        private string ImagePath="SceneIcon/1.png";
        /// <summary>
        /// 图片来源 0--本地图库 1--拍照 2--系统图库
        /// </summary>
        public int IconPathType = 0;
        /// <summary>
        /// curRoom
        /// </summary>
        private Common.Room curRoom;
        /// <summary>
        /// sceneTargetDevicesList
        /// </summary>
        private List<SceneTargetDeviceUI> sceneTargetDevicesList = new List<SceneTargetDeviceUI> { };
        /// <summary>
        /// 添加目标后的展示列表
        /// </summary>
        public FrameLayout TargetListScrolView;
        /// <summary>
        /// The confirm button.
        /// </summary>
        private CommonForm.CompleteButton confirmBtn;
        /// <summary>
        /// backGround
        /// </summary>
        private ImageView backGround;
        /// <summary>
        /// 是否修改
        /// </summary>
        public bool isModify;
        /// <summary>
        /// 修改的场景
        /// </summary>
        public SceneUI modifySceneUI;
        /// <summary>
        /// 记录编辑前的设备列表
        /// </summary>
        public List<SceneTargetDeviceUI> modifySceneTargetDevicesList;
        /// <summary>
        /// modifyRoom
        /// </summary>
        public Common.Room modifyRoom;
        /// <summary>
        /// OldBackgroundImagePath
        /// </summary>
        private string OldBackgroundImagePath;
        /// <summary>
        /// OldIconPathType
        /// </summary>
        public int OldIconPathType;
        /// <summary>
        /// selectedTimeAction
        /// </summary>
        private Action<SceneTargetDeviceUI> selectedAction;
        /// <summary>
        /// 修改场景action
        /// </summary>
        public Action<SceneUI, Common.Room> EditorAction;
        /// <summary>
        /// 添加场景action
        /// </summary>
        public Action AddAction;
        #endregion
        /// <summary>
        /// CategoryAddScene
        /// </summary>
        public CategoryAddScene()
        {
            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
        }
        /// <summary>
        /// RemoveFromParent
        /// </summary>
        public override void RemoveFromParent()
        {
            UserView.HomePage.Instance.ScrollEnabled = true;
            base.RemoveFromParent();
        }
        /// <summary>
        ///刷新添加目标后的展示列表
        /// </summary>
        public void RefreshTargetListView()
        {
            UserView.HomePage.Instance.ScrollEnabled = false;
            TargetListScrolView.RemoveAll();
            TargetListScrolView.Height = Application.GetRealHeight(173);
            var TargetListScrolBackView = new FrameLayout()
            {
                Height = Application.GetRealHeight(173),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            TargetListScrolView.AddChidren(TargetListScrolBackView);
            if (sceneTargetDevicesList.Count > 0)
            {
                if (sceneTargetDevicesList.Count > 1)
                {
                    TargetListScrolView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count) + Application.GetRealHeight(200);
                    TargetListScrolBackView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count + 13);
                }
                for (int i = 0; i < sceneTargetDevicesList.Count; i++)
                {
                    var targetDevice = sceneTargetDevicesList[i];
                    var targetRowLayout = new RowLayout()
                    {
                        Y = Application.GetRealHeight(i * 140),
                        Height = Application.GetRealHeight(140),
                        LineColor = ZigbeeColor.Current.GXCClearColor,
                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                        SubViewWidth = Application.GetRealWidth(184)
                    };
                    TargetListScrolView.AddChidren(targetRowLayout);
                    string devImgPath = string.Empty;
                    string devNameText = string.Empty;
                    if (targetDevice.Type == 0)
                    {
                        if (targetDevice.DeviceUI == null ) continue;
                        devImgPath = targetDevice.DeviceUI.IconPath;
                        devNameText = Common.LocalDevice.Current.GetDeviceEpointName(targetDevice.DeviceUI);
                        var targetRow = new SceneTargetFunctionRow(13);
                        targetRow.Init();
                        targetRow.SetIcon(devImgPath);
                        targetRow.SetNameText(devNameText);
                        targetRow.SetZoneText(HdlRoomLogic.Current.GetRoomNameByDevice(targetDevice.DeviceUI, ","));
                        targetRow.SetStatuText(targetDevice.GetDeviceStatu());
                        targetRowLayout.AddChidren(targetRow);
                        if (i == sceneTargetDevicesList.Count - 1)
                        {
                            targetRow.HideLine(true);
                        }
                    }
                    else if (targetDevice.Type == 2)
                    {
                        devNameText = CommonFormResouce.GetTimeString(targetDevice.DelayTime);
                        devNameText += Language.StringByID(R.MyInternationalizationString.Later);
                        var targetRow = new SceneTargetTimeRow(13);
                        targetRow.Init();
                        targetRow.SetTitle(devNameText);
                        targetRowLayout.AddChidren(targetRow);
                        if (i == sceneTargetDevicesList.Count - 1)
                        {
                            targetRow.HideLine(true);
                        }
                    }
                    else if (targetDevice.Type == 1)
                    {
                        devImgPath = "Scene/SceneIcon.png";
                        devNameText = targetDevice.SceneName;
                        var targetRow = new SceneTargetFunctionRow(13);
                        targetRow.Init();
                        targetRow.SetIcon(devImgPath);
                        targetRow.SetNameText(devNameText);
                        targetRow.SetZoneText(HdlSceneLogic.Current.GetZoneById(targetDevice.SceneUI.Id));
                        targetRowLayout.AddChidren(targetRow);
                        if (i == sceneTargetDevicesList.Count - 1)
                        {
                            targetRow.HideLine(true);
                        }
                    }
                    var editBtn = new RowLayoutEditButton();
                    targetRowLayout.AddRightView(editBtn);
                    //编辑设备
                    editBtn.MouseUpEventHandler += detailMouseUpEventHandler;
                    var delBtn = new RowLayoutDeleteButton();
                    targetRowLayout.AddRightView(delBtn);
                    //删除设备
                    delBtn.MouseUpEventHandler += (sender, e) =>
                    {
                        sceneTargetDevicesList.Remove(targetDevice);
                        RefreshTargetListView();
                    };
                    //设备详细设置界面
                    void detailMouseUpEventHandler(object sender, MouseEventArgs e)
                    {
                        if (targetDevice.Type == 0)
                        {
                            if (targetDevice.DeviceUI == null)
                            {
                                return;
                            }
                            ShowSelectAction(targetDevice.DeviceUI, targetDevice);
                            selectedAction = (selectedDevice) =>
                            {
                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID);
                                if (targetDeviceUI != null)
                                {
                                    targetDeviceUI.DeviceUI = selectedDevice.DeviceUI;
                                    targetDeviceUI.TaskList = selectedDevice.TaskList;
                                }
                                RefreshTargetListView();
                            };
                        }
                        else if (targetDevice.Type == 2)
                        {
                            var delayTimeView = new SelectDelayTime();
                            UserView.HomePage.Instance.AddChidren(delayTimeView);
                            UserView.HomePage.Instance.PageIndex += 1;
                            delayTimeView.sceneTargetDevice = targetDevice;
                            delayTimeView.totalSecond = targetDevice.DelayTime;
                            delayTimeView.Show();
                            delayTimeView.selectedTimeAction = (second) =>
                            {
                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == second.SceneTargetDeviceUIID);
                                if (targetDeviceUI != null)
                                {
                                    targetDeviceUI.DelayTime = second.DelayTime;
                                }
                                RefreshTargetListView();
                            };
                        }
                        else if (targetDevice.Type == 1)
                        {
                            var sceneView = new SelectScene();
                            UserView.HomePage.Instance.AddChidren(sceneView);
                            UserView.HomePage.Instance.PageIndex += 1;
                            sceneView.sceneTargetDevice = targetDevice;
                            sceneView.sceneUI = targetDevice.SceneUI;
                            sceneView.currentSceneUI = modifySceneUI;
                            sceneView.Show();
                            sceneView.selectedAction = (selectedScene) =>
                            {
                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedScene.SceneTargetDeviceUIID);
                                if (targetDeviceUI != null)
                                {
                                    targetDeviceUI.SceneName = selectedScene.SceneName;
                                    targetDevice.SceneUI = selectedScene.SceneUI;
                                    targetDevice.ElseScenesId = selectedScene.ElseScenesId;
                                }
                                RefreshTargetListView();
                            };
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Show this instance.
        /// </summary>
        public void Show()
        {
            Init();
            AddTop();
            AddBodyView();
        }
        #region Add____________________________________
        /// <summary>
        /// Init
        /// </summary>
        private void Init()
        {
        }
        /// <summary>
        /// AddTop
        /// </summary>
        private void AddTop()
        {
            var top = new TopFrameLayout();
            AddChidren(top);
            top.InitTopview();
            if(isModify)
            {
                top.SetTopTitle(R.MyInternationalizationString.EditorScene);
            }
            else
            {
                top.SetTopTitle(R.MyInternationalizationString.AddScence);
            }
            top.backButton.MouseUpEventHandler += (sender, e) =>
            {
                RemoveFromParent();
            };
        }
        /// <summary>
        /// AddBodyView
        /// </summary>
        private void AddBodyView()
        {
            var bodyScrolView=new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(184),
                Height = Application.GetRealHeight(1737),
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
            };
            AddChidren(bodyScrolView);
            bodyFrameLayout = new FrameLayout()
            {
                Height = Application.GetRealHeight(1086+127),
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
            };
            bodyScrolView.AddChidren(bodyFrameLayout);
            var imgFL = new FrameLayout
            {
                Height = Application.GetRealHeight(556),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            bodyFrameLayout.AddChidren(imgFL);
            var backGround1 = new ImageView()
            {
                Y = Application.GetRealHeight(46),
                Width = Application.GetMinRealAverage(916),
                Height = Application.GetMinRealAverage(487),
                Gravity = Gravity.CenterHorizontal,
                ImagePath = "Room/Room_Rectangle.png"
            };
            imgFL.AddChidren(backGround1);
            backGround = new ImageView()
            {
                Y = Application.GetRealHeight(46),
                Width = Application.GetMinRealAverage(887),
                Height = Application.GetMinRealAverage(444),
                Gravity = Gravity.CenterHorizontal,
                Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius),
                ImagePath = "SceneIcon/3.jpg"
            };
            imgFL.AddChidren(backGround);
            var infoFL = new FrameLayout
            {
                Y = Application.GetRealHeight(588),
                Height = Application.GetRealHeight(429),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            bodyFrameLayout.AddChidren(infoFL);
            var infoEdit = new Button
            {
                X = Application.GetRealWidth(CommonFormResouce.X_Left),
                Height = Application.GetRealHeight(130),
                Width = Application.GetRealWidth(700),
                TextID = R.MyInternationalizationString.EditInfo,
                TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 15,
                //IsBold=true
            };
            infoFL.AddChidren(infoEdit);
            var nameRow = new DeviceInfoEditRow(130);
            nameRow.Init();
            nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.SceneName)}:");
            nameRow.SetPlaceHoldText(R.MyInternationalizationString.PleaseInputSceneName);
            infoFL.AddChidren(nameRow);
            var zoneRow = new DeviceInfoRow(257);
            zoneRow.Init();
            zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:");
            //zoneRow.SetTitle(curRoom.Name);
            infoFL.AddChidren(zoneRow);
            zoneRow.HideLine(true);
            var targetFL = new FrameLayout()
            {
                Y = Application.GetRealHeight(1040),
                Height = Application.GetRealHeight(346)
            };
            bodyFrameLayout.AddChidren(targetFL);
            var targetBG = new FrameLayout
            {
                Height = Application.GetRealHeight(334),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            targetFL.AddChidren(targetBG);
            var addTargetFL = new FrameLayout
            {
                Y=Application.GetRealHeight(46),
                Height = Application.GetRealHeight(127),
            };
            targetFL.AddChidren(addTargetFL);
            var target = new Button()
            {
                X = Application.GetRealWidth(CommonFormResouce.X_Left),
                Height = Application.GetRealHeight(127) - 1,
                Width = Application.GetRealWidth(600),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextID = R.MyInternationalizationString.AddScentTargetAction,
                Gravity = Gravity.CenterVertical,
                TextSize=15
            };
            addTargetFL.AddChidren(target);
            var targetAdd = new Button
            {
                X = Application.GetRealWidth(950),
                Y = Application.GetRealHeight(46),
                Width = Application.GetMinRealAverage(72),
                Height = Application.GetMinRealAverage(72),
                Gravity=Gravity.CenterVertical,
                UnSelectedImagePath = "Item/Add.png",
            };
            addTargetFL.AddChidren(targetAdd);
            var targetLine = new Button()
            {
                Y = target.Bottom,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            addTargetFL.AddChidren(targetLine);
            TargetListScrolView = new FrameLayout()
            {
                Height = Application.GetRealHeight(173)
            };
            bodyScrolView.AddChidren(TargetListScrolView);
            confirmBtn = new CommonForm.CompleteButton(1656, 907, 127);
            confirmBtn.TextID = R.MyInternationalizationString.uFinish;
            AddChidren(confirmBtn);
            if (isModify)
            {
                IconPathType = modifySceneUI.IconPathType;
                OldIconPathType = modifySceneUI.IconPathType;
                if (IconPathType != 0)
                {
                    OldBackgroundImagePath = modifySceneUI.IconPath;
                }
                if (modifySceneUI.IconPathType == 0)
                {
                    backGround.ImagePath = modifySceneUI.IconPath;
                }
                else
                {
                    backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath);
                }
                nameRow.SetTitle(modifySceneUI.Name);
                if (Config.Instance.Home.FloorDics.Count == 0)
                {
                    zoneRow.SetTitle($"{modifyRoom.Name}");
                }
                else
                {
                    zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}");
                }
                curRoom = modifyRoom;
                sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList);
            }
            RefreshTargetListView();
            #region event
            EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) =>
            {
                if (curRoom != null && curRoom.IsSharedRoom)
                {
                    RoomCommon.ShowTipRoomIsShared();
                    return;
                }
                int selectRow_Height = 150;
                int selectRow_Width = 1034;
                var selectFL = new FrameLayout()
                {
                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
                };
                AddChidren(selectFL);
                var itemFL = new FrameLayout()
                {
                    Y = Application.GetRealHeight(1276),
                    Height = Application.GetRealHeight(450),
                    Width = Application.GetRealWidth(selectRow_Width),
                    Gravity = Gravity.CenterHorizontal,
                    Radius = (uint)Application.GetRealHeight(35),
                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
                };
                selectFL.AddChidren(itemFL);
                //itemFL.Animate = Animate.DownToUp;
                var selectLocalPicture = new Button()
                {
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.LocalPicture,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize=17
                };
                itemFL.AddChidren(selectLocalPicture);
                var selectLocalLine = new Button()
                {
                    Y = selectLocalPicture.Bottom,
                    Height = 1,
                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
                };
                itemFL.AddChidren(selectLocalLine);
                var selectPhotographBtn = new Button()
                {
                    Y = selectLocalLine.Bottom,
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.Photograph,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize=17
                };
                itemFL.AddChidren(selectPhotographBtn);
                var selectPhotographLine = new Button()
                {
                    Y = selectPhotographBtn.Bottom,
                    Height = 1,
                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
                };
                itemFL.AddChidren(selectPhotographLine);
                var selectAblumsBtn = new Button()
                {
                    Y = selectPhotographLine.Bottom,
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.MyAblums,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize=17
                };
                itemFL.AddChidren(selectAblumsBtn);
                var cancelBtn = new Button()
                {
                    Y = Application.GetRealHeight(1742),
                    Height = Application.GetRealHeight(selectRow_Height),
                    Width = Application.GetRealWidth(selectRow_Width),
                    Gravity = Gravity.CenterHorizontal,
                    TextID = R.MyInternationalizationString.Cancel,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
                    Radius = (uint)Application.GetRealHeight(35),
                    TextSize=17
                };
                selectFL.AddChidren(cancelBtn);
                selectLocalPicture.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var localPic = new CategorySceneSelectImgByLocal();
                    Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic);
                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                    localPic.Show();
                    localPic.action = (imgPath) =>
                    {
                        IconPathType = 0;
                        backGround.ImageBytes = null;
                        backGround.ImagePath = imgPath;
                    };
                };
                selectPhotographBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                    var fileName = $"SceneIcon_{tradeTime}.png";
                    //通过相机拍照裁剪
                    CropImage.TakePicture((imagePath) =>
using static ZigBee.Device.Scene;
namespace Shared.Phone.Device.Category
{
    public class CategoryAddScene : FrameLayout
    {
        #region ◆ 变量____________________________
        /// <summary>
        /// bodyFrameLayout
        /// </summary>
        private FrameLayout bodyFrameLayout;
        ///// <summary>
        ///// floorIds
        ///// </summary>
        //List<string> floorIds = new List<string> { };
        ///// <summary>
        ///// floorNames
        ///// </summary>
        //List<string> floorNames = new List<string> { };
        ///// <summary>
        ///// roomNames
        ///// </summary>
        //List<List<string>> roomNames = new List<List<string>> { };
        ///// <summary>
        ///// roomNames
        ///// </summary>
        //List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
        /// <summary>
        /// ImagePath
        /// </summary>
        private string ImagePath = "SceneIcon/1.png";
        /// <summary>
        /// 图片来源 0--本地图库 1--拍照 2--系统图库
        /// </summary>
        public int IconPathType = 0;
        /// <summary>
        /// curRoom
        /// </summary>
        private Common.Room curRoom;
        /// <summary>
        /// sceneTargetDevicesList
        /// </summary>
        private List<SceneTargetDeviceUI> sceneTargetDevicesList = new List<SceneTargetDeviceUI> { };
        /// <summary>
        /// 添加目标后的展示列表
        /// </summary>
        public FrameLayout TargetListScrolView;
        /// <summary>
        /// The confirm button.
        /// </summary>
        private CommonForm.CompleteButton confirmBtn;
        /// <summary>
        /// backGround
        /// </summary>
        private ImageView backGround;
        /// <summary>
        /// 是否修改
        /// </summary>
        public bool isModify;
        /// <summary>
        /// 修改的场景
        /// </summary>
        public SceneUI modifySceneUI;
        /// <summary>
        /// 记录编辑前的设备列表
        /// </summary>
        public List<SceneTargetDeviceUI> modifySceneTargetDevicesList;
        /// <summary>
        /// modifyRoom
        /// </summary>
        public Common.Room modifyRoom;
        /// <summary>
        /// OldBackgroundImagePath
        /// </summary>
        private string OldBackgroundImagePath;
        /// <summary>
        /// OldIconPathType
        /// </summary>
        public int OldIconPathType;
        /// <summary>
        /// selectedTimeAction
        /// </summary>
        private Action<SceneTargetDeviceUI> selectedAction;
        /// <summary>
        /// 修改场景action
        /// </summary>
        public Action<SceneUI, Common.Room> EditorAction;
        /// <summary>
        /// 添加场景action
        /// </summary>
        public Action AddAction;
        #endregion
        /// <summary>
        /// CategoryAddScene
        /// </summary>
        public CategoryAddScene()
        {
            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
        }
        /// <summary>
        /// RemoveFromParent
        /// </summary>
        public override void RemoveFromParent()
        {
            UserView.HomePage.Instance.ScrollEnabled = true;
            base.RemoveFromParent();
        }
        /// <summary>
        ///刷新添加目标后的展示列表
        /// </summary>
        public void RefreshTargetListView()
        {
            UserView.HomePage.Instance.ScrollEnabled = false;
            TargetListScrolView.RemoveAll();
            TargetListScrolView.Height = Application.GetRealHeight(173);
            var TargetListScrolBackView = new FrameLayout()
            {
                Height = Application.GetRealHeight(173),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            TargetListScrolView.AddChidren(TargetListScrolBackView);
            if (sceneTargetDevicesList.Count > 0)
            {
                if (sceneTargetDevicesList.Count > 1)
                {
                    TargetListScrolView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count) + Application.GetRealHeight(200);
                    TargetListScrolBackView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count + 13);
                }
                for (int i = 0; i < sceneTargetDevicesList.Count; i++)
                {
                    var targetDevice = sceneTargetDevicesList[i];
                    var targetRowLayout = new RowLayout()
                    {
                        if (string.IsNullOrEmpty(imagePath))
                        {
                            return;
                        }
                        if (isModify)
                        {
                            if (IconPathType != 0)
                            {
                                Global.DeleteFilebyHomeId(backGround.ImagePath);
                                HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
                            }
                        }
                        IconPathType = 1;
                        backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
                        backGround.ImagePath = imagePath;
                        System.IO.File.Delete(imagePath);
                    }, fileName, 2, 1);
                };
                selectAblumsBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                    var fileName = $"SceneIcon_{tradeTime}.png";
                    //从相册选择图片裁剪
                    CropImage.SelectPicture((imagePath) =>
                        Y = Application.GetRealHeight(i * 140),
                        Height = Application.GetRealHeight(140),
                        LineColor = ZigbeeColor.Current.GXCClearColor,
                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                        SubViewWidth = Application.GetRealWidth(184)
                    };
                    TargetListScrolView.AddChidren(targetRowLayout);
                    string devImgPath = string.Empty;
                    string devNameText = string.Empty;
                    if (targetDevice.Type == 0)
                    {
                        if (string.IsNullOrEmpty(imagePath))
                        {
                            return;
                        }
                        if (isModify)
                        {
                            if (IconPathType != 0)
                            {
                                Global.DeleteFilebyHomeId(backGround.ImagePath);
                                HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
                            }
                        }
                        IconPathType = 2;
                        backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
                        backGround.ImagePath = imagePath;
                        System.IO.File.Delete(imagePath);
                    }, fileName, 2,1);
                };
                cancelBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                };
                selectFL.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                };
            };
            backGround.MouseUpEventHandler += backGroundIMGHander;
            //区域
            EventHandler<MouseEventArgs> zoneHander = (sender, e) =>
            {
                var zone = new SelectZone();
                zone.Init();
                zone.ZoneAction += (selectRoom) =>
                {
                    curRoom = selectRoom;
                    zoneRow.SetTitle(HdlRoomLogic.Current.GetZoneName(selectRoom));
                };
            };
            zoneRow.ClickBtn.MouseUpEventHandler += zoneHander;
            //执行目标-添加执行设备
            EventHandler<MouseEventArgs> targetAddHander = (sender, e) =>
            {
                //if (curRoom == null)
                //{
                //    RoomCommon.ShowTipNoRoom();
                //    return;
                //}
                if(curRoom != null)
                {
                    if (curRoom.IsSharedRoom)
                    {
                        RoomCommon.ShowTipRoomIsShared();
                        return;
                    }
                }
                int selectRow_Height = 150;
                int selectRow_Width = 1034;
                var selectFL = new FrameLayout()
                {
                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
                };
                AddChidren(selectFL);
                var itemFL = new FrameLayout()
                {
                    Y = Application.GetRealHeight(1276),
                    Height = Application.GetRealHeight(450),
                    Width = Application.GetRealWidth(selectRow_Width),
                    Gravity=Gravity.CenterHorizontal,
                    Radius = (uint)Application.GetRealHeight(35),
                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
                };
                selectFL.AddChidren(itemFL);
                //itemFL.Animate = Animate.DownToUp;
                var selectedFunctionBtn = new Button()
                {
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.Function,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize=17
                };
                itemFL.AddChidren(selectedFunctionBtn);
                var selectedFunctionLine = new Button()
                {
                    Y = selectedFunctionBtn.Bottom,
                    Height = 1,
                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
                };
                itemFL.AddChidren(selectedFunctionLine);
                var selectedSceneBtn = new Button()
                {
                    Y = selectedFunctionLine.Bottom,
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.Scence,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize=17
                };
                itemFL.AddChidren(selectedSceneBtn);
                var selectedSceneLine = new Button()
                {
                    Y = selectedSceneBtn.Bottom,
                    Height = 1,
                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
                };
                itemFL.AddChidren(selectedSceneLine);
                var selectedTimerBtn = new Button()
                {
                    Y = selectedSceneLine.Bottom,
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.Delay,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize=17
                };
                itemFL.AddChidren(selectedTimerBtn);
                var cancelBtn = new Button()
                {
                    Y = Application.GetRealHeight(1742),
                    Height = Application.GetRealHeight(selectRow_Height),
                    Width = Application.GetRealWidth(selectRow_Width),
                    Gravity=Gravity.CenterHorizontal,
                    TextID = R.MyInternationalizationString.Cancel,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
                    Radius = (uint)Application.GetRealHeight(35),
                    TextSize=17
                };
                selectFL.AddChidren(cancelBtn);
                //添加功能
                selectedFunctionBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var deviceView = new SelectDevice();
                    UserView.HomePage.Instance.AddChidren(deviceView);
                    UserView.HomePage.Instance.PageIndex += 1;
                    deviceView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
                    deviceView.Show();
                    deviceView.selectedAction = (selectedDevice) =>
                    {
                        sceneTargetDevicesList.Add(selectedDevice);
                        RefreshTargetListView();
                    };
                };
                //添加场景
                selectedSceneBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var sceneView = new SelectScene();
                    UserView.HomePage.Instance.AddChidren(sceneView);
                    UserView.HomePage.Instance.PageIndex += 1;
                    sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
                    sceneView.currentSceneUI = modifySceneUI;
                    sceneView.Show();
                    sceneView.selectedAction = (selectedScene) =>
                    {
                        sceneTargetDevicesList.Add(selectedScene);
                        RefreshTargetListView();
                    };
                };
                //添加时间间隔
                selectedTimerBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var delayTimeView = new SelectDelayTime();
                    UserView.HomePage.Instance.AddChidren(delayTimeView);
                    UserView.HomePage.Instance.PageIndex += 1;
                    delayTimeView.Show();
                    delayTimeView.selectedTimeAction = (second) =>
                    {
                        sceneTargetDevicesList.Add(second);
                        RefreshTargetListView();
                    };
                };
                cancelBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                };
                selectFL.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                };
            };
            targetAdd.MouseUpEventHandler += targetAddHander;
            targetFL.MouseUpEventHandler += targetAddHander;
            target.MouseUpEventHandler += targetAddHander;
            addTargetFL.MouseUpEventHandler += targetAddHander;
            //确定添加目标
            confirmBtn.MouseUpEventHandler += async (sender, e) =>
            {
                if (curRoom == null)
                {
                    RoomCommon.ShowTipNoRoom();
                    return;
                }
                if (curRoom.IsSharedRoom)
                {
                    RoomCommon.ShowTipRoomIsShared();
                    return;
                }
                if(isModify)
                {
                    if (string.IsNullOrEmpty(nameRow.NameText.Text))
                    {
                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
                        return;
                    }
                    else
                    {
                        try
                        {
                            var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                            var fileName = $"SceneIcon_{tradeTime}.png";
                            if (modifySceneUI.Name != nameRow.NameText.Text.Trim())
                            {
                                if (HdlSceneLogic.Current.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
                                {
                                    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                                    return;
                                }
                                var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim());
                                var reName = r.sceneRenameResponseData.Result;
                                if (reName == 0)
                                {
                                    return;
                                }
                                else if (reName == 1)
                                {
                                    modifySceneUI.Name = nameRow.NameText.Text.Trim();
                                }
                                else if (reName == 2)
                                {
                                    return;
                                }
                            }
                            if (OldIconPathType != 0)
                            {
                                Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath));
                                HdlAutoBackupLogic.DeleteFile(OldBackgroundImagePath);
                            }
                            if (IconPathType == 1 || IconPathType == 2)
                            {
                                Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
                                HdlAutoBackupLogic.AddOrEditorFile(fileName);
                                modifySceneUI.IconPath = fileName;
                            }
                            else
                            {
                                modifySceneUI.IconPath = backGround.ImagePath;
                            }
                            modifySceneUI.IconPathType = IconPathType;
                            CommonPage.Loading.Start();
                            var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
                            for (int i = 0; i < sceneTargetDevicesList.Count; i++)
                            {
                                var sceneTarget = sceneTargetDevicesList[i];
                                if (sceneTarget.Type == 0)
                                {
                                    if (sceneTarget.DeviceUI == null)
                                    {
                                        continue;
                                    }
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 0,
                                        ScenesId = 0,
                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                        TaskList = sceneTarget.TaskList,
                                        DelayTime = 0,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                                else if (sceneTarget.Type == 1)
                                {
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 1,
                                        ScenesId = 0,
                                        ElseScenesId = sceneTarget.ElseScenesId,
                                        DelayTime = 0,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                                else if (sceneTarget.Type == 2)
                                {
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 2,
                                        ScenesId = 0,
                                        DelayTime = sceneTarget.DelayTime,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                            }
                            var sceneRemoveMemberData = new SceneRemoveMemberData { };
                            var removeSceneDeviceListInfoList = new List<RemoveSceneDeviceListInfo> { };
                            for (int i = 0; i < modifySceneTargetDevicesList.Count; i++)
                            {
                                var sceneTarget = modifySceneTargetDevicesList[i];
                                if (sceneTarget.Type == 0)
                                {
                                    if (sceneTarget.DeviceUI == null)
                                    {
                                        continue;
                                    }
                                    var removeDevice = new RemoveSceneDeviceListInfo
                                    {
                                        Type = 0,
                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
                                    };
                                    removeSceneDeviceListInfoList.Add(removeDevice);
                                }
                                else if (sceneTarget.Type == 1)
                                {
                                    var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
                                    {
                                        Type = 1,
                                        ElseScenesId = sceneTarget.ElseScenesId,
                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
                                    };
                                    removeSceneDeviceListInfoList.Add(removeDevice);
                                }
                                else
                                {
                                    var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
                                    {
                                        Type = 2,
                                        DelayTime = sceneTarget.DelayTime,
                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
                                    };
                                    removeSceneDeviceListInfoList.Add(removeDevice);
                                }
                            }
                            sceneRemoveMemberData.DeviceList = removeSceneDeviceListInfoList;
                            sceneRemoveMemberData.ScenesId = modifySceneUI.Id;
                            var result = await HdlSceneLogic.Current.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList);
                            if (result == 1)
                            {
                                if (modifyRoom != curRoom)
                                {
                                    modifyRoom.ListSceneId.Remove(modifySceneUI.Id);
                                    curRoom.ListSceneId.Add(modifySceneUI.Id);
                                    modifyRoom.Save();
                                    curRoom.Save();
                                }
                                EditorAction?.Invoke(modifySceneUI, curRoom);
                                RemoveFromParent();
                            }
                            else if (result == 0)
                            {
                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
                            }
                            else if (result == -1)
                            {
                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                            }
                        }
                        catch (Exception ex)
                        {
                            System.Console.WriteLine($"分类添加场景出错{ex.Message}");
                        }
                        finally
                        {
                            CommonPage.Loading.Hide();
                        }
                    }
                }
                else
                {
                    //新增
                    if (string.IsNullOrEmpty(nameRow.NameText.Text))
                    {
                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
                        return;
                    }
                    else
                    {
                        try
                        {
                            var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                            var fileName = $"SceneIcon_{tradeTime}.png";
                            string imgPath;
                            if (IconPathType == 1 || IconPathType == 2)
                            {
                                Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
                                HdlAutoBackupLogic.AddOrEditorFile(fileName);
                                imgPath = fileName;
                            }
                            else
                            {
                                imgPath = backGround.ImagePath;
                            }
                            //if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
                            //{
                            //    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                            //    return;
                            //}
                            CommonPage.Loading.Start();
                            var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
                            for (int i = 0; i < sceneTargetDevicesList.Count; i++)
                            {
                                var sceneTarget = sceneTargetDevicesList[i];
                                if (sceneTarget.Type == 0)
                                {
                                    if (sceneTarget.DeviceUI == null)
                                    {
                                        continue;
                                    }
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 0,
                                        ScenesId = 0,
                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                        TaskList = sceneTarget.TaskList,
                                        DelayTime = 0,
                                        MemberNumber = i+1
                                    };
                                    memberDataList.Add(memberData);
                                }
                                else if (sceneTarget.Type == 1)
                                {
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 1,
                                        ScenesId = 0,
                                        ElseScenesId = sceneTarget.ElseScenesId,
                                        DelayTime = 0,
                                        MemberNumber = i+1
                                    };
                                    memberDataList.Add(memberData);
                                }
                                else if (sceneTarget.Type == 2)
                                {
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 2,
                                        ScenesId = 0,
                                        DelayTime = sceneTarget.DelayTime,
                                        MemberNumber = i+1
                                    };
                                    memberDataList.Add(memberData);
                                }
                            }
                            var result = await HdlSceneLogic.Current.AddScene(curRoom, nameRow.NameText.Text, imgPath, memberDataList, IconPathType);
                            if (result == 1)
                            {
                                AddAction?.Invoke();
                                RemoveFromParent();
                            }
                            else if (result == 0)
                            {
                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AddSceneFail));
                            }
                            else if (result == -1)
                            {
                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                            }
                        }
                        catch (Exception ex)
                        {
                            System.Console.WriteLine($"分类添加场景出错{ex.Message}");
                        }
                        finally
                        {
                            CommonPage.Loading.Hide();
                        }
                    }
                }
            };
            #endregion
        }
        #endregion
        #region 编辑设备____________________________________
        /// <summary>
        /// ShowSelectAction
        /// </summary>
        /// <param name="device"></param>
        private void ShowSelectAction(CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            var dialog = new FrameLayout()
            {
                BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
            };
            AddChidren(dialog);
            dialog.MouseUpEventHandler += (sender, e) =>
            {
                dialog.RemoveFromParent();
            };
            if (device.Type == ZigBee.Device.DeviceType.OnOffOutput)
            {
                SelectOnoffOutput(dialog, device, sceneTarget);
            }
            else if (device.Type == ZigBee.Device.DeviceType.AirSwitch)
            {
                SelectOnoffOutput(dialog, device, sceneTarget);
            }
            else if (device.Type == ZigBee.Device.DeviceType.DimmableLight)
            {
                SelectDimmableLight(dialog, device, sceneTarget);
            }
            else if (device.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
            {
                SelectWindowCoveringDevice(dialog, device, sceneTarget);
            }
            else if (device.Type == ZigBee.Device.DeviceType.Thermostat)
            {
                SelectThermostat(dialog, device, sceneTarget);
            }
        }
        /// <summary>
        /// 灯光
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="device"></param>
        /// <param name="sceneTarget"></param>
        private void SelectOnoffOutput(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            var selectFL = new FrameLayout
            {
                Y = Application.GetRealHeight(1391),
                Height = Application.GetRealHeight(530),
            };
            dialog.AddChidren(selectFL);
            //selectFL.Animate = Animate.DownToUp;
            var titleBG = new FrameLayout
            {
                Height = Application.GetRealHeight(138 * 2),
                Radius = (uint)Application.GetRealHeight(58),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(titleBG);
            var titleFL = new FrameLayout
            {
                Height = Application.GetRealHeight(138),
            };
            selectFL.AddChidren(titleFL);
            var line = new Button
            {
                Y = titleFL.Height - 1,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            titleFL.AddChidren(line);
            var cancleBtn = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.Cancel
            };
            titleFL.AddChidren(cancleBtn);
            var deviceName = new Button
            {
                Width = Application.GetRealWidth(600),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 16,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
            };
            titleFL.AddChidren(deviceName);
            var comfrimBtn = new Button
            {
                X = Application.GetRealWidth(800),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterRight,
                TextID = R.MyInternationalizationString.Complete
            };
            titleFL.AddChidren(comfrimBtn);
            var itemFL = new FrameLayout
            {
                Y = titleFL.Bottom,
                Height = Application.GetRealHeight(392),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(itemFL);
            var open = new SelectSceneStatuRow(0, 60);
            itemFL.AddChidren(open);
            open.Init();
            open.SetTitle(R.MyInternationalizationString.Open);
            open.IsSelected = true;
            var shut = new SelectSceneStatuRow(0, 60 + 127 + 30);
            itemFL.AddChidren(shut);
            shut.Init();
            shut.hideLine(true);
            shut.SetTitle(R.MyInternationalizationString.Shut);
            open.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
            };
            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = false;
                shut.IsSelected = true;
            };
            cancleBtn.MouseUpEventHandler = (sender, e) =>
            {
                dialog.RemoveAll();
                dialog.RemoveFromParent();
            };
            if (sceneTarget.TaskList.Count > 0)
            {
                if (sceneTarget.TaskList[0].Data1 == 1)
                {
                    open.IsSelected = true;
                    shut.IsSelected = false;
                }
                else
                {
                    open.IsSelected = false;
                    shut.IsSelected = true;
                }
            }
            comfrimBtn.MouseUpEventHandler = (sender, e) =>
            {
                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
                int taskType = 1;
                int data1 = 0;
                int data2 = 0;
                if (open.IsSelected)
                {
                    //开
                    data1 = 1;
                    data2 = 0;
                }
                else
                {
                    //关
                    data1 = 0;
                    data2 = 0;
                }
                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                {
                    TaskType = taskType,
                    Data1 = data1,
                    Data2 = data2
                };
                taskList.Add(taskInfo);
                sceneTarget.TaskList = taskList;
                sceneTarget.DeviceUI = device;
                selectedAction?.Invoke(sceneTarget);
                dialog.RemoveFromParent();
            };
        }
        /// <summary>
        /// 窗帘
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="device"></param>
        /// <param name="sceneTarget"></param>
        private void SelectWindowCoveringDevice(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            var selectFL = new FrameLayout
            {
                Y = Application.GetRealHeight(1169),
                Height = Application.GetRealHeight(752),
            };
            dialog.AddChidren(selectFL);
            //selectFL.Animate = Animate.DownToUp;
            var titleBG = new FrameLayout
            {
                Height = Application.GetRealHeight(138 * 2),
                Radius = (uint)Application.GetRealHeight(58),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(titleBG);
            var titleFL = new FrameLayout
            {
                Height = Application.GetRealHeight(138),
            };
            selectFL.AddChidren(titleFL);
            var line = new Button
            {
                Y = titleFL.Height - 1,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            titleFL.AddChidren(line);
            var cancleBtn = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.Cancel
            };
            titleFL.AddChidren(cancleBtn);
            var deviceName = new Button
            {
                Width = Application.GetRealWidth(600),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 16,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
            };
            titleFL.AddChidren(deviceName);
            var comfrimBtn = new Button
            {
                X = Application.GetRealWidth(800),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterRight,
                TextID = R.MyInternationalizationString.Complete
            };
            titleFL.AddChidren(comfrimBtn);
            var itemFL = new FrameLayout
            {
                Y = titleFL.Bottom,
                Height = Application.GetRealHeight(613),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(itemFL);
            var open = new SelectDeviceWithSeekBarRow(0, 60);
            itemFL.AddChidren(open);
            open.Init();
            open.SetTitle(R.MyInternationalizationString.Open);
            open.IsSelected = true;
            var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
            itemFL.AddChidren(shut);
            shut.Init();
            shut.hideLine(true);
            shut.SetTitle(R.MyInternationalizationString.Shut);
            open.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
            };
            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = false;
                shut.IsSelected = true;
            };
            cancleBtn.MouseUpEventHandler = (sender, e) =>
            {
                dialog.RemoveAll();
                dialog.RemoveFromParent();
            };
            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
                open.SetSeekBarTitle();
            };
            if (sceneTarget.TaskList.Count > 0)
            {
                if (sceneTarget.TaskList[0].Data1 == 1)
                {
                    open.IsSelected = false;
                    shut.IsSelected = true;
                }
                else
                {
                    open.IsSelected = true;
                    shut.IsSelected = false;
                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data2);
                }
            }
            comfrimBtn.MouseUpEventHandler = (sender, e) =>
            {
                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
                int taskType = 6;
                int data1 = 0;
                int data2 = 0;
                if (shut.IsSelected)
                {
                    //关
                    data1 = 1;
                    data2 = 0;
                }
                else
                {
                    //百分比
                    data1 = 5;
                    data2 = open.SeekBar.Progress;
                }
                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                {
                    TaskType = taskType,
                    Data1 = data1,
                    Data2 = data2
                };
                taskList.Add(taskInfo);
                sceneTarget.TaskList = taskList;
                sceneTarget.DeviceUI = device;
                selectedAction?.Invoke(sceneTarget);
                dialog.RemoveFromParent();
            };
        }
        /// <summary>
        /// 调光灯
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="device"></param>
        /// <param name="sceneTarget"></param>
        private void SelectDimmableLight(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            var selectFL = new FrameLayout
            {
                Y = Application.GetRealHeight(1169),
                Height = Application.GetRealHeight(752),
            };
            dialog.AddChidren(selectFL);
            //selectFL.Animate = Animate.DownToUp;
            var titleBG = new FrameLayout
            {
                Height = Application.GetRealHeight(138 * 2),
                Radius = (uint)Application.GetRealHeight(58),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(titleBG);
            var titleFL = new FrameLayout
            {
                Height = Application.GetRealHeight(138),
            };
            selectFL.AddChidren(titleFL);
            var line = new Button
            {
                Y = titleFL.Height - 1,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            titleFL.AddChidren(line);
            var cancleBtn = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.Cancel
            };
            titleFL.AddChidren(cancleBtn);
            var deviceName = new Button
            {
                Width = Application.GetRealWidth(600),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 16,
                TextAlignment = TextAlignment.CenterLeft,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
            };
            titleFL.AddChidren(deviceName);
            var comfrimBtn = new Button
            {
                X = Application.GetRealWidth(800),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterRight,
                TextID = R.MyInternationalizationString.Complete
            };
            titleFL.AddChidren(comfrimBtn);
            var itemFL = new FrameLayout
            {
                Y = titleFL.Bottom,
                Height = Application.GetRealHeight(613),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(itemFL);
            var open = new SelectDeviceWithSeekBarRow(0, 60);
            itemFL.AddChidren(open);
            open.Init(254);
            open.SetTitle(R.MyInternationalizationString.Open);
            open.IsSelected = true;
            var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
            itemFL.AddChidren(shut);
            shut.Init();
            shut.hideLine(true);
            shut.SetTitle(R.MyInternationalizationString.Shut);
            open.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
            };
            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = false;
                shut.IsSelected = true;
            };
            cancleBtn.MouseUpEventHandler = (sender, e) =>
            {
                dialog.RemoveAll();
                dialog.RemoveFromParent();
            };
            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
                open.SetSeekBarTitle();
            };
            if (sceneTarget.TaskList.Count > 0)
            {
                if (sceneTarget.TaskList[0].Data1 == 0)
                {
                    open.IsSelected = false;
                    shut.IsSelected = true;
                }
                else
                {
                    open.IsSelected = true;
                    shut.IsSelected = false;
                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data1);
                }
            }
            comfrimBtn.MouseUpEventHandler = (sender, e) =>
            {
                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
                int taskType = 3;
                int data1 = 0;
                int data2 = 0;
                if (shut.IsSelected)
                {
                    //关
                    data1 = 0;
                    data2 = 0;
                }
                else
                {
                    //百分比
                    data1 = open.SeekBar.Progress;
                    data2 = 0;
                }
                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                {
                    TaskType = taskType,
                    Data1 = data1,
                    Data2 = data2
                };
                taskList.Add(taskInfo);
                sceneTarget.TaskList = taskList;
                sceneTarget.DeviceUI = device;
                selectedAction?.Invoke(sceneTarget);
                dialog.RemoveFromParent();
            };
        }
        /// <summary>
        /// 空调
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="device"></param>
        /// <param name="sceneTarget"></param>
        private void SelectThermostat(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
        /// 温度
        int tempId=0;
        /// 模式
        int modelId=0;
        /// 风速
        int fanid=0;
            var selectFL = new FrameLayout
            {
                Y = Application.GetRealHeight(815),
                Height = Application.GetRealHeight(1106),
            };
            dialog.AddChidren(selectFL);
            //selectFL.Animate = Animate.DownToUp;
            var titleBG = new FrameLayout
            {
                Height = Application.GetRealHeight(138 * 2),
                Radius = (uint)Application.GetRealHeight(58),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(titleBG);
            var titleFL = new FrameLayout
            {
                Height = Application.GetRealHeight(138),
            };
            selectFL.AddChidren(titleFL);
            var line = new Button
            {
                Y = titleFL.Height - 1,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            titleFL.AddChidren(line);
            var cancleBtn = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.Cancel
            };
            titleFL.AddChidren(cancleBtn);
            var deviceName = new Button
            {
                Width = Application.GetRealWidth(600),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 16,
                TextAlignment = TextAlignment.CenterLeft,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
            };
            titleFL.AddChidren(deviceName);
            var comfrimBtn = new Button
            {
                X = Application.GetRealWidth(800),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterRight,
                TextID = R.MyInternationalizationString.Complete
            };
            titleFL.AddChidren(comfrimBtn);
            var itemFL = new FrameLayout
            {
                Y = titleFL.Bottom,
                Height = Application.GetRealHeight(968),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(itemFL);
            var open = new SelectDeviceWithPickViewRow(0, 60);
            itemFL.AddChidren(open);
            open.Init();
            open.SetTitle(R.MyInternationalizationString.Open);
            open.IsSelected = true;
            open.pickerView.OnSelectChangeEvent = (l1, l2, l3) =>
            {
                tempId = l1;
                modelId = l2;
                fanid = l3;
            };
            var shut = new SelectSceneStatuRow(0, 60 + 703 + 30);
            itemFL.AddChidren(shut);
            shut.Init();
            shut.hideLine(true);
            shut.SetTitle(R.MyInternationalizationString.Shut);
            open.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
            };
            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = false;
                shut.IsSelected = true;
            };
            cancleBtn.MouseUpEventHandler = (sender, e) =>
            {
                dialog.RemoveAll();
                dialog.RemoveFromParent();
            };
            if (sceneTarget.TaskList.Count > 0)
            {
                if (sceneTarget.TaskList.Count == 1)
                {
                    open.IsSelected = false;
                    shut.IsSelected = true;
                }
                else
                {
                    open.IsSelected = true;
                    shut.IsSelected = false;
                    for (int i = 0; i < sceneTarget.TaskList.Count; i++)
                    {
                        var tasklist = sceneTarget.TaskList[i];
                        if (tasklist.Data1 == 6)
                        {
                            fanid = open.fanList.IndexOf(tasklist.Data2);
                        }
                        if (tasklist.Data1 == 3)
                        {
                            modelId = open.modeList.IndexOf(tasklist.Data2);
                        }
                        if (tasklist.Data1 == 4 || tasklist.Data1 == 5)
                        {
                            tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100);
                        }
                    }
                    open.pickerView.setCurrentItems(tempId, modelId, fanid);
                }
            }
            comfrimBtn.MouseUpEventHandler = (sender, e) =>
            {
                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
                int taskType = 5;
                int data1 = 0;
                int data2 = 0;
                if (shut.IsSelected)
                {
                    //关
                    data1 = 3;
                    data2 = 0;
                    var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                    {
                        TaskType = taskType,
                        Data1 = data1,
                        Data2 = data2
                    };
                    taskList.Add(taskInfo);
                }
                else
                {
                    //fan
                    var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                    {
                        TaskType = taskType,
                        Data1 = 6,
                        Data2 = open.fanList[fanid]
                    };
                    taskList.Add(taskInfo);
                    //mode
                    var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo
                    {
                        TaskType = taskType,
                        Data1 = 3,
                        Data2 = open.modeList[modelId]
                    };
                    taskList.Add(taskInfo2);
                    //tem
                    if (open.modeList[modelId] == 4)
                    {
                        //heat
                        var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
                        {
                            TaskType = taskType,
                            Data1 = 4,
                            Data2 = open.temperatureList[tempId] * 100
                        };
                        taskList.Add(taskInfo3);
                    }
                    else
                    {
                        //heat
                        var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
                        {
                            TaskType = taskType,
                            Data1 = 5,
                            Data2 = open.temperatureList[tempId] * 100
                        };
                        taskList.Add(taskInfo3);
                    }
                }
                sceneTarget.TaskList = taskList;
                sceneTarget.DeviceUI = device;
                selectedAction?.Invoke(sceneTarget);
                dialog.RemoveFromParent();
            };
        }
        #endregion
    }
}
                        if (targetDevice.DeviceUI == null) continue;
                        devImgPath = targetDevice.DeviceUI.IconPath;
                        devNameText = Common.LocalDevice.Current.GetDeviceEpointName(targetDevice.DeviceUI);
                        var targetRow = new SceneTargetFunctionRow(13);
                        targetRow.Init();
                        targetRow.SetIcon(devImgPath);
                        targetRow.SetNameText(devNameText);
                        targetRow.SetZoneText(HdlRoomLogic.Current.GetRoomNameByDevice(targetDevice.DeviceUI, ","));
                        targetRow.SetStatuText(targetDevice.GetDeviceStatu());
                        targetRowLayout.AddChidren(targetRow);
                        if (i == sceneTargetDevicesList.Count - 1)
                        {
                            targetRow.HideLine(true);
                        }
                    }
                    else if (targetDevice.Type == 2)
                    {
                        devNameText = CommonFormResouce.GetTimeString(targetDevice.DelayTime);
                        devNameText += Language.StringByID(R.MyInternationalizationString.Later);
                        var targetRow = new SceneTargetTimeRow(13);
                        targetRow.Init();
                        targetRow.SetTitle(devNameText);
                        targetRowLayout.AddChidren(targetRow);
                        if (i == sceneTargetDevicesList.Count - 1)
                        {
                            targetRow.HideLine(true);
                        }
                    }
                    else if (targetDevice.Type == 1)
                    {
                        devImgPath = "Scene/SceneIcon.png";
                        devNameText = targetDevice.SceneName;
                        var targetRow = new SceneTargetFunctionRow(13);
                        targetRow.Init();
                        targetRow.SetIcon(devImgPath);
                        targetRow.SetNameText(devNameText);
                        targetRow.SetZoneText(HdlSceneLogic.Current.GetZoneById(targetDevice.SceneUI.Id));
                        targetRowLayout.AddChidren(targetRow);
                        if (i == sceneTargetDevicesList.Count - 1)
                        {
                            targetRow.HideLine(true);
                        }
                    }
                    var editBtn = new RowLayoutEditButton();
                    targetRowLayout.AddRightView(editBtn);
                    //编辑设备
                    editBtn.MouseUpEventHandler += detailMouseUpEventHandler;
                    var delBtn = new RowLayoutDeleteButton();
                    targetRowLayout.AddRightView(delBtn);
                    //删除设备
                    delBtn.MouseUpEventHandler += (sender, e) =>
                    {
                        sceneTargetDevicesList.Remove(targetDevice);
                        RefreshTargetListView();
                    };
                    //设备详细设置界面
                    void detailMouseUpEventHandler(object sender, MouseEventArgs e)
                    {
                        if (targetDevice.Type == 0)
                        {
                            if (targetDevice.DeviceUI == null)
                            {
                                return;
                            }
                            ShowSelectAction(targetDevice.DeviceUI, targetDevice);
                            selectedAction = (selectedDevice) =>
                            {
                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID);
                                if (targetDeviceUI != null)
                                {
                                    targetDeviceUI.DeviceUI = selectedDevice.DeviceUI;
                                    targetDeviceUI.TaskList = selectedDevice.TaskList;
                                }
                                RefreshTargetListView();
                            };
                        }
                        else if (targetDevice.Type == 2)
                        {
                            var delayTimeView = new SelectDelayTime();
                            UserView.HomePage.Instance.AddChidren(delayTimeView);
                            UserView.HomePage.Instance.PageIndex += 1;
                            delayTimeView.sceneTargetDevice = targetDevice;
                            delayTimeView.totalSecond = targetDevice.DelayTime;
                            delayTimeView.Show();
                            delayTimeView.selectedTimeAction = (second) =>
                            {
                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == second.SceneTargetDeviceUIID);
                                if (targetDeviceUI != null)
                                {
                                    targetDeviceUI.DelayTime = second.DelayTime;
                                }
                                RefreshTargetListView();
                            };
                        }
                        else if (targetDevice.Type == 1)
                        {
                            var sceneView = new SelectScene();
                            UserView.HomePage.Instance.AddChidren(sceneView);
                            UserView.HomePage.Instance.PageIndex += 1;
                            sceneView.sceneTargetDevice = targetDevice;
                            sceneView.sceneUI = targetDevice.SceneUI;
                            sceneView.currentSceneUI = modifySceneUI;
                            sceneView.Show();
                            sceneView.selectedAction = (selectedScene) =>
                            {
                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedScene.SceneTargetDeviceUIID);
                                if (targetDeviceUI != null)
                                {
                                    targetDeviceUI.SceneName = selectedScene.SceneName;
                                    targetDevice.SceneUI = selectedScene.SceneUI;
                                    targetDevice.ElseScenesId = selectedScene.ElseScenesId;
                                }
                                RefreshTargetListView();
                            };
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Show this instance.
        /// </summary>
        public void Show()
        {
            Init();
            AddTop();
            AddBodyView();
        }
        #region Add____________________________________
        /// <summary>
        /// Init
        /// </summary>
        private void Init()
        {
        }
        /// <summary>
        /// AddTop
        /// </summary>
        private void AddTop()
        {
            var top = new TopFrameLayout();
            AddChidren(top);
            top.InitTopview();
            if (isModify)
            {
                top.SetTopTitle(R.MyInternationalizationString.EditorScene);
            }
            else
            {
                top.SetTopTitle(R.MyInternationalizationString.AddScence);
            }
            top.backButton.MouseUpEventHandler += (sender, e) =>
            {
                RemoveFromParent();
            };
        }
        /// <summary>
        /// AddBodyView
        /// </summary>
        private void AddBodyView()
        {
            var bodyScrolView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(184),
                Height = Application.GetRealHeight(1737),
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
            };
            AddChidren(bodyScrolView);
            bodyFrameLayout = new FrameLayout()
            {
                Height = Application.GetRealHeight(1086 + 127),
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
            };
            bodyScrolView.AddChidren(bodyFrameLayout);
            var imgFL = new FrameLayout
            {
                Height = Application.GetRealHeight(559),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            bodyFrameLayout.AddChidren(imgFL);
            var backGround1 = new ImageView()
            {
                Y = Application.GetRealHeight(46),
                Width = Application.GetMinRealAverage(916),
                Height = Application.GetMinRealAverage(487),
                Gravity = Gravity.CenterHorizontal,
                ImagePath = "Room/Room_Rectangle.png"
            };
            imgFL.AddChidren(backGround1);
            backGround = new ImageView()
            {
                Y = Application.GetRealHeight(46),
                Width = Application.GetMinRealAverage(887),
                Height = Application.GetMinRealAverage(444),
                Gravity = Gravity.CenterHorizontal,
                Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius),
                ImagePath = "SceneIcon/3.png"
            };
            imgFL.AddChidren(backGround);
            var infoFL = new FrameLayout
            {
                Y = imgFL.Bottom + Application.GetRealHeight(23),
                Height = Application.GetRealHeight(418),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            bodyFrameLayout.AddChidren(infoFL);
            var infoEdit = new Button
            {
                X = Application.GetRealWidth(CommonFormResouce.X_Left),
                Height = Application.GetRealHeight(130),
                Width = Application.GetRealWidth(700),
                TextID = R.MyInternationalizationString.EditInfo,
                TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 15,
                //IsBold=true
            };
            infoFL.AddChidren(infoEdit);
            var nameRow = new DeviceInfoEditRow(130);
            nameRow.Init();
            nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.SceneName)}:");
            nameRow.SetPlaceHoldText(R.MyInternationalizationString.PleaseInputSceneName);
            infoFL.AddChidren(nameRow);
            var zoneRow = new DeviceInfoRow(257);
            zoneRow.Y = nameRow.Bottom + Application.GetRealHeight(14);
            zoneRow.Init();
            zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:");
            //zoneRow.SetTitle(curRoom.Name);
            infoFL.AddChidren(zoneRow);
            zoneRow.HideLine(true);
            var targetFL = new FrameLayout()
            {
                Y = infoFL.Bottom + Application.GetRealHeight(23),
                Height = Application.GetRealHeight(346)
            };
            bodyFrameLayout.AddChidren(targetFL);
            var targetBG = new FrameLayout
            {
                Height = Application.GetRealHeight(334),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            targetFL.AddChidren(targetBG);
            var addTargetFL = new FrameLayout
            {
                Y = Application.GetRealHeight(46),
                Height = Application.GetRealHeight(127),
            };
            targetFL.AddChidren(addTargetFL);
            var target = new Button()
            {
                X = Application.GetRealWidth(CommonFormResouce.X_Left),
                Height = Application.GetRealHeight(127) - 1,
                Width = Application.GetRealWidth(600),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextID = R.MyInternationalizationString.AddScentTargetAction,
                Gravity = Gravity.CenterVertical,
                TextSize = 15
            };
            addTargetFL.AddChidren(target);
            var targetAdd = new Button
            {
                X = Application.GetRealWidth(950),
                Y = Application.GetRealHeight(46),
                Width = Application.GetMinRealAverage(72),
                Height = Application.GetMinRealAverage(72),
                Gravity = Gravity.CenterVertical,
                UnSelectedImagePath = "Item/Add.png",
            };
            addTargetFL.AddChidren(targetAdd);
            var targetLine = new Button()
            {
                Y = target.Bottom,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            addTargetFL.AddChidren(targetLine);
            TargetListScrolView = new FrameLayout()
            {
                Height = Application.GetRealHeight(173)
            };
            bodyScrolView.AddChidren(TargetListScrolView);
            confirmBtn = new CommonForm.CompleteButton(1656, 907, 127);
            confirmBtn.TextID = R.MyInternationalizationString.uFinish;
            AddChidren(confirmBtn);
            if (isModify)
            {
                IconPathType = modifySceneUI.IconPathType;
                OldIconPathType = modifySceneUI.IconPathType;
                if (IconPathType != 0)
                {
                    OldBackgroundImagePath = modifySceneUI.IconPath;
                }
                if (modifySceneUI.IconPathType == 0)
                {
                    backGround.ImagePath = modifySceneUI.IconPath;
                }
                else
                {
                    backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath);
                }
                nameRow.SetTitle(modifySceneUI.Name);
                if (Config.Instance.Home.FloorDics.Count == 0)
                {
                    zoneRow.SetTitle($"{modifyRoom.Name}");
                }
                else
                {
                    zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}");
                }
                curRoom = modifyRoom;
                sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList);
            }
            RefreshTargetListView();
            #region event
            EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) =>
            {
                if (curRoom != null && curRoom.IsSharedRoom)
                {
                    RoomCommon.ShowTipRoomIsShared();
                    return;
                }
                int selectRow_Height = 150;
                int selectRow_Width = 1034;
                var selectFL = new FrameLayout()
                {
                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
                };
                AddChidren(selectFL);
                var itemFL = new FrameLayout()
                {
                    Y = Application.GetRealHeight(1276),
                    Height = Application.GetRealHeight(450),
                    Width = Application.GetRealWidth(selectRow_Width),
                    Gravity = Gravity.CenterHorizontal,
                    Radius = (uint)Application.GetRealHeight(35),
                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
                };
                selectFL.AddChidren(itemFL);
                //itemFL.Animate = Animate.DownToUp;
                var selectLocalPicture = new Button()
                {
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.LocalPicture,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize = 17
                };
                itemFL.AddChidren(selectLocalPicture);
                var selectLocalLine = new Button()
                {
                    Y = selectLocalPicture.Bottom,
                    Height = 1,
                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
                };
                itemFL.AddChidren(selectLocalLine);
                var selectPhotographBtn = new Button()
                {
                    Y = selectLocalLine.Bottom,
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.Photograph,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize = 17
                };
                itemFL.AddChidren(selectPhotographBtn);
                var selectPhotographLine = new Button()
                {
                    Y = selectPhotographBtn.Bottom,
                    Height = 1,
                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
                };
                itemFL.AddChidren(selectPhotographLine);
                var selectAblumsBtn = new Button()
                {
                    Y = selectPhotographLine.Bottom,
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.MyAblums,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize = 17
                };
                itemFL.AddChidren(selectAblumsBtn);
                var cancelBtn = new Button()
                {
                    Y = Application.GetRealHeight(1742),
                    Height = Application.GetRealHeight(selectRow_Height),
                    Width = Application.GetRealWidth(selectRow_Width),
                    Gravity = Gravity.CenterHorizontal,
                    TextID = R.MyInternationalizationString.Cancel,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
                    Radius = (uint)Application.GetRealHeight(35),
                    TextSize = 17
                };
                selectFL.AddChidren(cancelBtn);
                selectLocalPicture.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var localPic = new CategorySceneSelectImgByLocal();
                    Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic);
                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                    localPic.Show();
                    localPic.action = (imgPath) =>
                    {
                        IconPathType = 0;
                        backGround.ImageBytes = null;
                        backGround.ImagePath = imgPath;
                    };
                };
                selectPhotographBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                    var fileName = $"SceneIcon_{tradeTime}.png";
                    //通过相机拍照裁剪
                    CropImage.TakePicture((imagePath) =>
                    {
                        if (string.IsNullOrEmpty(imagePath))
                        {
                            return;
                        }
                        if (isModify)
                        {
                            if (IconPathType != 0)
                            {
                                Global.DeleteFilebyHomeId(backGround.ImagePath);
                                HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
                            }
                        }
                        IconPathType = 1;
                        backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
                        backGround.ImagePath = imagePath;
                        System.IO.File.Delete(imagePath);
                    }, fileName, 2, 1);
                };
                selectAblumsBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                    var fileName = $"SceneIcon_{tradeTime}.png";
                    //从相册选择图片裁剪
                    CropImage.SelectPicture((imagePath) =>
                    {
                        if (string.IsNullOrEmpty(imagePath))
                        {
                            return;
                        }
                        if (isModify)
                        {
                            if (IconPathType != 0)
                            {
                                Global.DeleteFilebyHomeId(backGround.ImagePath);
                                HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
                            }
                        }
                        IconPathType = 2;
                        backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
                        backGround.ImagePath = imagePath;
                        System.IO.File.Delete(imagePath);
                    }, fileName, 2, 1);
                };
                cancelBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                };
                selectFL.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                };
            };
            backGround.MouseUpEventHandler += backGroundIMGHander;
            //区域
            EventHandler<MouseEventArgs> zoneHander = (sender, e) =>
            {
                var zone = new SelectZone();
                zone.Init();
                zone.ZoneAction += (selectRoom) =>
                {
                    curRoom = selectRoom;
                    zoneRow.SetTitle(HdlRoomLogic.Current.GetZoneName(selectRoom));
                };
            };
            zoneRow.ClickBtn.MouseUpEventHandler += zoneHander;
            //执行目标-添加执行设备
            EventHandler<MouseEventArgs> targetAddHander = (sender, e) =>
            {
                //if (curRoom == null)
                //{
                //    RoomCommon.ShowTipNoRoom();
                //    return;
                //}
                if (curRoom != null)
                {
                    if (curRoom.IsSharedRoom)
                    {
                        RoomCommon.ShowTipRoomIsShared();
                        return;
                    }
                }
                int selectRow_Height = 150;
                int selectRow_Width = 1034;
                var selectFL = new FrameLayout()
                {
                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
                };
                AddChidren(selectFL);
                var itemFL = new FrameLayout()
                {
                    Y = Application.GetRealHeight(1276),
                    Height = Application.GetRealHeight(450),
                    Width = Application.GetRealWidth(selectRow_Width),
                    Gravity = Gravity.CenterHorizontal,
                    Radius = (uint)Application.GetRealHeight(35),
                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
                };
                selectFL.AddChidren(itemFL);
                //itemFL.Animate = Animate.DownToUp;
                var selectedFunctionBtn = new Button()
                {
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.Function,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize = 17
                };
                itemFL.AddChidren(selectedFunctionBtn);
                var selectedFunctionLine = new Button()
                {
                    Y = selectedFunctionBtn.Bottom,
                    Height = 1,
                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
                };
                itemFL.AddChidren(selectedFunctionLine);
                var selectedSceneBtn = new Button()
                {
                    Y = selectedFunctionLine.Bottom,
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.Scence,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize = 17
                };
                itemFL.AddChidren(selectedSceneBtn);
                var selectedSceneLine = new Button()
                {
                    Y = selectedSceneBtn.Bottom,
                    Height = 1,
                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
                };
                itemFL.AddChidren(selectedSceneLine);
                var selectedTimerBtn = new Button()
                {
                    Y = selectedSceneLine.Bottom,
                    Height = Application.GetRealHeight(selectRow_Height) - 1,
                    TextID = R.MyInternationalizationString.Delay,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    TextSize = 17
                };
                itemFL.AddChidren(selectedTimerBtn);
                var cancelBtn = new Button()
                {
                    Y = Application.GetRealHeight(1742),
                    Height = Application.GetRealHeight(selectRow_Height),
                    Width = Application.GetRealWidth(selectRow_Width),
                    Gravity = Gravity.CenterHorizontal,
                    TextID = R.MyInternationalizationString.Cancel,
                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
                    Radius = (uint)Application.GetRealHeight(35),
                    TextSize = 17
                };
                selectFL.AddChidren(cancelBtn);
                //添加功能
                selectedFunctionBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var deviceView = new SelectDevice();
                    UserView.HomePage.Instance.AddChidren(deviceView);
                    UserView.HomePage.Instance.PageIndex += 1;
                    deviceView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
                    deviceView.Show();
                    deviceView.selectedAction = (selectedDevice) =>
                    {
                        sceneTargetDevicesList.Add(selectedDevice);
                        RefreshTargetListView();
                    };
                };
                //添加场景
                selectedSceneBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var sceneView = new SelectScene();
                    UserView.HomePage.Instance.AddChidren(sceneView);
                    UserView.HomePage.Instance.PageIndex += 1;
                    sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
                    sceneView.currentSceneUI = modifySceneUI;
                    sceneView.Show();
                    sceneView.selectedAction = (selectedScene) =>
                    {
                        sceneTargetDevicesList.Add(selectedScene);
                        RefreshTargetListView();
                    };
                };
                //添加时间间隔
                selectedTimerBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                    var delayTimeView = new SelectDelayTime();
                    UserView.HomePage.Instance.AddChidren(delayTimeView);
                    UserView.HomePage.Instance.PageIndex += 1;
                    delayTimeView.Show();
                    delayTimeView.selectedTimeAction = (second) =>
                    {
                        sceneTargetDevicesList.Add(second);
                        RefreshTargetListView();
                    };
                };
                cancelBtn.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                };
                selectFL.MouseUpEventHandler += (send, ee) =>
                {
                    selectFL.RemoveFromParent();
                };
            };
            targetAdd.MouseUpEventHandler += targetAddHander;
            targetFL.MouseUpEventHandler += targetAddHander;
            target.MouseUpEventHandler += targetAddHander;
            addTargetFL.MouseUpEventHandler += targetAddHander;
            //确定添加目标
            confirmBtn.MouseUpEventHandler += async (sender, e) =>
            {
                if (curRoom == null)
                {
                    RoomCommon.ShowTipNoRoom();
                    return;
                }
                if (curRoom.IsSharedRoom)
                {
                    RoomCommon.ShowTipRoomIsShared();
                    return;
                }
                if (isModify)
                {
                    if (string.IsNullOrEmpty(nameRow.NameText.Text))
                    {
                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
                        return;
                    }
                    else
                    {
                        try
                        {
                            var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                            var fileName = $"SceneIcon_{tradeTime}.png";
                            if (modifySceneUI.Name != nameRow.NameText.Text.Trim())
                            {
                                if (HdlSceneLogic.Current.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
                                {
                                    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                                    return;
                                }
                                var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim());
                                var reName = r.sceneRenameResponseData.Result;
                                if (reName == 0)
                                {
                                    return;
                                }
                                else if (reName == 1)
                                {
                                    modifySceneUI.Name = nameRow.NameText.Text.Trim();
                                }
                                else if (reName == 2)
                                {
                                    return;
                                }
                            }
                            if (OldIconPathType != 0)
                            {
                                Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath));
                                HdlAutoBackupLogic.DeleteFile(OldBackgroundImagePath);
                            }
                            if (IconPathType == 1 || IconPathType == 2)
                            {
                                Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
                                HdlAutoBackupLogic.AddOrEditorFile(fileName);
                                modifySceneUI.IconPath = fileName;
                            }
                            else
                            {
                                modifySceneUI.IconPath = backGround.ImagePath;
                            }
                            modifySceneUI.IconPathType = IconPathType;
                            CommonPage.Loading.Start();
                            var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
                            for (int i = 0; i < sceneTargetDevicesList.Count; i++)
                            {
                                var sceneTarget = sceneTargetDevicesList[i];
                                if (sceneTarget.Type == 0)
                                {
                                    if (sceneTarget.DeviceUI == null)
                                    {
                                        continue;
                                    }
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 0,
                                        ScenesId = 0,
                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                        TaskList = sceneTarget.TaskList,
                                        DelayTime = 0,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                                else if (sceneTarget.Type == 1)
                                {
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 1,
                                        ScenesId = 0,
                                        ElseScenesId = sceneTarget.ElseScenesId,
                                        DelayTime = 0,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                                else if (sceneTarget.Type == 2)
                                {
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 2,
                                        ScenesId = 0,
                                        DelayTime = sceneTarget.DelayTime,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                            }
                            var sceneRemoveMemberData = new SceneRemoveMemberData { };
                            var removeSceneDeviceListInfoList = new List<RemoveSceneDeviceListInfo> { };
                            for (int i = 0; i < modifySceneTargetDevicesList.Count; i++)
                            {
                                var sceneTarget = modifySceneTargetDevicesList[i];
                                if (sceneTarget.Type == 0)
                                {
                                    if (sceneTarget.DeviceUI == null)
                                    {
                                        continue;
                                    }
                                    var removeDevice = new RemoveSceneDeviceListInfo
                                    {
                                        Type = 0,
                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
                                    };
                                    removeSceneDeviceListInfoList.Add(removeDevice);
                                }
                                else if (sceneTarget.Type == 1)
                                {
                                    var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
                                    {
                                        Type = 1,
                                        ElseScenesId = sceneTarget.ElseScenesId,
                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
                                    };
                                    removeSceneDeviceListInfoList.Add(removeDevice);
                                }
                                else
                                {
                                    var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
                                    {
                                        Type = 2,
                                        DelayTime = sceneTarget.DelayTime,
                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
                                    };
                                    removeSceneDeviceListInfoList.Add(removeDevice);
                                }
                            }
                            sceneRemoveMemberData.DeviceList = removeSceneDeviceListInfoList;
                            sceneRemoveMemberData.ScenesId = modifySceneUI.Id;
                            var result = await HdlSceneLogic.Current.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList);
                            if (result == 1)
                            {
                                if (modifyRoom != curRoom)
                                {
                                    modifyRoom.ListSceneId.Remove(modifySceneUI.Id);
                                    curRoom.ListSceneId.Add(modifySceneUI.Id);
                                    modifyRoom.Save();
                                    curRoom.Save();
                                }
                                EditorAction?.Invoke(modifySceneUI, curRoom);
                                RemoveFromParent();
                            }
                            else if (result == 0)
                            {
                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
                            }
                            else if (result == -1)
                            {
                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                            }
                        }
                        catch (Exception ex)
                        {
                            System.Console.WriteLine($"分类添加场景出错{ex.Message}");
                        }
                        finally
                        {
                            CommonPage.Loading.Hide();
                        }
                    }
                }
                else
                {
                    //新增
                    if (string.IsNullOrEmpty(nameRow.NameText.Text))
                    {
                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
                        return;
                    }
                    else
                    {
                        try
                        {
                            var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                            var fileName = $"SceneIcon_{tradeTime}.png";
                            string imgPath;
                            if (IconPathType == 1 || IconPathType == 2)
                            {
                                Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
                                HdlAutoBackupLogic.AddOrEditorFile(fileName);
                                imgPath = fileName;
                            }
                            else
                            {
                                imgPath = backGround.ImagePath;
                            }
                            //if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
                            //{
                            //    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                            //    return;
                            //}
                            CommonPage.Loading.Start();
                            var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
                            for (int i = 0; i < sceneTargetDevicesList.Count; i++)
                            {
                                var sceneTarget = sceneTargetDevicesList[i];
                                if (sceneTarget.Type == 0)
                                {
                                    if (sceneTarget.DeviceUI == null)
                                    {
                                        continue;
                                    }
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 0,
                                        ScenesId = 0,
                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                        TaskList = sceneTarget.TaskList,
                                        DelayTime = 0,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                                else if (sceneTarget.Type == 1)
                                {
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 1,
                                        ScenesId = 0,
                                        ElseScenesId = sceneTarget.ElseScenesId,
                                        DelayTime = 0,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                                else if (sceneTarget.Type == 2)
                                {
                                    var memberData = new AddSceneMemberData
                                    {
                                        Type = 2,
                                        ScenesId = 0,
                                        DelayTime = sceneTarget.DelayTime,
                                        MemberNumber = i + 1
                                    };
                                    memberDataList.Add(memberData);
                                }
                            }
                            var result = await HdlSceneLogic.Current.AddScene(curRoom, nameRow.NameText.Text, imgPath, memberDataList, IconPathType);
                            if (result == 1)
                            {
                                AddAction?.Invoke();
                                RemoveFromParent();
                            }
                            else if (result == 0)
                            {
                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AddSceneFail));
                            }
                            else if (result == -1)
                            {
                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                            }
                        }
                        catch (Exception ex)
                        {
                            System.Console.WriteLine($"分类添加场景出错{ex.Message}");
                        }
                        finally
                        {
                            CommonPage.Loading.Hide();
                        }
                    }
                }
            };
            #endregion
        }
        #endregion
        #region 编辑设备____________________________________
        /// <summary>
        /// ShowSelectAction
        /// </summary>
        /// <param name="device"></param>
        private void ShowSelectAction(CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            var dialog = new FrameLayout()
            {
                BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
            };
            AddChidren(dialog);
            dialog.MouseUpEventHandler += (sender, e) =>
            {
                dialog.RemoveFromParent();
            };
            if (device.Type == ZigBee.Device.DeviceType.OnOffOutput)
            {
                SelectOnoffOutput(dialog, device, sceneTarget);
            }
            else if (device.Type == ZigBee.Device.DeviceType.AirSwitch)
            {
                SelectOnoffOutput(dialog, device, sceneTarget);
            }
            else if (device.Type == ZigBee.Device.DeviceType.DimmableLight)
            {
                SelectDimmableLight(dialog, device, sceneTarget);
            }
            else if (device.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
            {
                SelectWindowCoveringDevice(dialog, device, sceneTarget);
            }
            else if (device.Type == ZigBee.Device.DeviceType.Thermostat)
            {
                SelectThermostat(dialog, device, sceneTarget);
            }
        }
        /// <summary>
        /// 灯光
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="device"></param>
        /// <param name="sceneTarget"></param>
        private void SelectOnoffOutput(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            var selectFL = new FrameLayout
            {
                Y = Application.GetRealHeight(1391),
                Height = Application.GetRealHeight(530),
            };
            dialog.AddChidren(selectFL);
            //selectFL.Animate = Animate.DownToUp;
            var titleBG = new FrameLayout
            {
                Height = Application.GetRealHeight(138 * 2),
                Radius = (uint)Application.GetRealHeight(58),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(titleBG);
            var titleFL = new FrameLayout
            {
                Height = Application.GetRealHeight(138),
            };
            selectFL.AddChidren(titleFL);
            var line = new Button
            {
                Y = titleFL.Height - 1,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            titleFL.AddChidren(line);
            var cancleBtn = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.Cancel
            };
            titleFL.AddChidren(cancleBtn);
            var deviceName = new Button
            {
                Width = Application.GetRealWidth(600),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 16,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
            };
            titleFL.AddChidren(deviceName);
            var comfrimBtn = new Button
            {
                X = Application.GetRealWidth(800),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterRight,
                TextID = R.MyInternationalizationString.Complete
            };
            titleFL.AddChidren(comfrimBtn);
            var itemFL = new FrameLayout
            {
                Y = titleFL.Bottom,
                Height = Application.GetRealHeight(392),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(itemFL);
            var open = new SelectSceneStatuRow(0, 60);
            itemFL.AddChidren(open);
            open.Init();
            open.SetTitle(R.MyInternationalizationString.Open);
            open.IsSelected = true;
            var shut = new SelectSceneStatuRow(0, 60 + 127 + 30);
            itemFL.AddChidren(shut);
            shut.Init();
            shut.hideLine(true);
            shut.SetTitle(R.MyInternationalizationString.Shut);
            open.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
            };
            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = false;
                shut.IsSelected = true;
            };
            cancleBtn.MouseUpEventHandler = (sender, e) =>
            {
                dialog.RemoveAll();
                dialog.RemoveFromParent();
            };
            if (sceneTarget.TaskList.Count > 0)
            {
                if (sceneTarget.TaskList[0].Data1 == 1)
                {
                    open.IsSelected = true;
                    shut.IsSelected = false;
                }
                else
                {
                    open.IsSelected = false;
                    shut.IsSelected = true;
                }
            }
            comfrimBtn.MouseUpEventHandler = (sender, e) =>
            {
                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
                int taskType = 1;
                int data1 = 0;
                int data2 = 0;
                if (open.IsSelected)
                {
                    //开
                    data1 = 1;
                    data2 = 0;
                }
                else
                {
                    //关
                    data1 = 0;
                    data2 = 0;
                }
                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                {
                    TaskType = taskType,
                    Data1 = data1,
                    Data2 = data2
                };
                taskList.Add(taskInfo);
                sceneTarget.TaskList = taskList;
                sceneTarget.DeviceUI = device;
                selectedAction?.Invoke(sceneTarget);
                dialog.RemoveFromParent();
            };
        }
        /// <summary>
        /// 窗帘
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="device"></param>
        /// <param name="sceneTarget"></param>
        private void SelectWindowCoveringDevice(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            var selectFL = new FrameLayout
            {
                Y = Application.GetRealHeight(1169),
                Height = Application.GetRealHeight(752),
            };
            dialog.AddChidren(selectFL);
            //selectFL.Animate = Animate.DownToUp;
            var titleBG = new FrameLayout
            {
                Height = Application.GetRealHeight(138 * 2),
                Radius = (uint)Application.GetRealHeight(58),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(titleBG);
            var titleFL = new FrameLayout
            {
                Height = Application.GetRealHeight(138),
            };
            selectFL.AddChidren(titleFL);
            var line = new Button
            {
                Y = titleFL.Height - 1,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            titleFL.AddChidren(line);
            var cancleBtn = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.Cancel
            };
            titleFL.AddChidren(cancleBtn);
            var deviceName = new Button
            {
                Width = Application.GetRealWidth(600),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 16,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
            };
            titleFL.AddChidren(deviceName);
            var comfrimBtn = new Button
            {
                X = Application.GetRealWidth(800),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterRight,
                TextID = R.MyInternationalizationString.Complete
            };
            titleFL.AddChidren(comfrimBtn);
            var itemFL = new FrameLayout
            {
                Y = titleFL.Bottom,
                Height = Application.GetRealHeight(613),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(itemFL);
            var open = new SelectDeviceWithSeekBarRow(0, 60);
            itemFL.AddChidren(open);
            open.Init();
            open.SetTitle(R.MyInternationalizationString.Open);
            open.IsSelected = true;
            var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
            itemFL.AddChidren(shut);
            shut.Init();
            shut.hideLine(true);
            shut.SetTitle(R.MyInternationalizationString.Shut);
            open.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
            };
            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = false;
                shut.IsSelected = true;
            };
            cancleBtn.MouseUpEventHandler = (sender, e) =>
            {
                dialog.RemoveAll();
                dialog.RemoveFromParent();
            };
            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
                open.SetSeekBarTitle();
            };
            if (sceneTarget.TaskList.Count > 0)
            {
                if (sceneTarget.TaskList[0].Data1 == 1)
                {
                    open.IsSelected = false;
                    shut.IsSelected = true;
                }
                else
                {
                    open.IsSelected = true;
                    shut.IsSelected = false;
                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data2);
                }
            }
            comfrimBtn.MouseUpEventHandler = (sender, e) =>
            {
                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
                int taskType = 6;
                int data1 = 0;
                int data2 = 0;
                if (shut.IsSelected)
                {
                    //关
                    data1 = 1;
                    data2 = 0;
                }
                else
                {
                    //百分比
                    data1 = 5;
                    data2 = open.SeekBar.Progress;
                }
                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                {
                    TaskType = taskType,
                    Data1 = data1,
                    Data2 = data2
                };
                taskList.Add(taskInfo);
                sceneTarget.TaskList = taskList;
                sceneTarget.DeviceUI = device;
                selectedAction?.Invoke(sceneTarget);
                dialog.RemoveFromParent();
            };
        }
        /// <summary>
        /// 调光灯
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="device"></param>
        /// <param name="sceneTarget"></param>
        private void SelectDimmableLight(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            var selectFL = new FrameLayout
            {
                Y = Application.GetRealHeight(1169),
                Height = Application.GetRealHeight(752),
            };
            dialog.AddChidren(selectFL);
            //selectFL.Animate = Animate.DownToUp;
            var titleBG = new FrameLayout
            {
                Height = Application.GetRealHeight(138 * 2),
                Radius = (uint)Application.GetRealHeight(58),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(titleBG);
            var titleFL = new FrameLayout
            {
                Height = Application.GetRealHeight(138),
            };
            selectFL.AddChidren(titleFL);
            var line = new Button
            {
                Y = titleFL.Height - 1,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            titleFL.AddChidren(line);
            var cancleBtn = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.Cancel
            };
            titleFL.AddChidren(cancleBtn);
            var deviceName = new Button
            {
                Width = Application.GetRealWidth(600),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 16,
                TextAlignment = TextAlignment.CenterLeft,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
            };
            titleFL.AddChidren(deviceName);
            var comfrimBtn = new Button
            {
                X = Application.GetRealWidth(800),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterRight,
                TextID = R.MyInternationalizationString.Complete
            };
            titleFL.AddChidren(comfrimBtn);
            var itemFL = new FrameLayout
            {
                Y = titleFL.Bottom,
                Height = Application.GetRealHeight(613),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(itemFL);
            var open = new SelectDeviceWithSeekBarRow(0, 60);
            itemFL.AddChidren(open);
            open.Init(254);
            open.SetTitle(R.MyInternationalizationString.Open);
            open.IsSelected = true;
            var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
            itemFL.AddChidren(shut);
            shut.Init();
            shut.hideLine(true);
            shut.SetTitle(R.MyInternationalizationString.Shut);
            open.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
            };
            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = false;
                shut.IsSelected = true;
            };
            cancleBtn.MouseUpEventHandler = (sender, e) =>
            {
                dialog.RemoveAll();
                dialog.RemoveFromParent();
            };
            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
                open.SetSeekBarTitle();
            };
            if (sceneTarget.TaskList.Count > 0)
            {
                if (sceneTarget.TaskList[0].Data1 == 0)
                {
                    open.IsSelected = false;
                    shut.IsSelected = true;
                }
                else
                {
                    open.IsSelected = true;
                    shut.IsSelected = false;
                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data1);
                }
            }
            comfrimBtn.MouseUpEventHandler = (sender, e) =>
            {
                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
                int taskType = 3;
                int data1 = 0;
                int data2 = 0;
                if (shut.IsSelected)
                {
                    //关
                    data1 = 0;
                    data2 = 0;
                }
                else
                {
                    //百分比
                    data1 = open.SeekBar.Progress;
                    data2 = 0;
                }
                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                {
                    TaskType = taskType,
                    Data1 = data1,
                    Data2 = data2
                };
                taskList.Add(taskInfo);
                sceneTarget.TaskList = taskList;
                sceneTarget.DeviceUI = device;
                selectedAction?.Invoke(sceneTarget);
                dialog.RemoveFromParent();
            };
        }
        /// <summary>
        /// 空调
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="device"></param>
        /// <param name="sceneTarget"></param>
        private void SelectThermostat(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
        {
            /// 温度
            int tempId = 0;
            /// 模式
            int modelId = 0;
            /// 风速
            int fanid = 0;
            var selectFL = new FrameLayout
            {
                Y = Application.GetRealHeight(815),
                Height = Application.GetRealHeight(1106),
            };
            dialog.AddChidren(selectFL);
            //selectFL.Animate = Animate.DownToUp;
            var titleBG = new FrameLayout
            {
                Height = Application.GetRealHeight(138 * 2),
                Radius = (uint)Application.GetRealHeight(58),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(titleBG);
            var titleFL = new FrameLayout
            {
                Height = Application.GetRealHeight(138),
            };
            selectFL.AddChidren(titleFL);
            var line = new Button
            {
                Y = titleFL.Height - 1,
                Height = 1,
                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
            };
            titleFL.AddChidren(line);
            var cancleBtn = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.Cancel
            };
            titleFL.AddChidren(cancleBtn);
            var deviceName = new Button
            {
                Width = Application.GetRealWidth(600),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 16,
                TextAlignment = TextAlignment.CenterLeft,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
            };
            titleFL.AddChidren(deviceName);
            var comfrimBtn = new Button
            {
                X = Application.GetRealWidth(800),
                Width = Application.GetRealWidth(200),
                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                TextSize = 14,
                TextAlignment = TextAlignment.CenterRight,
                TextID = R.MyInternationalizationString.Complete
            };
            titleFL.AddChidren(comfrimBtn);
            var itemFL = new FrameLayout
            {
                Y = titleFL.Bottom,
                Height = Application.GetRealHeight(968),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            selectFL.AddChidren(itemFL);
            var open = new SelectDeviceWithPickViewRow(0, 60);
            itemFL.AddChidren(open);
            open.Init();
            open.SetTitle(R.MyInternationalizationString.Open);
            open.IsSelected = true;
            open.pickerView.OnSelectChangeEvent = (l1, l2, l3) =>
            {
                tempId = l1;
                modelId = l2;
                fanid = l3;
            };
            var shut = new SelectSceneStatuRow(0, 60 + 703 + 30);
            itemFL.AddChidren(shut);
            shut.Init();
            shut.hideLine(true);
            shut.SetTitle(R.MyInternationalizationString.Shut);
            open.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = true;
                shut.IsSelected = false;
            };
            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
            {
                open.IsSelected = false;
                shut.IsSelected = true;
            };
            cancleBtn.MouseUpEventHandler = (sender, e) =>
            {
                dialog.RemoveAll();
                dialog.RemoveFromParent();
            };
            if (sceneTarget.TaskList.Count > 0)
            {
                if (sceneTarget.TaskList.Count == 1)
                {
                    open.IsSelected = false;
                    shut.IsSelected = true;
                }
                else
                {
                    open.IsSelected = true;
                    shut.IsSelected = false;
                    for (int i = 0; i < sceneTarget.TaskList.Count; i++)
                    {
                        var tasklist = sceneTarget.TaskList[i];
                        if (tasklist.Data1 == 6)
                        {
                            fanid = open.fanList.IndexOf(tasklist.Data2);
                        }
                        if (tasklist.Data1 == 3)
                        {
                            modelId = open.modeList.IndexOf(tasklist.Data2);
                        }
                        if (tasklist.Data1 == 4 || tasklist.Data1 == 5)
                        {
                            tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100);
                        }
                    }
                    open.pickerView.setCurrentItems(tempId, modelId, fanid);
                }
            }
            comfrimBtn.MouseUpEventHandler = (sender, e) =>
            {
                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
                int taskType = 5;
                int data1 = 0;
                int data2 = 0;
                if (shut.IsSelected)
                {
                    //关
                    data1 = 3;
                    data2 = 0;
                    var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                    {
                        TaskType = taskType,
                        Data1 = data1,
                        Data2 = data2
                    };
                    taskList.Add(taskInfo);
                }
                else
                {
                    //fan
                    var taskInfo = new ZigBee.Device.Scene.TaskListInfo
                    {
                        TaskType = taskType,
                        Data1 = 6,
                        Data2 = open.fanList[fanid]
                    };
                    taskList.Add(taskInfo);
                    //mode
                    var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo
                    {
                        TaskType = taskType,
                        Data1 = 3,
                        Data2 = open.modeList[modelId]
                    };
                    taskList.Add(taskInfo2);
                    //tem
                    if (open.modeList[modelId] == 4)
                    {
                        //heat
                        var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
                        {
                            TaskType = taskType,
                            Data1 = 4,
                            Data2 = open.temperatureList[tempId] * 100
                        };
                        taskList.Add(taskInfo3);
                    }
                    else
                    {
                        //heat
                        var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
                        {
                            TaskType = taskType,
                            Data1 = 5,
                            Data2 = open.temperatureList[tempId] * 100
                        };
                        taskList.Add(taskInfo3);
                    }
                }
                sceneTarget.TaskList = taskList;
                sceneTarget.DeviceUI = device;
                selectedAction?.Invoke(sceneTarget);
                dialog.RemoveFromParent();
            };
        }
        #endregion
    }
}