From 94e4e5b9fd3da964c44b7b14227d6fe2bbb426d7 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 02 四月 2020 13:56:39 +0800
Subject: [PATCH] 2020-04-02-2

---
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs |  546 ++++++++++++++++++++++++++----------------------------
 1 files changed, 263 insertions(+), 283 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
old mode 100755
new mode 100644
index 75e410e..e87c0be
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -107,7 +107,7 @@
         /// <summary>
         /// 鐩稿悓绫诲瀷鐨勮澶囧垪琛�
         /// </summary>
-        private Dictionary<int, List<DeviceUI>> typeDeviceDic;
+        private Dictionary<int, List<CommonDevice>> typeDeviceDic;
         /// <summary>
         /// 璁惧绫诲瀷鐨勫浘id
         /// </summary>
@@ -115,7 +115,7 @@
         /// <summary>
         /// dList
         /// </summary>
-        private List<DeviceUI> devList;
+        private List<CommonDevice> devList;
         /// <summary>
         /// sceneList
         /// </summary>
@@ -123,30 +123,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛____________________________
-        /// <summary>
-        /// 璇ユ帴鍙e皢寮冪敤 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-
-        }
+      
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
@@ -173,33 +150,33 @@
                         for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++)
                         {
                             var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout;
-                            var deviceUI = rowLayout.Tag as DeviceUI;
-                            if (deviceUI == null || deviceUI.CommonDevice == null)
+                            var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString());
+                            if (deviceUI == null)
                             {
                                 continue;
                             }
-                            if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint)
+                            if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint)
                             {
                                 continue;
                             }
-                            switch (deviceUI.CommonDevice.Type)
+                            switch (deviceUI.Type)
                             {
                                 case DeviceType.OnOffOutput:
                                     //寮�鍏冲姛鑳�
                                     if (common.DeviceStatusReport.CluterID == 6)
                                     {
-                                        var light = deviceUI.CommonDevice as ToggleLight;
+                                        var light = deviceUI as ToggleLight;
                                         light.DeviceStatusReport = common.DeviceStatusReport;
                                         light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = light.OnOffStatus == 1;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         light.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        deviceUI.IsOnline = 1;
+                                        deviceUI.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
@@ -207,18 +184,18 @@
                                     //寮�鍏冲姛鑳�
                                     if (common.DeviceStatusReport.CluterID == 6)
                                     {
-                                        var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
+                                        var airSwitch = deviceUI as ZigBee.Device.AirSwitch;
                                         airSwitch.DeviceStatusReport = common.DeviceStatusReport;
                                         airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = airSwitch.OnOffStatus == 1;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         airSwitch.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        deviceUI.IsOnline = 1;
+                                        deviceUI.LastDateTime = DateTime.Now;
                                     }
                                     break;
                                 case DeviceType.WindowCoveringDevice:
@@ -228,7 +205,7 @@
                                         if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0)
                                         {
                                             //绐楀笜绫诲瀷
-                                            var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                            var rollerShade = deviceUI as Rollershade;
                                             rollerShade.DeviceStatusReport = common.DeviceStatusReport;
                                             rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData;
                                             rollerShade.LastDateTime = DateTime.Now;
@@ -237,18 +214,18 @@
                                         {
                                             var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow;
                                             //绐楀笜鐧惧垎姣�
-                                            var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                            var rollerShade = deviceUI as Rollershade;
                                             rollerShade.DeviceStatusReport = common.DeviceStatusReport;
                                             rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                            row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}");
+                                            row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)}");
                                             row.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0;
                                             rollerShade.LastDateTime = DateTime.Now;
                                         }
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        deviceUI.IsOnline = 1;
+                                        deviceUI.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
@@ -257,7 +234,7 @@
                                     if (common.DeviceStatusReport.CluterID == 513)
                                     {
                                         var attriButeList = common.DeviceStatusReport.AttriBute;
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                        var ac = deviceUI as ZigBee.Device.AC;
                                         ac.DeviceStatusReport = common.DeviceStatusReport;
                                         foreach (var attList in attriButeList)
                                         {
@@ -292,12 +269,12 @@
                                         }
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = ac.currentSystemMode != 0;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     }
 
                                     if (common.DeviceStatusReport.CluterID == 514)
                                     {
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                        var ac = deviceUI as ZigBee.Device.AC;
                                         var attriButeList = common.DeviceStatusReport.AttriBute;
                                         ac.DeviceStatusReport = common.DeviceStatusReport;
                                         foreach (var attList in attriButeList)
@@ -316,12 +293,12 @@
                                         }
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = ac.currentSystemMode != 0;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     }
 
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                        var ac = deviceUI as ZigBee.Device.AC;
                                         ac.IsOnline = 1;
                                         ac.LastDateTime = DateTime.Now;
                                     }
@@ -330,28 +307,28 @@
                                     //璋冨厜鐏姛鑳�
                                     if (common.DeviceStatusReport.CluterID == 6)
                                     {
-                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
+                                        var dimmableLight = deviceUI as DimmableLight;
                                         dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                         dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = dimmableLight.OnOffStatus == 1;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         dimmableLight.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 8)
                                     {
-                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
+                                        var dimmableLight = deviceUI as DimmableLight;
                                         dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                         dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                         row.IsSelected = dimmableLight.OnOffStatus == 1;
-                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         dimmableLight.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        deviceUI.CommonDevice.IsOnline = 1;
-                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        deviceUI.IsOnline = 1;
+                                        deviceUI.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
@@ -359,7 +336,7 @@
                                     //娓╁害
                                     if (common.DeviceStatusReport.CluterID == 1026)
                                     {
-                                        var tempera = deviceUI.CommonDevice as TemperatureSensor;
+                                        var tempera = deviceUI as TemperatureSensor;
                                         foreach (var data in common.DeviceStatusReport.AttriBute)
                                         {
                                             if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
@@ -384,14 +361,14 @@
                                                     tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
                                                 }
                                                 var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
-                                                row.SetStatuText(deviceUI.GetDeviceStatu());
+                                                row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                             }
                                         }
                                     }
                                     //婀垮害
                                     if (common.DeviceStatusReport.CluterID == 1029)
                                     {
-                                        var tempera = deviceUI.CommonDevice as TemperatureSensor;
+                                        var tempera = deviceUI as TemperatureSensor;
                                         foreach (var data in common.DeviceStatusReport.AttriBute)
                                         {
                                             if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
@@ -409,7 +386,7 @@
                                                     tempera.LastDateTime = DateTime.Now;
                                                 }
                                                 var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
-                                                row.SetStatuText(deviceUI.GetDeviceStatu());
+                                                row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                             }
                                         }
                                     }
@@ -432,40 +409,40 @@
                         for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++)
                         {
                             var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout;
-                            var deviceUI = rowLayout.Tag as DeviceUI;
-                            if (deviceUI == null || deviceUI.CommonDevice == null)
+                            var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString());
+                            if (deviceUI == null)
                             {
                                 continue;
                             }
-                            if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint)
+                            if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint)
                             {
                                 continue;
                             }
-                            switch (deviceUI.CommonDevice.Type)
+                            switch (deviceUI.Type)
                             {
                                 case DeviceType.OnOffOutput:
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
                                     break;
 
                                 case DeviceType.AirSwitch:
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
                                     break;
 
                                 case DeviceType.WindowCoveringDevice:
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
                                     break;
 
                                 case DeviceType.DimmableLight:
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
                                     break;
 
                                 case DeviceType.Thermostat:
-                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
-                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    deviceUI.LastDateTime = DateTime.Now;
+                                    deviceUI.IsOnline = common.IsOnline;
                                     break;
                             }
                         }
@@ -485,25 +462,25 @@
                         for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++)
                         {
                             var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout;
-                            var deviceUI = rowLayout.Tag as DeviceUI;
-                            if (deviceUI == null || deviceUI.CommonDevice == null)
+                            var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString());
+                            if (deviceUI == null)
                             {
                                 continue;
                             }
-                            if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint)
+                            if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint)
                             {
                                 continue;
                             }
-                            switch (deviceUI.CommonDevice.Type)
+                            switch (deviceUI.Type)
                             {
                                 case DeviceType.IASZone:
                                     //寮�鍏冲姛鑳�
                                     var ias = common as IASZone;
-                                    var iAS = deviceUI.CommonDevice as ZigBee.Device.IASZone;
+                                    var iAS = deviceUI as ZigBee.Device.IASZone;
                                     iAS.iASInfo = ias.iASInfo;
                                     var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                     row.IsSelected = iAS.iASInfo?.Alarm1 == 1;
-                                    row.SetStatuText(deviceUI.GetDeviceStatu());
+                                    row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     iAS.LastDateTime = DateTime.Now;
                                     break;
                             }
@@ -717,7 +694,7 @@
             floors.FloorAction += (floorId) =>
             {
                 floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
-                Common.Room.CurrentRoom = Common.Room.CurrentRoom.GetLoveRoom();
+                HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
                 RefreshBodyView();
             };
         }
@@ -812,14 +789,15 @@
         /// </summary>
         private void Add_Automation()
         {
-            //new涓�涓柊閫昏緫瀵硅薄锛�
-            Common.Logic.CurrentLogic = new Common.Logic();
-            Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
-            Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
-            var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage();
-            UserView.HomePage.Instance.AddChidren(addLogicPage);
-            UserView.HomePage.Instance.PageIndex += 1;
-            addLogicPage.Show();
+            ////new涓�涓柊閫昏緫瀵硅薄锛�
+            //Common.Logic.CurrentLogic = new Common.Logic();
+            //Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
+            //Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
+            //var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage();
+            //UserView.HomePage.Instance.AddChidren(addLogicPage);
+            //UserView.HomePage.Instance.PageIndex += 1;
+            //addLogicPage.Show();
+            Shared.Phone.Device.Logic.SkipView.SkipAddLogic(0);
         }
         /// <summary>
         /// HidenFloor
@@ -862,7 +840,7 @@
         /// </summary>
         private void InitData()
         {
-            typeDeviceDic = new Dictionary<int, List<DeviceUI>> { };
+            typeDeviceDic = new Dictionary<int, List<CommonDevice>> { };
             typeIdDic = new Dictionary<int, DeviceConcreteType> { };
         }
 
@@ -871,20 +849,20 @@
         /// </summary>
         private void RefreshData(Common.Room room)
         {
-            devList = room.DeviceUIList;
-            sceneList = room.SceneUIList;
+            devList = HdlRoomLogic.Current.GetRoomListDevice(room);
+            sceneList = HdlSceneLogic.Current.GetRoomSceneList(room);
             typeDeviceDic.Clear();
             typeIdDic.Clear();
             foreach (var device in devList)
             {
-                var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device.CommonDevice);
+                var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device);
                 if (info.BeloneType == DeviceBeloneType.A骞叉帴鐐� || info.BeloneType == DeviceBeloneType.A涓户鍣�)
                 {
                     continue;
                 }
                 if (typeDeviceDic.ContainsKey(info.BeloneTextId) == false)
                 {
-                    var sameDevList = new List<DeviceUI> { };
+                    var sameDevList = new List<CommonDevice> { };
                     sameDevList.Add(device);
                     typeDeviceDic[info.BeloneTextId] = sameDevList;
                 }
@@ -1038,7 +1016,7 @@
 
             deviceListScrolView.RemoveAll();
 
-            var sameTypeList = new List<DeviceUI> { };
+            var sameTypeList = new List<CommonDevice> { };
             sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())];
 
             for (int i = 0; i < sameTypeList.Count; i++)
@@ -1054,15 +1032,15 @@
                             {
                                 Height = Application.GetRealHeight(127 + 35),
                                 LineColor = ZigbeeColor.Current.GXCClearColor,
-                                Tag = deviceUI,
-                                SubViewWidth=Application.GetRealWidth(184)
+                                Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI),
+                                SubViewWidth = Application.GetRealWidth(184)
                             };
                             deviceListScrolView.AddChidren(deviceTypeRowLayout);
 
-                            if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
+                            if (deviceUI.Type == DeviceType.OnOffOutput)
                             {
                                 //鐏�
-                                var light = deviceUI.CommonDevice as ToggleLight;
+                                var light = deviceUI as ToggleLight;
                                 if (light.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1072,7 +1050,7 @@
                                         {
                                             UserHomeView.ReadStatus(light, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI);
                                             });
                                         }
                                         else
@@ -1080,7 +1058,7 @@
                                             //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵��
                                             if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1088,17 +1066,17 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = light.OnOffStatus == 1;
                                     deviceTypeRowLayout.AddChidren(deviceRow);
 
                                     deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                     {
-                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        zbGateway = deviceUI.Gateway;
                                         sendedControlCommand = false;
                                         zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI);
                                         (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                         deviceRow.IsSelected = (send2 as Button).IsSelected;
                                         if ((send2 as Button).IsSelected)
@@ -1109,9 +1087,9 @@
                                         {
                                             light.SwitchControl(0);
                                         }
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         //鎺у埗寤舵椂鍥炶皟
-                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () =>
                                         {
                                             if (Parent == null)
                                             {
@@ -1120,7 +1098,7 @@
                                             RemoveUpdateControlDeviceStatuAction(zbGateway);
                                             if (sendedControlCommand == false)
                                             {
-                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                                HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                             }
                                         });
                                     };
@@ -1129,7 +1107,7 @@
                                         var lightControl = new Phone.Device.Light.OnOffControl();
                                         UserView.HomePage.Instance.AddChidren(lightControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        lightControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        lightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         lightControl.action += (curDev, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1141,7 +1119,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1149,19 +1127,19 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch)
+                            else if (deviceUI.Type == DeviceType.AirSwitch)
                             {
                                 //绌烘皵寮�鍏�
-                                var airSwitch = deviceUI.CommonDevice as AirSwitch;
+                                var airSwitch = deviceUI as AirSwitch;
                                 if (airSwitch.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1171,14 +1149,14 @@
                                         {
                                             UserHomeView.ReadStatus(airSwitch, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI);
                                             });
                                         }
                                         else
                                         {
                                             if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1186,16 +1164,16 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
                                     deviceRow.IsSelected = airSwitch.OnOffStatus == 1;
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceTypeRowLayout.AddChidren(deviceRow);
                                     deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                     {
-                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        zbGateway = deviceUI.Gateway;
                                         sendedControlCommand = false;
                                         zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI);
                                         (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                         deviceRow.IsSelected = (send2 as Button).IsSelected;
                                         if ((send2 as Button).IsSelected)
@@ -1206,9 +1184,9 @@
                                         {
                                             airSwitch.SwitchControl(0);
                                         }
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         //鎺у埗寤舵椂鍥炶皟
-                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () =>
                                         {
                                             if (Parent == null)
                                             {
@@ -1217,7 +1195,7 @@
                                             RemoveUpdateControlDeviceStatuAction(zbGateway);
                                             if (sendedControlCommand == false)
                                             {
-                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                                HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                             }
                                         });
                                     };
@@ -1227,7 +1205,7 @@
                                         var lightControl = new Phone.Device.Light.AirSwitchControl();
                                         UserView.HomePage.Instance.AddChidren(lightControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        lightControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        lightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         lightControl.action += (curDev, curRoom) =>
                                         {
 
@@ -1241,7 +1219,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1250,19 +1228,19 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
+                            else if (deviceUI.Type == DeviceType.DimmableLight)
                             {
                                 //璋冨厜鐏�
-                                var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
+                                var dimmableLight = deviceUI as ZigBee.Device.DimmableLight;
                                 if (dimmableLight.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1272,14 +1250,14 @@
                                         {
                                             UserHomeView.ReadStatus(dimmableLight, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI);
                                             });
                                         }
                                         else
                                         {
                                             if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1287,17 +1265,17 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = dimmableLight.OnOffStatus == 1;
                                     deviceTypeRowLayout.AddChidren(deviceRow);
 
                                     deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                     {
-                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        zbGateway = deviceUI.Gateway;
                                         sendedControlCommand = false;
                                         zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI);
                                         (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                         deviceRow.IsSelected = (send2 as Button).IsSelected;
                                         if ((send2 as Button).IsSelected)
@@ -1308,9 +1286,9 @@
                                         {
                                             dimmableLight.SwitchControl(0);
                                         }
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         //鎺у埗寤舵椂鍥炶皟
-                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () =>
                                         {
                                             if (Parent == null)
                                             {
@@ -1319,7 +1297,7 @@
                                             RemoveUpdateControlDeviceStatuAction(zbGateway);
                                             if (sendedControlCommand == false)
                                             {
-                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                                HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                             }
                                         });
                                     };
@@ -1330,7 +1308,7 @@
                                         UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
                                         UserView.HomePage.Instance.ScrollEnabled = false;
-                                        dimmableLightControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        dimmableLightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         dimmableLightControl.action += (curDev, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1343,7 +1321,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1351,19 +1329,19 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat)
+                            else if (deviceUI.Type == DeviceType.Thermostat)
                             {
                                 //绌鸿皟
-                                var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                var ac = deviceUI as ZigBee.Device.AC;
                                 if (ac.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1374,7 +1352,7 @@
                                             //鍙戦�佽鍙栫姸鎬佸懡浠�
                                             UserView.UserHomeView.ReadStatus(ac, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI);
                                             });
                                         }
                                         else
@@ -1382,7 +1360,7 @@
                                             //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵��
                                             if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1390,17 +1368,17 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = ac.currentSystemMode != 1;
                                     deviceTypeRowLayout.AddChidren(deviceRow);
 
                                     deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                     {
-                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        zbGateway = deviceUI.Gateway;
                                         sendedControlCommand = false;
                                         zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI);
 
                                         (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                         deviceRow.IsSelected = (send2 as Button).IsSelected;
@@ -1412,9 +1390,9 @@
                                         {
                                             ac.Close();
                                         }
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                         //鎺у埗寤舵椂鍥炶皟
-                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () =>
                                         {
                                             if (Parent == null)
                                             {
@@ -1423,7 +1401,7 @@
                                             RemoveUpdateControlDeviceStatuAction(zbGateway);
                                             if (sendedControlCommand == false)
                                             {
-                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                                HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                             }
                                         });
                                     };
@@ -1433,7 +1411,7 @@
                                         UserView.HomePage.Instance.AddChidren(acControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
                                         UserView.HomePage.Instance.ScrollEnabled = false;
-                                        acControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        acControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         acControl.action += (curDev, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1446,7 +1424,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1455,19 +1433,19 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice)
+                            else if (deviceUI.Type == DeviceType.WindowCoveringDevice)
                             {
                                 //鍗峰笜
-                                var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
+                                var rollerShade = deviceUI as ZigBee.Device.Rollershade;
                                 if (rollerShade.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1477,7 +1455,7 @@
                                         {
                                             UserHomeView.ReadStatus(rollerShade, () =>
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI);
                                             });
                                         }
                                         else
@@ -1485,7 +1463,7 @@
                                             //闃叉鐭椂闂村唴澶氭璇诲彇
                                             if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                             {
-                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
+                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI);
                                             }
                                         }
                                     })
@@ -1493,8 +1471,8 @@
 
                                     var deviceRow = new CategoryFunctionForWinRow(0, 35);
                                     deviceRow.Init(deviceUI);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0;
                                     deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
                                     deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1522,7 +1500,7 @@
                                         UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                                         UserView.HomePage.Instance.PageIndex += 1;
                                         UserView.HomePage.Instance.ScrollEnabled = false;
-                                        rollerShadeControl.Show(deviceUI, Common.Room.CurrentRoom);
+                                        rollerShadeControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         rollerShadeControl.action += (curDev, curRoom) =>
                                         {
                                             ReFreshDeviceActionForWin(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1534,7 +1512,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceActionForWin(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1542,27 +1520,27 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
                                     }
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock)
+                            else if (deviceUI.Type == DeviceType.DoorLock)
                             {
                                 var deviceRow = new CategoryFunctionRow(0, 35);
                                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                 deviceRow.HideSwitchBtn(true);
                                 deviceTypeRowLayout.AddChidren(deviceRow);
 
                                 deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                                 {
-                                    var userDoorLockPage = new UserDoorLockPage(Common.Room.CurrentRoom, deviceUI);
+                                    var userDoorLockPage = new UserDoorLockPage(HdlRoomLogic.Current.CurrentRoom, deviceUI);
                                     HomePage.Instance.AddChidren(userDoorLockPage);
                                     HomePage.Instance.PageIndex += 1;
                                     userDoorLockPage.Show();
@@ -1572,7 +1550,7 @@
                                     var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                     UserView.HomePage.Instance.AddChidren(detailInfo);
                                     UserView.HomePage.Instance.PageIndex += 1;
-                                    detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                    detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                     detailInfo.EditAction += (curDevice, curRoom) =>
                                     {
                                         ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1580,21 +1558,21 @@
                                 };
                                 var editBtn = new CommonForm.RowLayoutEditButton()
                                 {
-                                    Tag = deviceUI
+                                    Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                 };
-                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                 {
                                     deviceTypeRowLayout.AddRightView(editBtn);
                                     editBtn.MouseUpEventHandler += deviceDetailHandler;
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.IASZone)
+                            else if (deviceUI.Type == DeviceType.IASZone)
                             {
                                 var deviceRow = new CategoryFunctionRow(0, 35);
                                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                deviceRow.IsSelected = (deviceUI.CommonDevice as IASZone).iASInfo?.Alarm1 == 1;
+                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
+                                deviceRow.IsSelected = (deviceUI as IASZone).iASInfo?.Alarm1 == 1;
                                 deviceRow.HideSwitchBtn(true);
                                 deviceTypeRowLayout.AddChidren(deviceRow);
 
@@ -1603,7 +1581,7 @@
                                     var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                     UserView.HomePage.Instance.AddChidren(detailInfo);
                                     UserView.HomePage.Instance.PageIndex += 1;
-                                    detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                    detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                     detailInfo.EditAction += (curDevice, curRoom) =>
                                     {
                                         ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1611,17 +1589,17 @@
                                 };
                                 var editBtn = new CommonForm.RowLayoutEditButton()
                                 {
-                                    Tag = deviceUI
+                                    Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                 };
-                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                 {
                                     deviceTypeRowLayout.AddRightView(editBtn);
                                     editBtn.MouseUpEventHandler += deviceDetailHandler;
                                 }
                             }
-                            else if (deviceUI.CommonDevice.Type == DeviceType.TemperatureSensor)
+                            else if (deviceUI.Type == DeviceType.TemperatureSensor)
                             {
-                                var tempera = deviceUI.CommonDevice as TemperatureSensor;
+                                var tempera = deviceUI as TemperatureSensor;
                                 if (tempera.Gateway != null)
                                 {
                                     new System.Threading.Thread(() =>
@@ -1633,11 +1611,11 @@
                                             {
                                                 if (tempera.SensorDiv == 1)
                                                 {
-                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI.CommonDevice);
+                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI);
                                                 }
                                                 else if (tempera.SensorDiv == 2)
                                                 {
-                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI.CommonDevice);
+                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI);
                                                 }
                                             });
                                         }
@@ -1647,11 +1625,11 @@
                                             {
                                                 if (tempera.SensorDiv == 1)
                                                 {
-                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI.CommonDevice);
+                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI);
                                                 }
                                                 else if (tempera.SensorDiv == 2)
                                                 {
-                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI.CommonDevice);
+                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI);
                                                 }
                                             }
                                         }
@@ -1660,8 +1638,8 @@
 
                                     var deviceRow = new CategoryFunctionRow(0, 35);
                                     deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                    deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                     deviceRow.IsSelected = false;
                                     deviceRow.HideSwitchBtn(true);
                                     deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1671,7 +1649,7 @@
                                         var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                         UserView.HomePage.Instance.AddChidren(detailInfo);
                                         UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                        detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                         detailInfo.EditAction += (curDevice, curRoom) =>
                                         {
                                             ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1679,9 +1657,9 @@
                                     };
                                     var editBtn = new CommonForm.RowLayoutEditButton()
                                     {
-                                        Tag = deviceUI
+                                        Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                     };
-                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                     {
                                         deviceTypeRowLayout.AddRightView(editBtn);
                                         editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1692,8 +1670,8 @@
                             {
                                 var deviceRow = new CategoryFunctionRow(0, 35);
                                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                                deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI));
                                 deviceRow.HideSwitchBtn(true);
                                 deviceTypeRowLayout.AddChidren(deviceRow);
 
@@ -1702,7 +1680,7 @@
                                     var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                     UserView.HomePage.Instance.AddChidren(detailInfo);
                                     UserView.HomePage.Instance.PageIndex += 1;
-                                    detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                    detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom);
                                     detailInfo.EditAction += (curDevice, curRoom) =>
                                     {
                                         ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow);
@@ -1710,9 +1688,9 @@
                                 };
                                 var editBtn = new CommonForm.RowLayoutEditButton()
                                 {
-                                    Tag = deviceUI
+                                    Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                                 };
-                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                                if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                                 {
                                     deviceTypeRowLayout.AddRightView(editBtn);
                                     editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1726,21 +1704,19 @@
                                 alert.Show();
                                 alert.ConfirmClickEvent += () =>
                                 {
-                                    if (Common.Room.CurrentRoom.IsLove)
+                                    if (HdlRoomLogic.Current.CurrentRoom.IsLove)
                                     {
-                                        Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName);
+                                        HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);
                                         deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
                                         sameTypeList.Remove(deviceUI);
                                     }
                                     else
                                     {
-                                        Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
+                                        HdlRoomLogic.Current.DeleteDevice(deviceUI);
                                         deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
-                                        sameTypeList.Remove(deviceUI);
-                                        if (Common.Room.CurrentRoom.GetLoveRoom().DeviceUIList.Find((obj) => obj.FileName == deviceUI.FileName) != null)
-                                        {
-                                            Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(deviceUI.FileName);
-                                        }
+                                        sameTypeList.Remove(deviceUI);
+
+                                        HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);
                                     }
                                     if (sameTypeList.Count == 0)
                                     {
@@ -1750,9 +1726,9 @@
                             };
                             var delBtn = new CommonForm.RowLayoutDeleteButton()
                             {
-                                Tag = deviceUI
+                                Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI)
                             };
-                            if (Common.Room.CurrentRoom.IsSharedRoom == false)
+                            if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
                             {
                                 deviceTypeRowLayout.AddRightView(delBtn);
                                 delBtn.MouseUpEventHandler += delEvent;
@@ -1772,38 +1748,38 @@
         /// <param name="sameTypeList"></param>
         /// <param name="devListScrolView"></param>
         /// <param name="deviceRow"></param>
-        private void ReFreshDeviceAction(DeviceUI deviceUI, Common.Room curRoom, List<DeviceUI> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionRow deviceRow)
+        private void ReFreshDeviceAction(CommonDevice deviceUI, Common.Room curRoom, List<CommonDevice> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionRow deviceRow)
         {
-            if (Common.Room.CurrentRoom.IsLove)
+            if (HdlRoomLogic.Current.CurrentRoom.IsLove)
             {
                 deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                if (Common.Room.CurrentRoom.IsCollectInRoom(deviceUI.FileName) == false)
+                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false)
                 {
                     devListScrolView.RemoveViewByTag(deviceUI);
                     sameTypeList.Remove(deviceUI);
                     if (sameTypeList.Count == 0)
                     {
-                        RefreshFunction(Common.Room.CurrentRoom);
+                        RefreshFunction(HdlRoomLogic.Current.CurrentRoom);
                     }
                 }
             }
             else
             {
-                if (curRoom.Id != Common.Room.CurrentRoom.Id)
+                if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id)
                 {
-                    Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName);
+                    HdlRoomLogic.Current.DeleteDevice(deviceUI);
                     devListScrolView.RemoveViewByTag(deviceUI);
                     sameTypeList.Remove(deviceUI);
                     if (sameTypeList.Count == 0)
                     {
-                        RefreshFunction(Common.Room.CurrentRoom);
+                        RefreshFunction(HdlRoomLogic.Current.CurrentRoom);
                     }
                 }
                 else
                 {
                     deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
+                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
                 }
             }
         }
@@ -1815,38 +1791,38 @@
         /// <param name="sameTypeList"></param>
         /// <param name="devListScrolView"></param>
         /// <param name="deviceRow"></param>
-        private void ReFreshDeviceActionForWin(DeviceUI deviceUI, Common.Room curRoom, List<DeviceUI> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionForWinRow deviceRow)
+        private void ReFreshDeviceActionForWin(CommonDevice deviceUI, Common.Room curRoom, List<CommonDevice> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionForWinRow deviceRow)
         {
-            if (Common.Room.CurrentRoom.IsLove)
+            if (HdlRoomLogic.Current.CurrentRoom.IsLove)
             {
                 deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
-                if (Common.Room.CurrentRoom.IsCollectInRoom(deviceUI.FileName) == false)
+                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
+                if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false)
                 {
                     devListScrolView.RemoveViewByTag(deviceUI);
                     sameTypeList.Remove(deviceUI);
                     if (sameTypeList.Count == 0)
                     {
-                        RefreshFunction(Common.Room.CurrentRoom);
+                        RefreshFunction(HdlRoomLogic.Current.CurrentRoom);
                     }
                 }
             }
             else
             {
-                if (curRoom.Id != Common.Room.CurrentRoom.Id)
+                if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id)
                 {
-                    Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName);
+                    HdlRoomLogic.Current.DeleteDevice(deviceUI);
                     devListScrolView.RemoveViewByTag(deviceUI);
                     sameTypeList.Remove(deviceUI);
                     if (sameTypeList.Count == 0)
                     {
-                        RefreshFunction(Common.Room.CurrentRoom);
+                        RefreshFunction(HdlRoomLogic.Current.CurrentRoom);
                     }
                 }
                 else
                 {
                     deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
+                    deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI));
                 }
             }
         }
@@ -1876,7 +1852,8 @@
             functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
 
             RoomButton curBtn = new RoomButton(0, 0);
-            foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom())
+            var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
+            foreach (var room in lisrRoom)
             {
                 var row = new FrameLayout()
                 {
@@ -1891,7 +1868,7 @@
                 roomBtn.SetTitle(room.Name);
                 row.AddChidren(roomBtn);
 
-                if (room.Id == Common.Room.CurrentRoom.Id)
+                if (room.Id == HdlRoomLogic.Current.CurrentRoom.Id)
                 {
                     roomBtn.IsSelected = true;
                     curBtn = roomBtn;
@@ -1914,7 +1891,7 @@
                     sender.IsSelected = true;
                     curBtn.IsSelected = false;
                     curBtn = sender;
-                    Common.Room.CurrentRoom = room;
+                    HdlRoomLogic.Current.CurrentRoom = room;
                     if (sceneBtn.IsSelected)
                     {
                         RefreshScene(room);
@@ -1956,11 +1933,11 @@
                 functionSceneBodyView.AddChidren(sceneScrolView);
                 foreach (var scene in sceneList)
                 {
-                    var sceneView = new SceneCategoryView(0, 0);
+                    var sceneView = new SceneCategoryView();
                     sceneScrolView.AddChidren(sceneView);
-                    sceneView.Init(scene, room);
-                    GetDelayScene(sceneScrolView);
-                }
+                    sceneView.InitControl(scene, room);
+                }
+                GetDelayScene(sceneScrolView);
             }
         }
 
@@ -2015,6 +1992,10 @@
             for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++)
             {
                 var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView;
+                if (sceneView == null)
+                {
+                    continue;
+                }
                 foreach (var delayScenesListResponseInfo in delayList)
                 {
                     if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id)
@@ -2022,21 +2003,26 @@
                         sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime;
                         var remainTime = delayScenesListResponseInfo.RemainTime;
                         if (remainTime > 0)
-                        {
+                        {
+                            //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+                            HdlSceneLogic.Current.StartDelayTimeThread(sceneView.scene);
                             new System.Threading.Thread(() =>
                             {
-                                while (remainTime-- > 0)
+                                while (remainTime > 0 && this.Parent != null)
                                 {
                                     System.Threading.Thread.Sleep(1000);
                                     Application.RunOnMainThread(() =>
                                     {
                                         sceneView.SetTimeText(CommonFormResouce.GetTimeString(remainTime));
                                     });
+                                    remainTime--;
                                 }
                                 Application.RunOnMainThread(() =>
                                 {
-                                    sceneView.scene.RemainTime = 0;
-                                    sceneView.SetTimeImage();
+                                    if (this.Parent != null)
+                                    {
+                                        sceneView.SetTimeImage();
+                                    }
                                 });
                             })
                             { IsBackground = true }.Start();
@@ -2045,31 +2031,19 @@
                     }
                 }
             }
-        }
-
-        /// <summary>
-        /// GetExecScene
-        /// </summary>
-        /// <param name="scrolViewLayout"></param>
-        private void GetExecScene(VerticalScrolViewLayout scrolViewLayout)
-        {
-            new System.Threading.Thread(() =>
-            {
-
-            })
-            { IsBackground = true }.Start();
-        }
+        }
+
         #endregion
-
+
         #region 鈼� 鑷姩鍖朹_________________________
-      
+
         /// <summary>
         /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
         /// </summary>
-        private  void ShowAutotion()
+        private void ShowAutotion()
         {
-           // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
-           
+            // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+
             var bjFrameLayout = new FrameLayout
             {
                 Width = Application.GetRealWidth(1080 - 58),
@@ -2227,25 +2201,25 @@
                 }
                 logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight;
                 logicScrolView.Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight;
-                Automationview(logicScrolView,no);
+                Automationview(logicScrolView, no);
             };
             logicScrolView.BeginHeaderRefreshingAction += () =>
             {
                 //閲嶆柊鍒锋柊logic鍒楄〃
                 Common.Logic.LogicList.Clear();
-                Read(logicScrolView,no);
+                Read(logicScrolView, no);
                 //鍏抽棴鍒锋柊View锛�
                 logicScrolView.EndHeaderRefreshing();
-            };
-           
-            Read(logicScrolView,no);
+            };
+
+            Read(logicScrolView, no);
 
         }
         /// <summary>
         /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱
         /// </summary>
         /// <param name="logicScrolView"></param>
-        private async void Read(VerticalRefreshLayout logicScrolView,bool no)
+        private async void Read(VerticalRefreshLayout logicScrolView, bool no)
         {
             CommonPage.Loading.Start();
             if (Common.Logic.LogicList.Count == 0)
@@ -2267,23 +2241,23 @@
                 }
             }
             //鑷姩鍖�
-            Automationview(logicScrolView,no);
+            Automationview(logicScrolView, no);
             CommonPage.Loading.Hide();
         }
         /// <summary>
         /// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈�
         /// </summary>
         /// <param name="refresview">Refresview.</param>
-        private async void Automationview(VerticalRefreshLayout refresview,bool no)
+        private async void Automationview(VerticalRefreshLayout refresview, bool no)
         {
             refresview.RemoveAll();
-            if (Common.Logic.LogicList.Count == 0&&no==false)
+            if (Common.Logic.LogicList.Count == 0 && no == false)
             {
                 //灏辨槸涓轰簡鏄剧ず寮曞娣诲姞鍥炬爣;
                 refresview.BackgroundColor = 0x00000000;
                 var noFrameLayout = new FrameLayout
                 {
-                    Height = Application.GetRealHeight(434+ 200+32+160),
+                    Height = Application.GetRealHeight(434 + 200 + 32 + 160),
                     //BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                 };
                 refresview.AddChidren(noFrameLayout);
@@ -2291,7 +2265,7 @@
 
                 var noIconBtn = new Button
                 {
-                    Y=Application.GetRealHeight(160),
+                    Y = Application.GetRealHeight(160),
                     Width = Application.GetMinRealAverage(756),
                     Height = Application.GetMinRealAverage(434),
                     UnSelectedImagePath = "Item/NoFunction.png",
@@ -2302,14 +2276,14 @@
                 var noTextBtn = new Button()
                 {
                     Y = noIconBtn.Bottom,
-                    Height = Application.GetRealHeight(200)+Application.GetRealHeight(32),
+                    Height = Application.GetRealHeight(200) + Application.GetRealHeight(32),
                     Width = Application.GetRealWidth(700),
                     //Gravity = Gravity.CenterHorizontal,
                     Text = Language.StringByID(MyInternationalizationString.automationaddtext).Replace("{\\r\\n}", "\r\n"),
                     TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                     TextAlignment = TextAlignment.Center,
                     IsMoreLines = true,
-                    X = Application.GetRealWidth(190-58),
+                    X = Application.GetRealWidth(190 - 58),
                 };
                 noFrameLayout.AddChidren(noTextBtn);
 
@@ -2329,17 +2303,23 @@
             }
             foreach (var logic in Common.Logic.LogicList)
             {
-
-                
+                var fLayout = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(190 + 30),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                };
+                refresview.AddChidren(fLayout);
+
                 var logicRowlayout = new RowLayout
                 {
                     Height = Application.GetRealHeight(190 + 30),
-                    Width = Application.GetRealWidth(1080-58),
-                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
-                   BackgroundColor =ZigbeeColor.Current.LogicBackgroundColor,
-                   
+                    Width = Application.GetRealWidth(1080 - 58),
+                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+
                 };
-                refresview.AddChidren(logicRowlayout);
+                fLayout.AddChidren(logicRowlayout);
 
 
 
@@ -2412,9 +2392,9 @@
                     var logicCommunalPage = new Logic.LogicCommunalPage();
                     HomePage.Instance.AddChidren(logicCommunalPage);
                     HomePage.Instance.PageIndex += 1;
-                    logicCommunalPage.Show(() => { 
+                    logicCommunalPage.Show(() => {
                         logicnameBtn.Text = logic.LogicName;
-                        Automationview(refresview,no);
+                        Automationview(refresview, no);
                     });
 
                 };
@@ -2444,13 +2424,13 @@
                 };
                 var line = new Button
                 {
-                    Y = Application.GetRealHeight(215),
-                    Height = Application.GetRealHeight(5), 
+                    Y = fLayout.Height - 1,
+                    Height = 1,
+                    X = Application.GetRealWidth(58),
                     Width = Application.GetRealWidth(1080 - 58),
                     BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
-                    X = Application.GetRealWidth(58),
                 };
-                logicRowlayout.AddChidren(line);
+                fLayout.AddChidren(line);
             }
 
         }
@@ -2925,10 +2905,10 @@
             {
                 commonDeviceList.Add(common);
             }
-        }
-
+        }
+
         #endregion
-
-   
+
+
     }
 }

--
Gitblit v1.8.0