From f1c3921b08bb22ac6f5db22d620e01d7e8e5c49f Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 30 十二月 2019 13:32:33 +0800
Subject: [PATCH] 2019-12-30-1

---
 ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs | 1685 +++++++++++++++++----------------------------------------
 1 files changed, 514 insertions(+), 1,171 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index 22b59c0..1023eea 100644
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -4,6 +4,8 @@
 using Shared.Phone.Device.AC;
 using ZigBee.Device;
 using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserCenter.DoorLock;
+using System.Timers;
 
 namespace Shared.Phone.UserView
 {
@@ -72,8 +74,19 @@
         private readonly int sleepSpan = 300;
 
 
-        private FrameLayout itemView=new FrameLayout();
-
+        private FrameLayout itemView = new FrameLayout();
+        /// <summary>
+        /// floorBtn
+        /// </summary>
+        private Button floorBtn;
+        /// <summary>
+        /// timeDic
+        /// </summary>
+        private Dictionary<string, Timer> timerDic = new Dictionary<string, Timer> { };
+        /// <summary>
+        /// sceneScrolView
+        /// </summary>
+        private VerticalScrolViewLayout sceneScrolView ;
         #endregion
 
         #region 鈼� 鎺ュ彛____________________________
@@ -128,10 +141,10 @@
                             {
                                 case DeviceType.OnOffOutput:
                                     //寮�鍏冲姛鑳�
-                                    if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 6)
+                                    if (common.DeviceStatusReport.CluterID == 6)
                                     {
                                         var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
-                                        onOffOutputLight.DeviceStatusReport = (common as ZigBee.Device.ToggleLight).DeviceStatusReport;
+                                        onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport;
 
                                         //璁板綍銆佹洿鏂扮姸鎬�
                                         if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0)
@@ -140,19 +153,18 @@
                                         }
                                         onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         (rowFL.GetChildren(0) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1;
-                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = CommonFormResouce.GetSwitchStatu(onOffOutputLight.OnOffStatus == 1);
+                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                         //璁板綍鍥炲鏃堕棿
                                         onOffOutputLight.LastDateTime = DateTime.Now;
-
                                     }
                                     break;
 
                                 case DeviceType.AirSwitch:
                                     //寮�鍏冲姛鑳�
-                                    if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6)
+                                    if (common.DeviceStatusReport.CluterID == 6)
                                     {
                                         var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
-                                        airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport;
+                                        airSwitch.DeviceStatusReport = common.DeviceStatusReport;
                                         for (int j = 0; j < frameLayout.ChildrenCount; j++)
                                         {
                                             var tempView = frameLayout.GetChildren(j);
@@ -168,164 +180,138 @@
                                                     return;
                                                 }
                                                 airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                                (tempView as Button).IsSelected = airSwitch.OnOffStatus == 1;
+                                                (rowFL.GetChildren(0) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1;
+                                                (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                                 //璁板綍鍥炲鏃堕棿
                                                 airSwitch.LastDateTime = DateTime.Now;
                                             }
                                         }
                                     }
                                     //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                    if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3)
+                                    if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        var airSwitch = deviceUI.CommonDevice as AirSwitch;
-                                        airSwitch.IsOnline = 1;
-                                        for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = frameLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = airSwitch.IsOnline == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                airSwitch.LastDateTime = DateTime.Now;
-                                            }
-                                        }
+                                        deviceUI.CommonDevice.IsOnline = 1;
+                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
                                 case DeviceType.WindowCoveringDevice:
-                                    if ((common as Rollershade).DeviceStatusReport.CluterID == 258)
+                                    if (common.DeviceStatusReport.CluterID == 258)
                                     {
-                                        if ((common as Rollershade).DeviceStatusReport.AttriBute[0].AttributeId == 0)
+                                        if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0)
                                         {
                                             //绐楀笜绫诲瀷
                                             var rollerShade = deviceUI.CommonDevice as Rollershade;
-                                            rollerShade.DeviceStatusReport = (common as Rollershade).DeviceStatusReport;
-                                            rollerShade.WcdType = (common as Rollershade).DeviceStatusReport.AttriBute[0].AttriButeData;
+                                            rollerShade.DeviceStatusReport = common.DeviceStatusReport;
+                                            rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData;
                                             rollerShade.LastDateTime = DateTime.Now;
+                                            (rowFL.GetChildren(0) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
+                                            (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                         }
                                     }
-                                    if ((common as ZigBee.Device.Rollershade).DeviceStatusReport.CluterID == 3)
+                                    if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
-                                        rollershade.IsOnline = 1;
-                                        for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = frameLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = rollershade.IsOnline == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                rollershade.LastDateTime = DateTime.Now;
-                                            }
-                                        }
+                                        deviceUI.CommonDevice.IsOnline = 1;
+                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
                                 case DeviceType.Thermostat:
                                     //AC鍔熻兘
-                                    if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513)
+                                    if (common.DeviceStatusReport.CluterID == 513)
                                     {
                                         var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                        ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport;
+                                        ac.DeviceStatusReport = common.DeviceStatusReport;
                                         var attriButeList = ac.DeviceStatusReport.AttriBute;
                                         if (attriButeList == null || attriButeList.Count == 0)
                                         {
                                             continue;
                                         }
+
+                                        var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
                                         switch (attriButeList[0].AttributeId)
                                         {
                                             case 0:
                                                 //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
-                                                ac.currentLocalTemperature = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
+                                                ac.currentLocalTemperature = curTemp;
                                                 ac.LastDateTime = DateTime.Now;
                                                 break;
 
                                             case 17:
                                                 //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                                ac.currentCoolingSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
+                                                ac.currentCoolingSetpoint = curTemp;
                                                 ac.LastDateTime = DateTime.Now;
                                                 break;
 
                                             case 18:
                                                 //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                                ac.currentHeatingSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
+                                                ac.currentHeatingSetpoint = curTemp;
                                                 ac.LastDateTime = DateTime.Now;
                                                 break;
 
                                             case 4096:
                                                 //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
-                                                ac.currentAutoSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
+                                                ac.currentAutoSetpoint = curTemp;
                                                 ac.LastDateTime = DateTime.Now;
                                                 break;
 
                                             case 28:
                                                 //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡
-                                                //Off = 0  Auto = 1 Cool = 3 Heat = 4 FanOnly = 7  Dry = 8
                                                 ac.currentSystemMode = attriButeList[0].AttriButeData;
                                                 ac.LastDateTime = DateTime.Now;
-
-                                                for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                                {
-                                                    var tempView = frameLayout.GetChildren(j);
-                                                    if (tempView.Tag == null)
-                                                    {
-                                                        continue;
-                                                    }
-                                                    if (tempView.Tag.ToString() == "Temparetrue")
-                                                    {
-
-                                                        (tempView as Button).Text = $"{ACControlBase.GetCurrentModeTemperature(ac)} 鈩�";
-                                                    }
-
-                                                    if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
-                                                    {
-                                                        (tempView as Button).IsSelected = ac.currentSystemMode != 0;
-                                                    }
-                                                }
                                                 break;
 
-
+                                            case 4099:
+                                                var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0');
+                                                var modeStr = value.Substring(value.Length - 5, 5);
+                                                for (int j = 0; j < modeStr.Length; j++)
+                                                {
+                                                    ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0;
+                                                }
+                                                break;
                                         }
-
+                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0;
+                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
+                                    }
+                                    if (common.DeviceStatusReport.CluterID == 514)
+                                    {
+                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                        var attriButeList = common.DeviceStatusReport.AttriBute;
+                                        if (attriButeList == null || attriButeList.Count == 0)
+                                        {
+                                            return;
+                                        }
+                                        ac.DeviceStatusReport = common.DeviceStatusReport;
+                                        switch (attriButeList[0].AttributeId)
+                                        {
+                                            case 0:
+                                                ac.currentFanMode = attriButeList[0].AttriButeData;
+                                                ac.LastDateTime = DateTime.Now;
+                                                break;
+                                            case 4096:
+                                                ac.currentFanSwingMode = attriButeList[0].AttriButeData;
+                                                ac.LastDateTime = DateTime.Now;
+                                                break;
+                                        }
+                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0;
+                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                     }
                                     //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                    if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3)
+                                    if (common.DeviceStatusReport.CluterID == 3)
                                     {
                                         var ac = deviceUI.CommonDevice as AC;
                                         ac.IsOnline = 1;
-                                        for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = frameLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = ac.IsOnline == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                ac.LastDateTime = DateTime.Now;
-                                            }
-                                        }
-
+                                        ac.LastDateTime = DateTime.Now;
                                     }
                                     break;
 
                                 case DeviceType.DimmableLight:
                                     //璋冨厜鐏姛鑳�
                                     //寮�鍏冲姛鑳�
-                                    if ((common as DimmableLight).DeviceStatusReport.CluterID == 6)
+                                    if (common.DeviceStatusReport.CluterID == 6)
                                     {
                                         var dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                                        dimmableLight.DeviceStatusReport = (common as DimmableLight).DeviceStatusReport;
+                                        dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                         //璁板綍銆佹洿鏂扮姸鎬�
                                         if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
                                         {
@@ -333,16 +319,16 @@
                                         }
                                         dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                         (rowFL.GetChildren(0) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1;
-                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = CommonFormResouce.GetSwitchStatu(dimmableLight.OnOffStatus == 1);
+                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                         //璁板綍鍥炲鏃堕棿
                                         dimmableLight.LastDateTime = DateTime.Now;
                                     }
 
                                     //浜害
-                                    if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 8)
+                                    if (common.DeviceStatusReport.CluterID == 8)
                                     {
-                                        var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                        dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport;
+                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
+                                        dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                         var attriButeList = dimmableLight.DeviceStatusReport.AttriBute;
                                         if (attriButeList == null || attriButeList.Count == 0)
                                         {
@@ -352,25 +338,14 @@
                                         {
                                             case 0:
                                                 //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
-                                                dimmableLight.Level = attriButeList[0].AttriButeData ;
+                                                dimmableLight.Level = attriButeList[0].AttriButeData;
                                                 dimmableLight.LastDateTime = DateTime.Now;
-                                                for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                                {
-                                                    var tempView = frameLayout.GetChildren(j);
-                                                    if (tempView.Tag == null)
-                                                    {
-                                                        continue;
-                                                    }
-                                                    if (tempView.Tag.ToString() == "LevelSeekBar")
-                                                    {
-                                                        (tempView as HorizontalSeekBar).Progress = dimmableLight.Level;
-                                                    }
-                                                }
+                                                (rowFL.GetChildren(0) as FunctionMainView).IsSelected = true;
+                                                (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                                 break;
                                         }
                                     }
                                     break;
-
                             }
                         }
                     }
@@ -380,7 +355,7 @@
                     }
                 });
             }
-           
+
         }
         /// <summary>
         /// Changeds the IL ogic status.
@@ -436,7 +411,7 @@
             #region topview
             var topFrameLayout = new FrameLayout()
             {
-                Y=Application.GetRealHeight(60),
+                Y = Application.GetRealHeight(60),
                 Height = Application.GetRealHeight(127),
                 BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
             };
@@ -452,15 +427,15 @@
             };
             topFrameLayout.AddChidren(floor);
 
-            var floorBtn = new Button
+            floorBtn = new Button
             {
-                X=floor.Right,
-                Width=Application.GetRealWidth(500),
-                Height=Application.GetRealHeight(100),
+                X = floor.Right,
+                Width = Application.GetRealWidth(500),
+                Height = Application.GetRealHeight(100),
                 Gravity = Gravity.CenterVertical,
-                TextAlignment =TextAlignment.CenterLeft,
-                TextColor=ZigbeeColor.Current.GXCTextColor,
-                Text=Config.Instance.Home.GetCurrentFloorName
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.GXCTextColor,
+                Text = Config.Instance.Home.GetCurrentFloorName
             };
             topFrameLayout.AddChidren(floorBtn);
 
@@ -471,13 +446,13 @@
                 Height = Application.GetMinRealAverage(69),
                 Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Item/Message.png",
-                SelectedImagePath="Item/MessageSelected.png"
+                SelectedImagePath = "Item/MessageSelected.png"
             };
             topFrameLayout.AddChidren(messageBtn);
 
             var residecneName = new Button()
             {
-                X=Application.GetRealWidth(CommonFormResouce.X_Left),
+                X = Application.GetRealWidth(CommonFormResouce.X_Left),
                 Y = Application.GetRealHeight(161),
                 Width = Application.GetRealWidth(700),
                 Height = Application.GetRealHeight(95),
@@ -486,24 +461,14 @@
                 TextSize = 24,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor
             };
-            if(Config.Instance.Home.IsOthreShare)
+            if (Config.Instance.Home.IsOthreShare)
             {
-                residecneName.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){Config.Instance.Home.Name}";
+                residecneName.Text = $"{Config.Instance.Home.Name}";
             }
             AddChidren(residecneName);
 
-            EventHandler<MouseEventArgs> selectFloor = (send, e) =>
-              {
-                  var floorFL = new Phone.Device.Category.SelectFloor();
-                  AddChidren(floorFL);
-                  floorFL.Init(35,153);
-                  floorFL.FloorAction = (floorName) =>
-                  {
-                      floorBtn.Text = floorName;
-                  };
-              };
-            floor.MouseUpEventHandler += selectFloor;
-            floorBtn.MouseUpEventHandler += selectFloor;
+            floor.MouseUpEventHandler += SelectFloor;
+            floorBtn.MouseUpEventHandler += SelectFloor;
             //鍒囨崲浣忓畢
             residecneName.MouseLongEventHandler += (send, e) =>
             {
@@ -566,7 +531,7 @@
                     var scrolView = new VerticalScrolViewLayout()
                     {
                         Y = changeHomeBtn.Bottom,
-                        Height = Application.GetMinRealAverage(305-10)
+                        Height = Application.GetMinRealAverage(305 - 10)
                     };
                     changeHomeFL.AddChidren(scrolView);
 
@@ -586,7 +551,7 @@
                         scrolView.AddChidren(rowView);
                         var pointBtn = new Device.CommonForm.SelectedStatuButton()
                         {
-                            X=Application.GetRealWidth(80),
+                            X = Application.GetRealWidth(80),
                             Width = Application.GetMinRealAverage(80),
                             Height = Application.GetMinRealAverage(80),
                             Gravity = Gravity.CenterVertical,
@@ -605,9 +570,9 @@
                             SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor,
                             IsSelected = home.Id == Config.Instance.Home.Id
                         };
-                        if(home.IsOthreShare)
+                        if (home.IsOthreShare)
                         {
-                            nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}";
+                            nameBtn.Text = $"{home.Name}";
                         }
                         rowView.AddChidren(nameBtn);
 
@@ -623,9 +588,9 @@
                             nameBtn.IsSelected = true;
 
                             residecneName.Text = home.Name;
-                            if(home.IsOthreShare)
+                            if (home.IsOthreShare)
                             {
-                                nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}";
+                                nameBtn.Text = $"{home.Name}";
                             }
                             clickCheckBtn = pointBtn;
                             clickNameBtn = nameBtn;
@@ -644,7 +609,7 @@
                             residecneName.Text = home.Name;
                             if (home.IsOthreShare)
                             {
-                                residecneName.Text = nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}";
+                                residecneName.Text = nameBtn.Text = $"{home.Name}";
                             }
                         }
                         else
@@ -658,15 +623,12 @@
             //娑堟伅
             messageBtn.MouseUpEventHandler += (send, e) =>
             {
-                var roomList = new Shared.Phone.Device.Room.RoomManagement();
-                HomePage.Instance.AddChidren(roomList);
-                HomePage.Instance.PageIndex += 1;
-                roomList.Show();
+               
             };
 
             #endregion
 
-            if(CanBindGateway()==false)
+            if (CanBindGateway() == false)
             {
                 var roomPageView = new PageLayout()
                 {
@@ -680,78 +642,20 @@
                 AddChidren(roomPageView);
 
                 //褰撳墠鎴块棿
-                if (Shared.Common.Room.CanInitAllRoom == true)
-                {
-                    //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom;
-                    Room.CurrentRoom = Room.Lists[0];
-                    foreach (var room in Room.Lists)
-                    {
-                        var roomBackView = new FrameLayout()
-                        {
-                            BackgroundImagePath = room.BackgroundImage
-                        };
-                        roomPageView.AddChidren(roomBackView);
-                        var roomBG = new Button()
-                        {
-                            UnSelectedImagePath = "Room/HomeBG.png",
-                        };
-                        roomBackView.AddChidren(roomBG);
-                        var roomName = new Button()
-                        {
-                            X = Application.GetRealWidth(20),
-                            Y = Application.GetRealHeight(20),
-                            Width = Application.GetRealWidth(500),
-                            Height = Application.GetRealHeight(80),
-                            Text = room.Name,
-                            TextAlignment = TextAlignment.CenterLeft,
-                            TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                            TextSize = 18,
-                        };
-                        roomBackView.AddChidren(roomName);
-                        var roomListBtn = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = roomPageView.Width - Application.GetRealWidth(100 + 20),
-                            Y = Application.GetRealHeight(20),
-                            Width = Application.GetMinRealAverage(100),
-                            Height = Application.GetMinRealAverage(100),
-                            UnSelectedImagePath = "Item/List.png",
-                            SelectedImagePath = "Item/ListSelected.png"
-                        };
-                        roomBackView.AddChidren(roomListBtn);
-
-                        roomListBtn.MouseUpEventHandler += (send, e) =>
-                        {
-                            //var roomList = new Device.Room.RoomManagement();
-                            //HomePage.Instance.AddChidren(roomList);
-                            //HomePage.Instance.PageIndex += 1;
-                            //roomList.Show();
-                            //roomList.action += () =>
-                            //{
-                            //    Show();
-                            //};
-
-                            var editRoom = new Device.Room.EditRoom();
-                            HomePage.Instance.AddChidren(editRoom);
-                            HomePage.Instance.PageIndex += 1;
-                            editRoom.Show(room);
-                            editRoom.action += () =>
-                            {
-                                Show();
-                            };
-
-                        };
-                    }
-                }
-                else
+                //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom;
+                var rList = Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom();
+                Room.CurrentRoom = rList[0];
+                foreach (var room in rList)
                 {
                     var roomBackView = new FrameLayout()
                     {
-                        BackgroundImagePath = "Room/r0.png"
+                        BackgroundImagePath = room.BackgroundImage
                     };
                     roomPageView.AddChidren(roomBackView);
                     var roomBG = new Button()
                     {
                         UnSelectedImagePath = "Room/HomeBG.png",
+                        //UnSelectedImagePath = room.BackgroundImage
                     };
                     roomBackView.AddChidren(roomBG);
                     var roomName = new Button()
@@ -760,53 +664,52 @@
                         Y = Application.GetRealHeight(20),
                         Width = Application.GetRealWidth(500),
                         Height = Application.GetRealHeight(80),
-                        Text = Language.StringByID(R.MyInternationalizationString.Favorite),
+                        Text = room.Name,
                         TextAlignment = TextAlignment.CenterLeft,
                         TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
                         TextSize = 18,
                     };
                     roomBackView.AddChidren(roomName);
-                    var roomListBtn = new Button()
+                    var roomListBtn = new Device.CommonForm.SelectedStatuButton()
                     {
                         X = roomPageView.Width - Application.GetRealWidth(100 + 20),
                         Y = Application.GetRealHeight(20),
                         Width = Application.GetMinRealAverage(100),
                         Height = Application.GetMinRealAverage(100),
-                        UnSelectedImagePath = "Item/List.png"
+                        UnSelectedImagePath = "Item/List.png",
                     };
                     roomBackView.AddChidren(roomListBtn);
+
+                    roomListBtn.MouseUpEventHandler += (send, e) =>
+                    {
+                        CommonPage.Instance.IsDrawerLockMode = true;
+                        var editRoom = new Device.Room.EditRoom();
+                        HomePage.Instance.AddChidren(editRoom);
+                        HomePage.Instance.PageIndex += 1;
+                        editRoom.Show(room);
+                        editRoom.action += () =>
+                        {
+                            Show();
+                        };
+                    };
                 }
 
                 var functionSceneView = new FrameLayout()
                 {
                     Y = Application.GetRealHeight(861),
-                    Width=Application.GetRealWidth(832),
+                    Width = Application.GetRealWidth(832),
                     Height = Application.GetRealHeight(167),
-                    Gravity=Gravity.CenterHorizontal,
-                    BackgroundImagePath="Item/SceneFunctionBG.png"
+                    Gravity = Gravity.CenterHorizontal,
+                    BackgroundImagePath = "Item/SceneFunctionBG.png"
                 };
                 AddChidren(functionSceneView);
-
-                //鍔熻兘
-                functionBtn = new Button()
-                {
-                    X = Application.GetRealWidth(30),
-                    Y=Application.GetRealHeight(12),
-                    Width = Application.GetRealWidth(350),
-                    Height = Application.GetRealHeight(100),
-                    TextColor = ZigbeeColor.Current.GXCTextGrayColor3,
-                    SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                    TextID = R.MyInternationalizationString.Function,
-                    IsSelected = true
-                };
-                functionSceneView.AddChidren(functionBtn);
 
                 //鍦烘櫙
                 var sceneBtn = new Button()
                 {
-                    X = Application.GetRealWidth(430),
+                    X = Application.GetRealWidth(30),
                     Y = Application.GetRealHeight(12),
-                    Width = Application.GetRealWidth(360),
+                    Width = Application.GetRealWidth(350),
                     Height = Application.GetRealHeight(100),
                     TextColor = ZigbeeColor.Current.GXCTextGrayColor3,
                     SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
@@ -815,13 +718,27 @@
                 };
                 functionSceneView.AddChidren(sceneBtn);
 
+                //鍦烘櫙
+                functionBtn = new Button()
+                {
+                    X = Application.GetRealWidth(430),
+                    Y = Application.GetRealHeight(12),
+                    Width = Application.GetRealWidth(360),
+                    Height = Application.GetRealHeight(100),
+                    TextColor = ZigbeeColor.Current.GXCTextGrayColor3,
+                    SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
+                    TextID = R.MyInternationalizationString.Function,
+                    IsSelected = false
+                };
+                functionSceneView.AddChidren(functionBtn);
+
                 //鍔熻兘鍜屽満鏅痓odyView
                 functionSceneBodyView = new FrameLayout()
                 {
                     Y = functionSceneView.Bottom,
                     Height = Application.GetRealHeight(750),
                     Gravity = Gravity.CenterHorizontal,
-                    BackgroundColor=ZigbeeColor.Current.GXCGrayBackgroundColor
+                    BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
                 };
                 AddChidren(functionSceneBodyView);
 
@@ -845,7 +762,7 @@
                 roomPageView.PageChange += (sender, e) =>
                 {
                     //鍒囨崲褰撳墠鎴块棿
-                    Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.Lists[roomPageView.PageIndex];
+                    Room.CurrentRoom = rList[roomPageView.PageIndex];
                     RefreshBodyView();
                 };
             }
@@ -853,19 +770,17 @@
             {
                 ShowNoGatewayTip();
             }
-
+
         }
 
         #endregion
 
         #region 鈼� 鍒锋柊____________________________
-
+        /// <summary>
+        /// RefreshBodyView
+        /// </summary>
         public void RefreshBodyView()
         {
-            if (Room.CanInitAllRoom == false)
-            {
-                return;
-            }
             functionSceneBodyView.RemoveAll();
             if (functionBtn.IsSelected)
             {
@@ -875,6 +790,24 @@
             {
                 ShowScene();
             }
+        }
+
+        /// <summary>
+        /// SelectFloor
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="mouseEventArgs"></param>
+        public void SelectFloor(object sender, MouseEventArgs mouseEventArgs)
+        {
+            var floorFL = new Phone.Device.Category.SelectFloor();
+            AddChidren(floorFL);
+            floorFL.Init(35, 153);
+            floorFL.changeFloor = true;
+            floorFL.FloorAction = (floorId) =>
+            {
+                floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
+                Show();
+            };
         }
 
         #endregion
@@ -975,8 +908,8 @@
         /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
         private void GoToAddGateWay(object sender, MouseEventArgs mouseEventArgs)
         {
-            var selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWaySelectForm { };
-            selectNewGateWayForm.AddForm(selectNewGateWayForm);
+            var selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm { };
+            selectNewGateWayForm.AddForm();
         }
 
         #endregion
@@ -1000,11 +933,13 @@
 
             var noFunctionTip = new Button()
             {
-                Y=noFunction.Bottom,
+                Y = noFunction.Bottom,
                 Height = Application.GetRealHeight(200),
-                Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"),
+                Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}", "\r\n"),
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
-                IsMoreLines=true
+                IsMoreLines = true,
+                TextAlignment=TextAlignment.Center,
+
             };
             functionSceneBodyView.AddChidren(noFunctionTip);
         }
@@ -1028,9 +963,9 @@
             else
             {
                 deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { };
-                
+
                 functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout);
-               for(int i=0;i<deviceList.Count;i++)
+                for (int i = 0; i < deviceList.Count; i++)
                 {
                     int t = i % 2;
                     int tt = i / 2;
@@ -1052,33 +987,17 @@
                         deviceVerticalScrolViewLayout.AddChidren(itemView);
                     }
 
-                   
-                    //鍒犻櫎璁惧
-                    EventHandler<MouseEventArgs> delEvent = (sender, e) =>
-                    {
-                        var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
-                        alert.Show();
-                        alert.ResultEventHandler += (send1, e1) =>
-                        {
-                            if (e1)
-                            {
-                                Room.CurrentRoom.DeleteDevice(device.FileName);
-                                    //RefreshBodyView();
-                                    deviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag);
-                            }
-                        };
-                    };
                     //鏀惰棌
                     EventHandler<MouseEventArgs> collectionEvent = (sender, e) =>
                     {
                         if ((sender as Button).IsSelected)
                         {
-                            Shared.Common.Room.GetLoveRoom().DeleteDevice(device.FileName);
+                            Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName);
                             (sender as Button).IsSelected = false;
                         }
                         else
                         {
-                            Shared.Common.Room.GetLoveRoom().AddDevice(device.FileName);
+                            Shared.Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName);
                             (sender as Button).IsSelected = true;
                         }
                         if (Room.CurrentRoom.IsLove)
@@ -1090,17 +1009,6 @@
                     //////鍒ゆ柇璁惧鏄惁鏀寔鐨勫睘鎬� 濡傚紑鍏崇瓑鎺у埗
                     if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
                     {
-                        var lightView = new FunctionMainView(xx, yy);
-                        itemView.AddChidren(lightView);
-                        lightView.Init();
-                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
-                        lightView.SetStatuText("寮�");
-                        lightView.SetDeviceName("lightee");
-                        //lightView.SetStatu(true);
-                        lightView.IsSelected = true;
-                        lightView.SetCollect(true);
-
-                        continue;
                         //绐楀笜 鍗峰笜
                         var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice;
                         //涓嶄笂闈炶繙绋�
@@ -1123,327 +1031,85 @@
                                 rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                             }
                         }
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText(device.GetDeviceStatu());
+                        lightView.SetDeviceName(rollerShade.DeviceEpointName);
+                        //lightView.SetStatu(true);
+                        lightView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
+                        lightView.SetCollect(true);
 
-                        var deviceFL = new FrameLayout
+                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                         {
-                            Height = Application.GetRealHeight(deviceFL_Height),
-                            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            Tag = device
-                        };
-                        deviceVerticalScrolViewLayout.AddChidren(deviceFL);
-                        var deviceRowLayout = new RowLayout
-                        {
-                            Y = Application.GetRealHeight(25),
-                            Height = Application.GetRealHeight(deviceFL_Height - 25) - 1,
-                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius,
-                            Tag = device
-                        };
-                        deviceFL.AddChidren(deviceRowLayout);
-                        var deviceItemFL = new FrameLayout()
-                        {
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius
-                        };
-                        deviceRowLayout.AddChidren(deviceItemFL);
-                        var deviceIMG = new Button()
-                        {
-                            X = Application.GetRealWidth(50),
-                            Y = Application.GetRealHeight(30),
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            UnSelectedImagePath = device.IconPath,
-                            SelectedImagePath = device.OnlineIconPath,
-                            IsSelected = rollerShade.IsOnline == 1,
-                            Tag = deviceStatus_Online
-                        };
-                        deviceItemFL.AddChidren(deviceIMG);
-                        var deviceName = new Button()
-                        {
-                            X = Application.GetRealWidth(10),
-                            Y = deviceIMG.Bottom,
-                            Width = Application.GetRealWidth(180),
-                            Height = Application.GetRealHeight(80),
-                            TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                            TextAlignment = TextAlignment.Center,
-                            Text = device.CommonDevice.DeviceEpointName,
-                            TextSize = 10,
-                            IsMoreLines = true
-                        };
-                        deviceItemFL.AddChidren(deviceName);
-
-                        var closeBtnBG = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = deviceName.Right,
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical,
-                        };
-                        deviceItemFL.AddChidren(closeBtnBG);
-
-                        var closeBtn = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = Application.GetRealWidth(50) + deviceName.Right,
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            Gravity = Gravity.CenterVertical,
-                            UnSelectedImagePath = "WindowCovering/RollerShadeClose.png",
-                            SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png",
-                            //Visible=false
-                        };
-                        deviceItemFL.AddChidren(closeBtn);
-
-                        var stopBtnBG = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = Application.GetRealWidth(120) + closeBtn.Right,
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical,
-                        };
-                        deviceItemFL.AddChidren(stopBtnBG);
-                        var stopBtn = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = Application.GetRealWidth(120) + closeBtn.Right,
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            Gravity = Gravity.CenterVertical,
-                            UnSelectedImagePath = "WindowCovering/RollerShadeStop.png",
-                            SelectedImagePath = "WindowCovering/RollerShadeStopSelected.png",
-                            //Visible=false
-                        };
-                        deviceItemFL.AddChidren(stopBtn);
-
-                        var openBtnBG = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = Application.GetRealWidth(20) + stopBtn.Right,
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical,
-                        };
-                        deviceItemFL.AddChidren(openBtnBG);
-                        var openBtn = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = Application.GetRealWidth(120) + stopBtn.Right,
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            Gravity = Gravity.CenterVertical,
-                            UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png",
-                            SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png",
-                            //Visible=false
-                        };
-                        deviceItemFL.AddChidren(openBtn);
-                        var collectionBtn = new Button()
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(150),
-                            Y = Application.GetRealHeight(20),
-                            Width = Application.GetMinRealAverage(80),
-                            Height = Application.GetMinRealAverage(80),
-                            UnSelectedImagePath = "Item/Collection.png",
-                            SelectedImagePath = "Item/CollectionSelected.png",
-                            Tag = device
-                        };
-                        //*****鍏堥殣钘�*****
-                        //deviceItemFL.AddChidren(collectionBtn);
-                        var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
-                        {
-                            Tag = device,
-                            IsMoreLines = true
-                        };
-
-                        if (Room.CurrentRoom.IsLove)
-                        {
-                            deleteBtn.TextID = R.MyInternationalizationString.CancelCollect;
-                            deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor;
-                            deleteBtn.MouseUpEventHandler += collectionEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-                        else if (Room.CurrentRoom.IsSharedRoom)
-                        {
-                            //涓嶅鐞�
-                        }
-                        else
-                        {
-                            deleteBtn.MouseUpEventHandler += delEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-
-                        if (rollerShade.WcdType == -1)
-                        {
-                            CommonPage.Loading.Start();
-                            new System.Threading.Thread(() =>
+                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
+                            if ((sender as Button).IsSelected)
                             {
-                                ZigBee.Device.Rollershade.ReadWcdTypeAction(rollerShade, () =>
+                                zbGateway = device.CommonDevice.Gateway;
+                                sendedControlCommand = false;
+                                zbGateway.ReportAction += UpdateDeviceControllStatu;
+                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
+
+                                (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1);
+
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true));
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                 {
-                                    Application.RunOnMainThread(() =>
+                                    if (Parent == null)
                                     {
-                                        if (rollerShade.WcdType == 0)
-                                        {
-                                            closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeDown.png";
-                                            closeBtn.SelectedImagePath = "WindowCovering/RollerShadeDownSelected.png";
-                                            openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeUp.png";
-                                            openBtn.SelectedImagePath = "WindowCovering/RollerShadeUpSelected.png";
-                                        }
-                                        else
-                                        {
-                                            closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeClose.png";
-                                            closeBtn.SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png";
-                                            openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png";
-                                            openBtn.SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png";
-                                        }
-                                        CommonPage.Loading.Hide();
-                                    });
+                                        return;
+                                    }
+                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                    if (sendedControlCommand == false)
+                                    {
+                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                    }
                                 });
-                            })
-                            { IsBackground = true }.Start();
-                        }
-                        else if (rollerShade.WcdType == 0)
-                        {
-                            closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeDown.png";
-                            closeBtn.SelectedImagePath = "WindowCovering/RollerShadeDownSelected.png";
-                            openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeUp.png";
-                            openBtn.SelectedImagePath = "WindowCovering/RollerShadeUpSelected.png";
-                        }
-                        else
-                        {
-                            closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeClose.png";
-                            closeBtn.SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png";
-                            openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png";
-                            openBtn.SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png";
-                        }
+                            }
+                            else
+                            {
+                                zbGateway = device.CommonDevice.Gateway;
+                                sendedControlCommand = false;
+                                zbGateway.ReportAction += UpdateDeviceControllStatu;
+                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
 
+                                (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0);
 
-                        EventHandler<MouseEventArgs> curtainHandler = (sender, e) =>
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false));
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                {
+                                    if (Parent == null)
+                                    {
+                                        return;
+                                    }
+                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                    if (sendedControlCommand == false)
+                                    {
+                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                    }
+                                });
+                            }
+                        };
+
+                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                         {
-                            var curtain = new Phone.Device.Curtain.RollerShadeControl();
-                            UserView.HomePage.Instance.ScrollEnabled = false;
-                            UserView.HomePage.Instance.AddChidren(curtain);
+                            CommonPage.Instance.IsDrawerLockMode = true;
+                            var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
+                            UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                             UserView.HomePage.Instance.PageIndex += 1;
-                            curtain.action = RefreshBodyView;
-                            curtain.Show(device, Room.CurrentRoom);
+                            UserView.HomePage.Instance.ScrollEnabled = false;
+                            //rollerShadeControl.action = RefreshBodyView;
+                            rollerShadeControl.Show(device, Room.CurrentRoom);
                         };
-                        deviceItemFL.MouseUpEventHandler += curtainHandler;
-                        //deviceItemFL.MouseLongEventHandler += curtainHandler;
-                        deviceIMG.MouseUpEventHandler += curtainHandler;
-                        deviceName.MouseUpEventHandler += curtainHandler;
 
-                        //绐楀笜鍏�
-                        closeBtn.MouseUpEventHandler += (sender, e) =>
-                        {
-                            zbGateway = device.CommonDevice.Gateway;
-                            sendedControlCommand = false;
-                            zbGateway.ReportAction += UpdateDeviceControllStatu;
-                            AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
-
-                            rollerShade.CurtainUpDownStopControl(1);
-
-                                //鎺у埗寤舵椂鍥炶皟
-                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
-                            {
-                                if (Parent == null)
-                                {
-                                    return;
-                                }
-                                RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                if (sendedControlCommand == false)
-                                {
-                                    DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                }
-                            });
-                        };
-                        //绐楀笜鍋�
-                        stopBtn.MouseUpEventHandler += (sender, e) =>
-                        {
-                            zbGateway = device.CommonDevice.Gateway;
-                            sendedControlCommand = false;
-                            zbGateway.ReportAction += UpdateDeviceControllStatu;
-                            AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
-
-                            rollerShade.CurtainUpDownStopControl(2);
-
-                                //鎺у埗寤舵椂鍥炶皟
-                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
-                            {
-                                if (Parent == null)
-                                {
-                                    return;
-                                }
-                                RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                if (sendedControlCommand == false)
-                                {
-                                    DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                }
-                            });
-                        };
-                        //绐楀笜寮�
-                        openBtn.MouseUpEventHandler += (sender, e) =>
-                        {
-                            zbGateway = device.CommonDevice.Gateway;
-                            sendedControlCommand = false;
-                            zbGateway.ReportAction += UpdateDeviceControllStatu;
-                            AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
-
-                            rollerShade.CurtainUpDownStopControl(0);
-
-                                //鎺у埗寤舵椂鍥炶皟
-                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
-                            {
-                                if (Parent == null)
-                                {
-                                    return;
-                                }
-                                RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                if (sendedControlCommand == false)
-                                {
-                                    DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                }
-                            });
-                        };
-                        //collectionBtn.MouseUpEventHandler += (sender, e) =>
-                        //{
-                        //    if (collectionBtn.IsSelected)
-                        //    {
-                        //        Room.Lists[0].DeleteDevice(device.FilePath);
-                        //        collectionBtn.IsSelected = false;
-                        //    }
-                        //    else
-                        //    {
-                        //        Room.Lists[0].AddDevice(device.FilePath);
-                        //        collectionBtn.IsSelected = true;
-                        //    }
-                        //    //RefreshBodyView();
-                        //};
-                        collectionBtn.MouseUpEventHandler += collectionEvent;
-                        //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj==device.FilePath);
-                        //if(dev==null)
-                        //{
-                        //    collectionBtn.IsSelected = false;
-                        //}
-                        //else
-                        //{
-                        //    collectionBtn.IsSelected = true;
-                        //}
-
-                        ////寮�鍏冲仠鎸夐挳鏄惁鏄剧ず
-                        //foreach(var command in commandList)
-                        //{
-                        //    if (command == null)
-                        //    {
-                        //        continue;
-                        //    }
-                        //    if (command.commandId==0)
-                        //    {
-                        //        openBtn.Visible = true;
-                        //    }
-                        //    else if(command.commandId==1)
-                        //    {
-                        //        openBtn.Visible = true;
-                        //    }
-                        //    else if(command.commandId==2)
-                        //    {
-                        //        stopBtn.Visible = true;
-                        //    }
-                        //}
+                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                     }
                     else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
                     {
@@ -1473,14 +1139,14 @@
                             }
                         }
 
-                        var lightView = new FunctionMainView(xx,yy);
+                        var lightView = new FunctionMainView(xx, yy);
                         itemView.AddChidren(lightView);
                         lightView.Init();
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
-                        lightView.SetStatuText(CommonFormResouce.GetSwitchStatu(light.OnOffStatus==1));
+                        lightView.SetStatuText(device.GetDeviceStatu());
                         lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
-                        lightView.IsSelected = light.OnOffStatus==1;
-                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom,device.FileName));
+                        lightView.IsSelected = light.OnOffStatus == 1;
+                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
 
                         var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                         if (dev == null)
@@ -1504,7 +1170,7 @@
 
                                 light.SwitchControl(1);
 
-                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true));
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                 ((sender as Button).Parent as FunctionMainView).IsSelected = true;
 
                                 //鎺у埗寤舵椂鍥炶皟
@@ -1530,7 +1196,7 @@
 
                                 light.SwitchControl(0);
 
-                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false));
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                 ((sender as Button).Parent as FunctionMainView).IsSelected = false;
 
                                 //鎺у埗寤舵椂鍥炶皟
@@ -1551,11 +1217,31 @@
 
                         lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                         {
-                            var lightControl = new Phone.Device.Light.LightControl();
-                            UserView.HomePage.Instance.AddChidren(lightControl);
-                            UserView.HomePage.Instance.PageIndex += 1;
-                            lightControl.action = RefreshBodyView;
-                            lightControl.Show(device, Room.CurrentRoom);
+                            CommonPage.Instance.IsDrawerLockMode = true;
+                            if (device.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�)
+                            {
+                                var lightControl = new Phone.Device.Light.OnOffControl();
+                                UserView.HomePage.Instance.AddChidren(lightControl);
+                                UserView.HomePage.Instance.PageIndex += 1;
+                                //lightControl.action = RefreshBodyView;
+                                lightControl.Show(device, Room.CurrentRoom);
+                            }
+                            else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇)
+                            {
+                                var lightControl = new Phone.Device.Light.PlugControl();
+                                UserView.HomePage.Instance.AddChidren(lightControl);
+                                UserView.HomePage.Instance.PageIndex += 1;
+                                //lightControl.action = RefreshBodyView;
+                                lightControl.Show(device, Room.CurrentRoom);
+                            }
+                            else
+                            {
+                                var lightControl = new Phone.Device.Light.LightControl();
+                                UserView.HomePage.Instance.AddChidren(lightControl);
+                                UserView.HomePage.Instance.PageIndex += 1;
+                                //lightControl.action = RefreshBodyView;
+                                lightControl.Show(device, Room.CurrentRoom);
+                            }
                         };
 
                         lightView.CollectButton.MouseUpEventHandler += collectionEvent;
@@ -1563,22 +1249,8 @@
                     }
                     else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
                     {
-
-                        var lightView = new FunctionMainView(xx, yy);
-                        itemView.AddChidren(lightView);
-                        lightView.Init();
-                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
-                        lightView.SetStatuText("寮�");
-                        lightView.SetDeviceName("airSwitch");
-                        //lightView.SetStatu(true);
-                        lightView.IsSelected = true;
-                        lightView.SetCollect(true);
-
-                        continue;
-
                         //绌烘皵寮�鍏�
                         var airSwitch = device.CommonDevice as AirSwitch;
-
                         //琛ヤ笂闈炶繙绋�
                         if (airSwitch.Gateway == null)
                         {
@@ -1598,99 +1270,25 @@
                             //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵��
                             if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                             {
-                                airSwitch.ReadOnOffStatus();
                                 airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+                                airSwitch.ReadOnOffStatus();
                             }
                         }
 
-                        var deviceFL = new FrameLayout
-                        {
-                            Height = Application.GetRealHeight(deviceFL_Height),
-                            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            Tag = device
-                        };
-                        deviceVerticalScrolViewLayout.AddChidren(deviceFL);
-                        var deviceRowLayout = new RowLayout
-                        {
-                            Y = Application.GetRealHeight(25),
-                            Height = Application.GetRealHeight(deviceFL_Height - 25) - 1,
-                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius,
-                            Tag = device
-                        };
-                        deviceFL.AddChidren(deviceRowLayout);
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText(device.GetDeviceStatu());
+                        lightView.SetDeviceName(airSwitch.DeviceEpointName);
+                        //lightView.SetStatu(true);
+                        lightView.IsSelected = airSwitch.OnOffStatus == 1;
+                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
 
-                        var deviceItemFL = new FrameLayout()
+                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                         {
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius
-                        };
-                        deviceRowLayout.AddChidren(deviceItemFL);
-                        var deviceIMG = new Button()
-                        {
-                            X = Application.GetRealWidth(50),
-                            Y = Application.GetRealHeight(30),
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            UnSelectedImagePath = device.IconPath,
-                            SelectedImagePath = device.OnlineIconPath,
-                            IsSelected = airSwitch.IsOnline == 1,
-                            Tag = deviceStatus_Online
-                        };
-                        deviceItemFL.AddChidren(deviceIMG);
-                        var deviceName = new Button()
-                        {
-                            X = Application.GetRealWidth(10),
-                            Y = deviceIMG.Bottom,
-                            Width = Application.GetRealWidth(180),
-                            Height = Application.GetRealHeight(80),
-                            TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                            TextAlignment = TextAlignment.Center,
-                            Text = device.CommonDevice.DeviceEpointName,
-                            TextSize = 10,
-                            IsMoreLines = true
-                        };
-                        deviceItemFL.AddChidren(deviceName);
-
-                        var collectionBtn = new Button()
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(150),
-                            Y = Application.GetRealHeight(20),
-                            Width = Application.GetMinRealAverage(80),
-                            Height = Application.GetMinRealAverage(80),
-                            UnSelectedImagePath = "Item/Collection.png",
-                            SelectedImagePath = "Item/CollectionSelected.png",
-                            Tag = device
-                        };
-                        //***鍏堥殣钘�******
-                        //deviceItemFL.AddChidren(collectionBtn);
-                        var switchBtnBG = new Button
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(250),
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(switchBtnBG);
-                        var switchBtn = new Button
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(200),
-                            //Y = deviceItemFL.Bottom - Application.GetRealHeight(120),
-                            Width = Application.GetMinRealAverage(183),
-                            Height = Application.GetMinRealAverage(123),
-                            UnSelectedImagePath = "Item/Switch.png",
-                            SelectedImagePath = "Item/SwitchSelected.png",
-                            IsSelected = airSwitch.OnOffStatus == 1,
-                            Tag = deviceStatus_OnOffStatus,
-                            //Visible=false
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(switchBtn);
-                        switchBtn.MouseUpEventHandler += (send2, e2) =>
-                        {
-                            switchBtn.IsSelected = !switchBtn.IsSelected;
-                            if (switchBtn.IsSelected == true)
+                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
+                            if ((sender as Button).IsSelected)
                             {
                                 zbGateway = device.CommonDevice.Gateway;
                                 sendedControlCommand = false;
@@ -1699,8 +1297,11 @@
 
                                 airSwitch.SwitchControl(1);
 
-                                    //鎺у埗寤舵椂鍥炶皟
-                                    DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                 {
                                     if (Parent == null)
                                     {
@@ -1722,8 +1323,11 @@
 
                                 airSwitch.SwitchControl(0);
 
-                                    //鎺у埗寤舵椂鍥炶皟
-                                    DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                 {
                                     if (Parent == null)
                                     {
@@ -1738,86 +1342,20 @@
                             }
                         };
 
-                        var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
+                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                         {
-                            Tag = device,
-                            IsMoreLines = true
-                        };
-                        if (Room.CurrentRoom.IsLove)
-                        {
-                            deleteBtn.TextID = R.MyInternationalizationString.CancelCollect;
-                            deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor;
-                            deleteBtn.MouseUpEventHandler += collectionEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-                        else if (Room.CurrentRoom.IsSharedRoom)
-                        {
-                            //涓嶅鐞�
-                        }
-                        else
-                        {
-                            deleteBtn.MouseUpEventHandler += delEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-
-
-                        EventHandler<MouseEventArgs> airSwitchHandler = (sender, e) =>
-                        {
-                            var airSwitchControl = new Phone.Device.AirSwitch.AirSwitchControl();
-                            UserView.HomePage.Instance.AddChidren(airSwitchControl);
+                            CommonPage.Instance.IsDrawerLockMode = true;
+                            var lightControl = new Phone.Device.Light.AirSwitchControl();
+                            UserView.HomePage.Instance.AddChidren(lightControl);
                             UserView.HomePage.Instance.PageIndex += 1;
-                            airSwitchControl.action = RefreshBodyView;
-                            airSwitchControl.Show(device, Room.CurrentRoom);
+                            //lightControl.action = RefreshBodyView;
+                            lightControl.Show(device, Room.CurrentRoom);
                         };
-                        //deviceItemFL.MouseLongEventHandler += airSwitchHandler;
-                        deviceItemFL.MouseUpEventHandler += airSwitchHandler;
-                        deviceName.MouseUpEventHandler += airSwitchHandler;
-                        deviceIMG.MouseUpEventHandler += airSwitchHandler;
 
-                        //collectionBtn.MouseUpEventHandler += (sender, e) =>
-                        //{
-                        //    if (collectionBtn.IsSelected)
-                        //    {
-                        //        Room.Lists[0].DeleteDevice(device.FilePath);
-                        //        collectionBtn.IsSelected = false;
-                        //        if(Room.CurrentRoom==Room.Lists[0])
-                        //        {
-                        //            RefreshBodyView();
-                        //        }
-                        //    }
-                        //    else
-                        //    {
-                        //        Room.Lists[0].AddDevice(device.FilePath);
-                        //        collectionBtn.IsSelected = true;
-                        //    }
-                        //    //RefreshBodyView();
-                        //};
-                        collectionBtn.MouseUpEventHandler += collectionEvent;
-
-                        //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath);
-                        //if (dev == null)
-                        //{
-                        //    collectionBtn.IsSelected = false;
-                        //}
-                        //else
-                        //{
-                        //    collectionBtn.IsSelected = true;
-                        //}
+                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                     }
                     else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
                     {
-
-                        var lightView = new FunctionMainView(xx, yy);
-                        itemView.AddChidren(lightView);
-                        lightView.Init();
-                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
-                        lightView.SetStatuText("寮�");
-                        lightView.SetDeviceName("绌鸿皟");
-                        //lightView.SetStatu(true);
-                        lightView.IsSelected = true;
-                        lightView.SetCollect(true);
-
-                        continue;
                         //鎭掓俯鍣�-AC-绌鸿皟
                         var ac = device.CommonDevice as AC;
 
@@ -1838,6 +1376,8 @@
                                 ac.ReadAutoSetpoint();
                                 ac.ReadFanMode();
                                 ac.ReadSystemMode();
+                                ac.ReadSystemFansSwingMode();
+                                ac.ReadModeSupport();
                             });
                         }
                         else
@@ -1852,239 +1392,23 @@
                                 ac.ReadAutoSetpoint();
                                 ac.ReadFanMode();
                                 ac.ReadSystemMode();
+                                ac.ReadSystemFansSwingMode();
+                                ac.ReadModeSupport();
                             }
                         }
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText(device.GetDeviceStatu());
+                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
+                        lightView.IsSelected = ac.currentSystemMode != 0;
+                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
 
-                        var deviceFL = new FrameLayout
+                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                         {
-                            Height = Application.GetRealHeight(deviceFL_Height),
-                            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            Tag = device
-                        };
-                        deviceVerticalScrolViewLayout.AddChidren(deviceFL);
-                        var deviceRowLayout = new RowLayout
-                        {
-                            Y = Application.GetRealHeight(25),
-                            Height = Application.GetRealHeight(deviceFL_Height - 25) - 1,
-                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius,
-                            Tag = device
-                        };
-                        deviceFL.AddChidren(deviceRowLayout);
-
-                        var deviceItemFL = new FrameLayout()
-                        {
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius
-                        };
-                        deviceRowLayout.AddChidren(deviceItemFL);
-                        var deviceIMG = new Button()
-                        {
-                            X = Application.GetRealWidth(50),
-                            Y = Application.GetRealHeight(30),
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            UnSelectedImagePath = device.IconPath,
-                            SelectedImagePath = device.OnlineIconPath,
-                            IsSelected = ac.IsOnline == 1,
-                            Tag = deviceStatus_Online
-                        };
-                        deviceItemFL.AddChidren(deviceIMG);
-                        var deviceName = new Button()
-                        {
-                            X = Application.GetRealWidth(10),
-                            Y = deviceIMG.Bottom,
-                            Width = Application.GetRealWidth(180),
-                            Height = Application.GetRealHeight(80),
-                            TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                            TextAlignment = TextAlignment.Center,
-                            Text = device.CommonDevice.DeviceEpointName,
-                            TextSize = 10,
-                            IsMoreLines = true
-                        };
-                        deviceItemFL.AddChidren(deviceName);
-
-                        var collectionBtn = new Button()
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(150),
-                            Y = Application.GetRealHeight(20),
-                            Width = Application.GetMinRealAverage(80),
-                            Height = Application.GetMinRealAverage(80),
-                            UnSelectedImagePath = "Item/Collection.png",
-                            SelectedImagePath = "Item/CollectionSelected.png",
-                            Tag = device
-                        };
-                        //***鍏堥殣钘�******
-                        //deviceItemFL.AddChidren(collectionBtn);
-
-                        //鍑�
-                        var reduceBtnBG = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = deviceName.Right,
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical,
-                        };
-                        deviceItemFL.AddChidren(reduceBtnBG);
-
-                        var reduceBtn = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = Application.GetRealWidth(30) + deviceName.Right,
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            Gravity = Gravity.CenterVertical,
-                            UnSelectedImagePath = "Item/Reduce.png",
-                            SelectedImagePath = "Item/ReduceSelected.png",
-                        };
-                        deviceItemFL.AddChidren(reduceBtn);
-                        //褰撳墠娓╁害
-                        var currentTemperatureBtn = new Button()
-                        {
-                            X = Application.GetRealWidth(50) + reduceBtn.Right,
-                            Width = Application.GetRealWidth(200),
-                            Height = Application.GetRealHeight(110),
-                            Gravity = Gravity.CenterVertical,
-                            TextColor = ZigbeeColor.Current.TextBlack,
-                            TextSize = 16,
-                            Text = $"{Device.AC.ACControlBase.GetCurrentModeTemperature(ac)} 掳C",
-                            Tag = "Temparetrue"
-                        };
-                        deviceItemFL.AddChidren(currentTemperatureBtn);
-                        reduceBtn.MouseUpEventHandler += (send2, e2) =>
-                        {
-                            if (Device.AC.ACControlBase.IsOpen(ac) == false)
-                            {
-                                Device.AC.ACControlBase.ShowACIsCloseTip();
-                                return;
-                            }
-                                //cool
-                                if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8)
-                            {
-                                if (ac.currentCoolingSetpoint <= ACControlBase.Temperature_Low)
-                                {
-                                    return;
-                                }
-                                ac.currentCoolingSetpoint -= 1;
-                                ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint * 100);
-                                currentTemperatureBtn.Text = $"{ac.currentCoolingSetpoint} 掳C";
-                            }
-                                //heat
-                                else if (ac.currentSystemMode == 4)
-                            {
-                                if (ac.currentHeatingSetpoint <= ACControlBase.Temperature_Low)
-                                {
-                                    return;
-                                }
-                                ac.currentHeatingSetpoint -= 1;
-                                ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint * 100);
-                                currentTemperatureBtn.Text = $"{ac.currentHeatingSetpoint} 掳C";
-                            }
-                            else if (ac.currentSystemMode == 1)
-                            {
-                                if (ac.currentAutoSetpoint <= ACControlBase.Temperature_Low)
-                                {
-                                    return;
-                                }
-                                ac.currentAutoSetpoint -= 1;
-                                ac.SetAutoTemperatureAsync(ac.currentAutoSetpoint * 100);
-                                currentTemperatureBtn.Text = $"{ac.currentAutoSetpoint} 掳C";
-                            }
-                                //auto
-                                //dry
-                                //currentTemperatureBtn.Text = $"{Device.AC.ACControlBase.GetCurrentModeTemperature(ac)} 掳C";
-                            };
-
-                        var addBtnBG = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = currentTemperatureBtn.Right,
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(addBtnBG);
-
-                        var addBtn = new Device.CommonForm.SelectedStatuButton()
-                        {
-                            X = Application.GetRealWidth(30) + currentTemperatureBtn.Right,
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            Gravity = Gravity.CenterVertical,
-                            UnSelectedImagePath = "Item/Add.png",
-                            SelectedImagePath = "Item/AddSelected.png",
-                        };
-                        deviceItemFL.AddChidren(addBtn);
-
-                        addBtn.MouseUpEventHandler += (send2, e2) =>
-                        {
-                            if (Device.AC.ACControlBase.IsOpen(ac) == false)
-                            {
-                                Device.AC.ACControlBase.ShowACIsCloseTip();
-                                return;
-                            }
-                                //cool
-                                if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8)
-                            {
-                                if (ac.currentCoolingSetpoint >= ACControlBase.Temperature_High)
-                                {
-                                    return;
-                                }
-                                ac.currentCoolingSetpoint += 1;
-                                ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint * 100);
-
-                                currentTemperatureBtn.Text = $"{ac.currentCoolingSetpoint} 掳C";
-                            }
-                                //heat
-                                else if (ac.currentSystemMode == 4)
-                            {
-                                if (ac.currentHeatingSetpoint >= ACControlBase.Temperature_High)
-                                {
-                                    return;
-                                }
-                                ac.currentHeatingSetpoint += 1;
-                                ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint * 100);
-
-                                currentTemperatureBtn.Text = $"{ac.currentHeatingSetpoint} 掳C";
-                            }
-                            else if (ac.currentSystemMode == 1)
-                            {
-                                if (ac.currentAutoSetpoint >= ACControlBase.Temperature_High)
-                                {
-                                    return;
-                                }
-                                ac.currentAutoSetpoint += 1;
-                                ac.SetAutoTemperatureAsync(ac.currentAutoSetpoint * 100);
-                                currentTemperatureBtn.Text = $"{ac.currentAutoSetpoint} 掳C";
-                            }
-
-                        };
-
-                        var switchBtnBG = new Button
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(250),
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(switchBtnBG);
-                        var switchBtn = new Button
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(200),
-                            //Y = deviceItemFL.Bottom - Application.GetRealHeight(120),
-                            Width = Application.GetMinRealAverage(183),
-                            Height = Application.GetMinRealAverage(123),
-                            UnSelectedImagePath = "Item/Switch.png",
-                            SelectedImagePath = "Item/SwitchSelected.png",
-                            IsSelected = ac.currentSystemMode != 0,
-                            Tag = deviceStatus_OnOffStatus,
-                            //Visible=false
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(switchBtn);
-                        switchBtn.MouseUpEventHandler += (send2, e2) =>
-                        {
-                            switchBtn.IsSelected = !switchBtn.IsSelected;
-                            if (switchBtn.IsSelected == true)
+                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
+                            if ((sender as Button).IsSelected)
                             {
                                 zbGateway = device.CommonDevice.Gateway;
                                 sendedControlCommand = false;
@@ -2093,20 +1417,23 @@
 
                                 ac.Open();
 
-                                    //鎺у埗寤舵椂鍥炶皟
-                                    //DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
-                                    //{
-                                    //    if (Parent == null)
-                                    //    {
-                                    //        return;
-                                    //    }
-                                    //    RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                    //    if (sendedControlCommand == false)
-                                    //    {
-                                    //        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                    //    }
-                                    //});
-                                }
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                {
+                                    if (Parent == null)
+                                    {
+                                        return;
+                                    }
+                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                    if (sendedControlCommand == false)
+                                    {
+                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                    }
+                                });
+                            }
                             else
                             {
                                 zbGateway = device.CommonDevice.Gateway;
@@ -2116,57 +1443,36 @@
 
                                 ac.Close();
 
-                                    //鎺у埗寤舵椂鍥炶皟
-                                    //DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
-                                    //{
-                                    //    if (Parent == null)
-                                    //    {
-                                    //        return;
-                                    //    }
-                                    //    RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                    //    if (sendedControlCommand == false)
-                                    //    {
-                                    //        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                    //    }
-                                    //});
-                                }
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                {
+                                    if (Parent == null)
+                                    {
+                                        return;
+                                    }
+                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                    if (sendedControlCommand == false)
+                                    {
+                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                    }
+                                });
+                            }
                         };
 
-                        var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
+                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                         {
-                            Tag = device,
-                            IsMoreLines = true
-                        };
-                        if (Room.CurrentRoom.IsLove)
-                        {
-                            deleteBtn.TextID = R.MyInternationalizationString.CancelCollect;
-                            deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor;
-                            deleteBtn.MouseUpEventHandler += collectionEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-                        else if (Room.CurrentRoom.IsSharedRoom)
-                        {
-                            //涓嶅鐞�
-                        }
-                        else
-                        {
-                            deleteBtn.MouseUpEventHandler += delEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-
-
-                        EventHandler<MouseEventArgs> acHandler = (sender, e) =>
-                        {
-                            var acControl = new Phone.Device.AC.ACControl { };
-                            UserView.HomePage.Instance.AddChidren(acControl);
+                            CommonPage.Instance.IsDrawerLockMode = true;
+                            var lightControl = new Phone.Device.AC.ACControl();
+                            UserView.HomePage.Instance.AddChidren(lightControl);
                             UserView.HomePage.Instance.PageIndex += 1;
-                            acControl.action = RefreshBodyView;
-                            acControl.Show(device, Room.CurrentRoom);
+                            //lightControl.action = RefreshBodyView;
+                            lightControl.Show(device, Room.CurrentRoom);
                         };
-                        //deviceItemFL.MouseLongEventHandler += acHandler;
-                        deviceItemFL.MouseUpEventHandler += acHandler;
-                        deviceName.MouseUpEventHandler += acHandler;
-                        deviceIMG.MouseUpEventHandler += acHandler;
+
+                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                     }
                     else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
                     {
@@ -2200,7 +1506,7 @@
                         itemView.AddChidren(lightView);
                         lightView.Init();
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
-                        lightView.SetStatuText(CommonFormResouce.GetSwitchStatu(dimmableLight.OnOffStatus == 1));
+                        lightView.SetStatuText(device.GetDeviceStatu());
                         lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                         lightView.IsSelected = dimmableLight.OnOffStatus == 1;
                         lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
@@ -2227,7 +1533,7 @@
 
                                 dimmableLight.SwitchControl(1);
 
-                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true));
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                 ((sender as Button).Parent as FunctionMainView).IsSelected = true;
 
                                 //鎺у埗寤舵椂鍥炶皟
@@ -2253,7 +1559,7 @@
 
                                 dimmableLight.SwitchControl(0);
 
-                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false));
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                 ((sender as Button).Parent as FunctionMainView).IsSelected = false;
 
                                 //鎺у埗寤舵椂鍥炶皟
@@ -2274,32 +1580,91 @@
 
                         lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                         {
+                            CommonPage.Instance.IsDrawerLockMode = true;
                             var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                             UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                             UserView.HomePage.Instance.PageIndex += 1;
-                            UserView.HomePage.Instance.ScrollEnabled = false;
-                            dimmableLightControl.action = RefreshBodyView;
+                            //dimmableLightControl.action = RefreshBodyView;
                             dimmableLightControl.Show(device, Room.CurrentRoom);
                         };
 
                         lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                     }
-                    else if (device.CommonDevice.Type == DeviceType.OnOffSwitch)
+                    else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DoorLock)
+                    {
+                        //闂ㄩ攣
+                        var dimmableLight = device.CommonDevice as DoorLock;
+                        //琛ヤ笂闈炶繙绋�
+                        if (dimmableLight.Gateway == null)
+                        {
+                            continue;
+                        }
+                        if (dimmableLight.Gateway.IsVirtual)
+                        {
+                            ReadStatus(dimmableLight, () =>
+                            {
+                                dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+                            });
+                        }
+                        else
+                        {
+                            if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+                            {
+                                dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+                            }
+                        }
+
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText(device.GetDeviceStatu());
+                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
+                        lightView.IsSelected = dimmableLight.IsOnline == 1;
+                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
+                        lightView.CanControl(false);
+                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
+                        if (dev == null)
+                        {
+                            lightView.CollectButton.IsSelected = false;
+                        }
+                        else
+                        {
+                            lightView.CollectButton.IsSelected = true;
+                        }
+
+                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
+                        {
+                            CommonPage.Instance.IsDrawerLockMode = true;
+                            var userDoorLockPage = new UserDoorLockPage(Room.CurrentRoom, device);
+                            HomePage.Instance.AddChidren(userDoorLockPage);
+                            HomePage.Instance.PageIndex += 1;
+                            userDoorLockPage.Show();
+                        };
+                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
+                    }
+                    else
                     {
                         var lightView = new FunctionMainView(xx, yy);
                         itemView.AddChidren(lightView);
                         lightView.Init();
                         lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
-                        lightView.SetStatuText("寮�");
-                        lightView.SetDeviceName("鎸夐敭");
-                        //lightView.SetStatu(true);
-                        lightView.IsSelected = true;
-                        lightView.SetCollect(true);
+                        lightView.SetStatuText(device.GetDeviceStatu());
+                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
+                        lightView.CanControl(false);
+                        lightView.IsSelected = device.CommonDevice.IsOnline == 1;
+                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
 
-                        continue;
-                        //鎸夐敭
-                        var panel = (Panel)device.CommonDevice;
-
+                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
+                        if (dev == null)
+                        {
+                            lightView.CollectButton.IsSelected = false;
+                        }
+                        else
+                        {
+                            lightView.CollectButton.IsSelected = true;
+                        }
+                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                     }
                 }
             }
@@ -2326,11 +1691,11 @@
             functionSceneBodyView.AddChidren(noScene);
             var noScenceTip = new Button()
             {
-                Y=noScene.Bottom,
+                Y = noScene.Bottom,
                 Height = Application.GetRealHeight(200),
-                Text =Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"),
+                Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}", "\r\n"),
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
-                IsMoreLines=true
+                IsMoreLines = true
             };
             functionSceneBodyView.AddChidren(noScenceTip);
         }
@@ -2352,9 +1717,9 @@
             }
             else
             {
-                var sceneScrolView = new VerticalScrolViewLayout { };
+                sceneScrolView = new VerticalScrolViewLayout { };
                 functionSceneBodyView.AddChidren(sceneScrolView);
-                for(int i=0;i<sceneList.Count;i++)
+                for (int i = 0; i < sceneList.Count; i++)
                 {
                     var scene = sceneList[i];
                     int xx = 43 + i % 2 * (20 + 487);
@@ -2376,95 +1741,73 @@
 
                     var sceneView = new SceneMainView(xx, yy);
                     itemView.AddChidren(sceneView);
-                    sceneView.Init();
-                    sceneView.SetSceneNameText(scene.Name);
-                    sceneView.SetIcon($"SceneIcon/{i}.png");
-                    sceneView.SetCollect(scene.IsCollected);
-
-                    if (scene.SceneDelayTime == 0)
-                    {
-                        sceneView.SetTimeImage();
-                    }
-                    else
-                    {
-                        sceneView.SetTimeText(scene.SceneDelayTime.ToString());
-                    }
-
-                    sceneView.TimeButton.MouseUpEventHandler += (sender, e) =>
-                    {
-                        var timeSelect = new SelectTime();
-                        CommonPage.Instance.AddChidren(timeSelect);
-                        timeSelect.TempTime = scene.DelayTime;
-                        timeSelect.Init();
-                        timeSelect.TimeAction = (t) =>
-                        {
-                            scene.SceneDelayTime = t;
-                            if(t>0)
-                            {
-                                sceneView.SetTimeText(CommonFormResouce.GetTimeString(scene.SceneDelayTime));
-                            }
-                            else
-                            {
-                                sceneView.SetTimeImage();
-                            }
-                        };
-
-                    };
-
-                    //璋冪敤鍦烘櫙
-                    EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) =>
-                    {
-                            //1鎴愬姛 0澶辫触
-                            //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず
-                            // Error鍙傛暟鍚箟
-                            //<para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para>
-                            //<para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁
-                            //<para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para>
-                            //<para>4锛氬叾浠栭敊璇�</para>
-                            //<para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para>
-                            var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime);
-                        if (sceneOpenAllData == null || sceneOpenAllData.sceneOpenData == null)
-                        {
-                            return;
-                        }
-                        if (sceneOpenAllData.sceneOpenData.Result == 0)
-                        {
-                            if (sceneOpenAllData.errorResponData == null)
-                            {
-                                return;
-                            }
-                            CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail);
-                        }
-                    };
-                    //鏀惰棌
-                    EventHandler<MouseEventArgs> collectionEvent = (sender, e) =>
-                    {
-                        if ((sender as Button).IsSelected)
-                        {
-                            scene.Collect(false);
-                            (sender as Button).IsSelected = false;
-                        }
-                        else
-                        {
-                            scene.Collect(true);
-                            (sender as Button).IsSelected = true;
-                        }
-                        scene.Save();
-                        //if (Room.CurrentRoom.IsLove)
-                        //{
-                        //    RefreshBodyView();
-                        //}
-
-                    };
-
-                    sceneView.CollectButton.MouseUpEventHandler += collectionEvent;
-                    sceneView.MouseUpEventHandler += sceneUpHandler;
-                    sceneView.SceneIcon.MouseUpEventHandler+= sceneUpHandler;
-                    sceneView.SceneNameButton.MouseUpEventHandler += sceneUpHandler;
-
+                    sceneView.Init(scene);
                 }
+                GetDelayScene(sceneScrolView);
             }
+        }
 
+        /// <summary>
+        /// GetDelayScene
+        /// </summary>
+        /// <param name="scrolViewLayout"></param>
+        private void GetDelayScene(VerticalScrolViewLayout scrolViewLayout)
+        {
+            new System.Threading.Thread(async () =>
+            {
+                var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync();
+                if (catDelaySceneResponseAllData == null)
+                {
+                    return;
+                }
+                var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData;
+                if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0)
+                {
+                    return;
+                }
+                var delayList = catDelaySceneResponseData.DelayScenesList;
+
+                Application.RunOnMainThread(() =>
+                {
+                    for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++)
+                    {
+                        var iView = scrolViewLayout.GetChildren(i) as FrameLayout;
+                        for (int j = 0; iView != null && j < iView.ChildrenCount; j++)
+                        {
+                            var sceneView = iView.GetChildren(j) as SceneMainView;
+                            foreach (var delayScenesListResponseInfo in delayList)
+                            {
+                                if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id)
+                                {
+                                    var times = delayScenesListResponseInfo.RemainTime;
+                                    sceneView.scene.RemainTime = times;
+                                    new System.Threading.Thread(() =>
+                                    {
+                                        while (times > 0)
+                                        {
+                                            System.Threading.Thread.Sleep(1000);
+                                            Application.RunOnMainThread(() =>
+                                            {
+                                                sceneView.SetTimeText(CommonFormResouce.GetTimeString(times));
+                                            });
+                                            times -= 1;
+                                        }
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            sceneView.SetTimeImage();
+                                        });
+                                    })
+                                    { IsBackground = true }.Start();
+
+                                    break;
+                                }
+                            }
+
+                        }
+                    }
+                });
+            })
+            { IsBackground = true }.Start();
         }
 
         #endregion

--
Gitblit v1.8.0