From cc0d80c7d86c6d0167269b3408c4b30c24ce84e9 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 23 三月 2020 16:55:37 +0800
Subject: [PATCH] ???????

---
 ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs |  340 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 169 insertions(+), 171 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
index 2c2c8f8..ba9b610 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
@@ -4,6 +4,8 @@
 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
@@ -50,7 +52,7 @@
         /// <summary>
         /// 娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃
         /// </summary>
-        public VerticalScrolViewLayout TargetListScrolView;
+        public FrameLayout TargetListScrolView;
         /// <summary>
         /// The confirm button.
         /// </summary>
@@ -90,9 +92,15 @@
         /// <summary>
         /// selectedTimeAction
         /// </summary>
-        public Action<SceneTargetDeviceUI> selectedAction;
-
-
+        private Action<SceneTargetDeviceUI> selectedAction;
+        /// <summary>
+        /// 淇敼鍦烘櫙action
+        /// </summary>
+        public Action<SceneUI, Common.Room> EditorAction;
+        /// <summary>
+        /// 娣诲姞鍦烘櫙action
+        /// </summary>
+        public Action AddAction;
 
         #endregion
 
@@ -108,7 +116,7 @@
         /// </summary>
         public override void RemoveFromParent()
         {
-            Category.instance?.RefreshBodyView();
+            UserView.HomePage.Instance.ScrollEnabled = true;
             base.RemoveFromParent();
         }
         /// <summary>
@@ -116,72 +124,91 @@
         /// </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)
             {
-                foreach (var targetDevice in sceneTargetDevicesList)
+                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()
                     {
-                        Height = Application.GetRealHeight(160),
-                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                        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 || targetDevice.DeviceUI.CommonDevice == null) continue;
+                        if (targetDevice.DeviceUI == null ) continue;
                         devImgPath = targetDevice.DeviceUI.IconPath;
-                        devNameText = targetDevice.DeviceUI.CommonDevice.DeviceEpointName;
+                        devNameText = Common.LocalDevice.Current.GetDeviceEpointName(targetDevice.DeviceUI);
 
-                        var targetRow = new SceneTargetFunctionRow(23);
-                        targetRowLayout.AddChidren(targetRow);
+                        var targetRow = new SceneTargetFunctionRow(13);
                         targetRow.Init();
                         targetRow.SetIcon(devImgPath);
                         targetRow.SetNameText(devNameText);
-                        targetRow.SetZoneText(targetDevice.DeviceUI.GetZone());
+                        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(23);
-                        targetRowLayout.AddChidren(targetRow);
+                        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(23);
-                        targetRowLayout.AddChidren(targetRow);
+                        var targetRow = new SceneTargetFunctionRow(13);
                         targetRow.Init();
                         targetRow.SetIcon(devImgPath);
                         targetRow.SetNameText(devNameText);
-                        targetRow.SetZoneText(targetDevice.SceneUI.GetZone());
+                        targetRow.SetZoneText(HdlSceneLogic.Current.GetZoneById(targetDevice.SceneUI.Id));
+                        targetRowLayout.AddChidren(targetRow);
+                        if (i == sceneTargetDevicesList.Count - 1)
+                        {
+                            targetRow.HideLine(true);
+                        }
                     }
 
-                    var editBtn = new Button()
-                    {
-                        BackgroundColor = ZigbeeColor.Current.GXCEditBackGroundColor,
-                        TextID = R.MyInternationalizationString.Edit,
-                        TextColor = ZigbeeColor.Current.GXCTextWhiteColor
-                    };
+                    var editBtn = new RowLayoutEditButton();
                     targetRowLayout.AddRightView(editBtn);
                     //缂栬緫璁惧
                     editBtn.MouseUpEventHandler += detailMouseUpEventHandler;
-                    var delBtn = new Button()
-                    {
-                        BackgroundColor = ZigbeeColor.Current.GXCRedColor,
-                        TextID = R.MyInternationalizationString.Delete,
-                        TextColor = ZigbeeColor.Current.GXCTextWhiteColor
-                    };
+                    var delBtn = new RowLayoutDeleteButton();
                     targetRowLayout.AddRightView(delBtn);
                     //鍒犻櫎璁惧
                     delBtn.MouseUpEventHandler += (sender, e) =>
@@ -195,7 +222,7 @@
                     {
                         if (targetDevice.Type == 0)
                         {
-                            if (targetDevice.DeviceUI == null || targetDevice.DeviceUI.CommonDevice == null)
+                            if (targetDevice.DeviceUI == null)
                             {
                                 return;
                             }
@@ -254,17 +281,6 @@
                         }
                     }
                 }
-                
-                if (sceneTargetDevicesList.Count > 1)
-                {
-                    var targetRowLayout = new RowLayout()
-                    {
-                        Height = Application.GetRealHeight(300),
-                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-                    };
-                    TargetListScrolView.AddChidren(targetRowLayout);
-                }
             }
         }
         /// <summary>
@@ -317,13 +333,20 @@
         /// </summary>
         private void AddBodyView()
         {
-            bodyFrameLayout = new FrameLayout()
+            var bodyScrolView=new VerticalScrolViewLayout()
             {
                 Y = Application.GetRealHeight(184),
                 Height = Application.GetRealHeight(1737),
                 BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
             };
-            AddChidren(bodyFrameLayout);
+            AddChidren(bodyScrolView);
+
+            bodyFrameLayout = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(1086+127),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+            };
+            bodyScrolView.AddChidren(bodyFrameLayout);
 
             var imgFL = new FrameLayout
             {
@@ -332,21 +355,31 @@
             };
             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()
             {
-                Width = Application.GetMinRealAverage(930),
-                Height = Application.GetMinRealAverage(464),
-                Gravity = Gravity.Center,
+                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);
-            backGround.SetViewShadow(true);
 
             var infoFL = new FrameLayout
             {
-                Y = imgFL.Bottom + Application.GetRealHeight(23),
-                Height = Application.GetRealHeight(418),
+                Y = Application.GetRealHeight(588),
+                Height = Application.GetRealHeight(429),
                 BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
             };
             bodyFrameLayout.AddChidren(infoFL);
@@ -360,7 +393,7 @@
                 TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = 15,
-                IsBold=true
+                //IsBold=true
             };
             infoFL.AddChidren(infoEdit);
 
@@ -380,8 +413,8 @@
 
             var targetFL = new FrameLayout()
             {
-                Y = infoFL.Bottom + Application.GetRealHeight(23),
-                Height = Application.GetRealHeight(730)
+                Y = Application.GetRealHeight(1040),
+                Height = Application.GetRealHeight(346)
             };
             bodyFrameLayout.AddChidren(targetFL);
 
@@ -430,15 +463,16 @@
             };
             addTargetFL.AddChidren(targetLine);
 
-            TargetListScrolView = new VerticalScrolViewLayout()
+            TargetListScrolView = new FrameLayout()
             {
-                Y = Application.GetRealHeight(49+127),
-                Height = Application.GetRealHeight(730-127-49),
+                Height = Application.GetRealHeight(173)
             };
-            targetFL.AddChidren(TargetListScrolView);
+            bodyScrolView.AddChidren(TargetListScrolView);
+
+
 
             confirmBtn = new CommonForm.CompleteButton(1656, 907, 127);
-            confirmBtn.TextID = R.MyInternationalizationString.Next;
+            confirmBtn.TextID = R.MyInternationalizationString.uFinish;
             AddChidren(confirmBtn);
 
             if (isModify)
@@ -464,7 +498,7 @@
                 }
                 else
                 {
-                    zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}");
+                    zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)}锛寋modifyRoom.Name}");
                 }
                 curRoom = modifyRoom;
                 sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList);
@@ -577,15 +611,20 @@
                 {
                     selectFL.RemoveFromParent();
                     var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
-                    var fileName = $"SceneIcon_{tradeTime}";
+                    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);
                             }
                         }
 
@@ -601,15 +640,20 @@
                 {
                     selectFL.RemoveFromParent();
                     var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
-                    var fileName = $"SceneIcon_{tradeTime}";
+                    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);
                             }
                         }
 
@@ -635,53 +679,13 @@
             //鍖哄煙
             EventHandler<MouseEventArgs> zoneHander = (sender, e) =>
             {
-                List<string> floorIds = new List<string> { };
-                List<string> floorNames = new List<string> { };
-                List<List<string>> roomNames = new List<List<string>> { };
-                List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
-                List<Common.Room> rs = new List<Common.Room> { };
-                List<string> rNames = new List<string> { };
-                if (Config.Instance.Home.FloorDics.Count > 0)
+                var zone = new SelectZone();
+                zone.Init();
+                zone.ZoneAction += (selectRoom) =>
                 {
-                    foreach (var floor in Config.Instance.Home.FloorDics)
-                    {
-                        if (Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count > 0)
-                        {
-                            floorIds.Add(floor.Key);
-                            floorNames.Add(floor.Value);
-
-                            roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key));
-                            rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key));
-                        }
-                    }
-                    PickerView.ShowSecondary(floorNames, roomNames, (index1, index2) =>
-                    {
-                        curRoom = rooms[index1][index2];
-                        zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(floorIds[index1])} , {rooms[index1][index2].Name}");
-                    }, 0, 0, Language.StringByID(R.MyInternationalizationString.BelongZone),
-                   Language.StringByID(R.MyInternationalizationString.Confrim),
-                   Language.StringByID(R.MyInternationalizationString.Cancel));
-                }
-                else
-                {
-                    for (int i = 0; i < Common.Room.Lists.Count; i++)
-                    {
-                        var r = Common.Room.Lists[i];
-                        if (r.IsLove)
-                        {
-                            continue;
-                        }
-                        rs.Add(r);
-                        rNames.Add(r.Name);
-                    }
-                    PickerView.Show(rNames, (index1) =>
-                    {
-                        curRoom = rs[index1];
-                        zoneRow.SetTitle(rs[index1].Name);
-                    }, 0, Language.StringByID(R.MyInternationalizationString.BelongZone),
-                   Language.StringByID(R.MyInternationalizationString.Confrim),
-                   Language.StringByID(R.MyInternationalizationString.Cancel));
-                }
+                    curRoom = selectRoom;
+                    zoneRow.SetTitle(HdlRoomLogic.Current.GetZoneName(selectRoom));
+                };
             };
             zoneRow.ClickBtn.MouseUpEventHandler += zoneHander;
 
@@ -851,7 +855,7 @@
                 }
                 if (curRoom.IsSharedRoom)
                 {
-                    RemoveFromParent();
+                    RoomCommon.ShowTipRoomIsShared();
                     return;
                 }
 
@@ -859,22 +863,18 @@
                 {
                     if (string.IsNullOrEmpty(nameRow.NameText.Text))
                     {
-                        var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull), Language.StringByID(R.MyInternationalizationString.Close));
-                        alert.Show();
-                        alert.ResultEventHandler += (sendAlert, eAlert) =>
-                        {
-                            return;
-                        };
+                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
+                        return;
                     }
                     else
                     {
                         try
                         {
                             var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
-                            var fileName = $"SceneIcon_{tradeTime}";
+                            var fileName = $"SceneIcon_{tradeTime}.png";
                             if (modifySceneUI.Name != nameRow.NameText.Text.Trim())
                             {
-                                if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
+                                if (HdlSceneLogic.Current.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
                                 {
                                     CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                                     return;
@@ -898,10 +898,12 @@
                             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
@@ -918,7 +920,7 @@
 
                                 if (sceneTarget.Type == 0)
                                 {
-                                    if (sceneTarget.DeviceUI == null || sceneTarget.DeviceUI.CommonDevice == null)
+                                    if (sceneTarget.DeviceUI == null)
                                     {
                                         continue;
                                     }
@@ -926,11 +928,11 @@
                                     {
                                         Type = 0,
                                         ScenesId = 0,
-                                        DeviceAddr = sceneTarget.DeviceUI.CommonDevice.DeviceAddr,
-                                        Epoint = sceneTarget.DeviceUI.CommonDevice.DeviceEpoint,
+                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
+                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                         TaskList = sceneTarget.TaskList,
                                         DelayTime = 0,
-                                        MemberNumber = i+1
+                                        MemberNumber = i + 1
                                     };
                                     memberDataList.Add(memberData);
                                 }
@@ -942,7 +944,7 @@
                                         ScenesId = 0,
                                         ElseScenesId = sceneTarget.ElseScenesId,
                                         DelayTime = 0,
-                                        MemberNumber = i+1
+                                        MemberNumber = i + 1
                                     };
                                     memberDataList.Add(memberData);
                                 }
@@ -953,7 +955,7 @@
                                         Type = 2,
                                         ScenesId = 0,
                                         DelayTime = sceneTarget.DelayTime,
-                                        MemberNumber = i+1
+                                        MemberNumber = i + 1
                                     };
                                     memberDataList.Add(memberData);
                                 }
@@ -966,15 +968,15 @@
                                 var sceneTarget = modifySceneTargetDevicesList[i];
                                 if (sceneTarget.Type == 0)
                                 {
-                                    if (sceneTarget.DeviceUI == null || sceneTarget.DeviceUI.CommonDevice == null)
+                                    if (sceneTarget.DeviceUI == null)
                                     {
                                         continue;
                                     }
                                     var removeDevice = new RemoveSceneDeviceListInfo
                                     {
                                         Type = 0,
-                                        DeviceAddr = sceneTarget.DeviceUI.CommonDevice.DeviceAddr,
-                                        Epoint = sceneTarget.DeviceUI.CommonDevice.DeviceEpoint,
+                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
+                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                         MemberNumber = sceneTarget.DelayTimeSerialNumber
                                     };
                                     removeSceneDeviceListInfoList.Add(removeDevice);
@@ -994,35 +996,34 @@
                                     var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
                                     {
                                         Type = 2,
-                                        DelayTime=sceneTarget.DelayTime,
-                                        MemberNumber=sceneTarget.DelayTimeSerialNumber
+                                        DelayTime = sceneTarget.DelayTime,
+                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
                                     };
                                     removeSceneDeviceListInfoList.Add(removeDevice);
                                 }
                             }
                             sceneRemoveMemberData.DeviceList = removeSceneDeviceListInfoList;
                             sceneRemoveMemberData.ScenesId = modifySceneUI.Id;
-                            var result = await curRoom.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList);
+                            var result = await HdlSceneLogic.Current.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList);
                             if (result == 1)
                             {
                                 if (modifyRoom != curRoom)
                                 {
-                                    modifyRoom.SceneUIList.Remove(modifySceneUI);
-                                    modifyRoom.SceneUIFilePathList.Remove(modifySceneUI.FileName);
-                                    curRoom.SceneUIList.Add(modifySceneUI);
-                                    curRoom.SceneUIFilePathList.Add(modifySceneUI.FileName);
+                                    modifyRoom.ListSceneId.Remove(modifySceneUI.Id);
+                                    curRoom.ListSceneId.Add(modifySceneUI.Id);
                                     modifyRoom.Save();
                                     curRoom.Save();
                                 }
+                                EditorAction?.Invoke(modifySceneUI, curRoom);
                                 RemoveFromParent();
                             }
                             else if (result == 0)
                             {
-                                Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
+                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
                             }
                             else if (result == -1)
                             {
-                                Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist);
+                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                             }
                         }
                         catch (Exception ex)
@@ -1040,12 +1041,8 @@
                     //鏂板
                     if (string.IsNullOrEmpty(nameRow.NameText.Text))
                     {
-                        var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull), Language.StringByID(R.MyInternationalizationString.Close));
-                        alert.Show();
-                        alert.ResultEventHandler += (sendAlert, eAlert) =>
-                        {
-                            return;
-                        };
+                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
+                        return;
                     }
                     else
                     {
@@ -1057,17 +1054,18 @@
                             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)
-                            {
-                                Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist);
-                                return;
-                            }
+                            //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++)
@@ -1076,7 +1074,7 @@
 
                                 if (sceneTarget.Type == 0)
                                 {
-                                    if (sceneTarget.DeviceUI == null || sceneTarget.DeviceUI.CommonDevice == null)
+                                    if (sceneTarget.DeviceUI == null)
                                     {
                                         continue;
                                     }
@@ -1084,8 +1082,8 @@
                                     {
                                         Type = 0,
                                         ScenesId = 0,
-                                        DeviceAddr = sceneTarget.DeviceUI.CommonDevice.DeviceAddr,
-                                        Epoint = sceneTarget.DeviceUI.CommonDevice.DeviceEpoint,
+                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
+                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
                                         TaskList = sceneTarget.TaskList,
                                         DelayTime = 0,
                                         MemberNumber = i+1
@@ -1117,18 +1115,19 @@
                                 }
                             }
 
-                            var result = await curRoom.AddScene(nameRow.NameText.Text, imgPath, memberDataList);
+                            var result = await HdlSceneLogic.Current.AddScene(curRoom, nameRow.NameText.Text, imgPath, memberDataList, IconPathType);
                             if (result == 1)
                             {
+                                AddAction?.Invoke();
                                 RemoveFromParent();
                             }
                             else if (result == 0)
                             {
-                                CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.AddSceneFail);
+                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AddSceneFail));
                             }
                             else if (result == -1)
                             {
-                                CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist);
+                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
                             }
                         }
                         catch (Exception ex)
@@ -1139,7 +1138,6 @@
                         {
                             CommonPage.Loading.Hide();
                         }
-
                     }
                 }
 
@@ -1155,7 +1153,7 @@
         /// ShowSelectAction
         /// </summary>
         /// <param name="device"></param>
-        private void ShowSelectAction(DeviceUI device, SceneTargetDeviceUI sceneTarget)
+        private void ShowSelectAction(CommonDevice device, SceneTargetDeviceUI sceneTarget)
         {
             var dialog = new FrameLayout()
             {
@@ -1168,23 +1166,23 @@
                 dialog.RemoveFromParent();
             };
 
-            if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
+            if (device.Type == ZigBee.Device.DeviceType.OnOffOutput)
             {
                 SelectOnoffOutput(dialog, device, sceneTarget);
             }
-            else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
+            else if (device.Type == ZigBee.Device.DeviceType.AirSwitch)
             {
                 SelectOnoffOutput(dialog, device, sceneTarget);
             }
-            else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
+            else if (device.Type == ZigBee.Device.DeviceType.DimmableLight)
             {
                 SelectDimmableLight(dialog, device, sceneTarget);
             }
-            else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
+            else if (device.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
             {
                 SelectWindowCoveringDevice(dialog, device, sceneTarget);
             }
-            else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
+            else if (device.Type == ZigBee.Device.DeviceType.Thermostat)
             {
                 SelectThermostat(dialog, device, sceneTarget);
             }
@@ -1196,7 +1194,7 @@
         /// <param name="dialog"></param>
         /// <param name="device"></param>
         /// <param name="sceneTarget"></param>
-        private void SelectOnoffOutput(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
+        private void SelectOnoffOutput(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
         {
             var selectFL = new FrameLayout
             {
@@ -1245,7 +1243,7 @@
                 Gravity = Gravity.CenterHorizontal,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                 TextSize = 16,
-                Text = device.CommonDevice.DeviceEpointName
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
             };
             titleFL.AddChidren(deviceName);
 
@@ -1352,7 +1350,7 @@
         /// <param name="dialog"></param>
         /// <param name="device"></param>
         /// <param name="sceneTarget"></param>
-        private void SelectWindowCoveringDevice(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
+        private void SelectWindowCoveringDevice(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
         {
             var selectFL = new FrameLayout
             {
@@ -1401,7 +1399,7 @@
                 Gravity = Gravity.CenterHorizontal,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                 TextSize = 16,
-                Text = device.CommonDevice.DeviceEpointName
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
             };
             titleFL.AddChidren(deviceName);
 
@@ -1454,7 +1452,7 @@
                 dialog.RemoveFromParent();
             };
 
-            open.SeekBar.ProgressChanged += (sender, e) =>
+            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
             {
                 open.IsSelected = true;
                 shut.IsSelected = false;
@@ -1472,7 +1470,7 @@
                 {
                     open.IsSelected = true;
                     shut.IsSelected = false;
-                    open.SetProgress(sceneTarget.TaskList[0].Data2);
+                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data2);
                 }
             }
 
@@ -1517,7 +1515,7 @@
         /// <param name="dialog"></param>
         /// <param name="device"></param>
         /// <param name="sceneTarget"></param>
-        private void SelectDimmableLight(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
+        private void SelectDimmableLight(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
         {
             var selectFL = new FrameLayout
             {
@@ -1567,7 +1565,7 @@
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                 TextSize = 16,
                 TextAlignment = TextAlignment.CenterLeft,
-                Text = device.CommonDevice.DeviceEpointName
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
             };
             titleFL.AddChidren(deviceName);
 
@@ -1620,7 +1618,7 @@
                 dialog.RemoveFromParent();
             };
 
-            open.SeekBar.ProgressChanged += (sender, e) =>
+            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
             {
                 open.IsSelected = true;
                 shut.IsSelected = false;
@@ -1638,7 +1636,7 @@
                 {
                     open.IsSelected = true;
                     shut.IsSelected = false;
-                    open.SetProgress(sceneTarget.TaskList[0].Data1);
+                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data1);
                 }
             }
 
@@ -1683,7 +1681,7 @@
         /// <param name="dialog"></param>
         /// <param name="device"></param>
         /// <param name="sceneTarget"></param>
-        private void SelectThermostat(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
+        private void SelectThermostat(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
         {
         /// 娓╁害
         int tempId=0;
@@ -1740,7 +1738,7 @@
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                 TextSize = 16,
                 TextAlignment = TextAlignment.CenterLeft,
-                Text = device.CommonDevice.DeviceEpointName
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
             };
             titleFL.AddChidren(deviceName);
 

--
Gitblit v1.8.0