From 528c105b3aea0e6e00477365f16f57c1e3d7eb1c Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 24 十月 2019 15:31:28 +0800
Subject: [PATCH] 2019-10-24-3

---
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 1845 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 1,081 insertions(+), 764 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
old mode 100755
new mode 100644
index c41f1d2..250eeb9
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -4,6 +4,7 @@
 using Shared.Phone.UserView;
 using Shared.R;
 using ZigBee.Device;
+using Shared.Phone.Device.CommonForm;
 
 namespace Shared.Phone.Device.Category
 {
@@ -19,17 +20,21 @@
         /// </summary>
         public static Category instance;
         /// <summary>
+        /// low_High
+        /// </summary>
+        private const int low_High = 127;
+        /// <summary>
         /// 鍔熻兘
         /// </summary>
-        public Button functionBtn;
+        private ButtonLineForm functionBtn;
         /// <summary>
         /// 鍦烘櫙
         /// </summary>
-        public Button sceneBtn;
+        private ButtonLineForm sceneBtn;
         /// <summary>
         /// 鑷姩鍖�
         /// </summary>
-        public Button automationBtn;
+        private ButtonLineForm automationBtn;
         /// <summary>
         /// 涓儴鑳屾櫙bodyView
         /// </summary>
@@ -51,10 +56,6 @@
         /// </summary>
         private Device.CommonForm.SelectedStatuButton addBtn;
         /// <summary>
-        /// 鍒嗘爮搴曢儴绾挎潯.
-        /// </summary>
-        private Button line;
-        /// <summary>
         /// 缃戝叧
         /// </summary>
         private ZbGateway zbGateway = null;
@@ -73,11 +74,11 @@
         /// <summary>
         /// 褰撳墠鍔熻兘绫诲瀷鎸夐挳
         /// </summary>
-        private Button tempFunctionTypeBtn;
+        private FunctionButton tempFunctionTypeBtn;
         /// <summary>
         /// 鍔熻兘绫诲瀷鎸夐挳
         /// </summary>
-        private Button functionTypeIMG;
+        private FunctionButton functionTypeIMG;
         /// <summary>
         /// 鍔熻兘绫诲瀷
         /// </summary>
@@ -86,6 +87,14 @@
         /// 璁惧绫诲瀷RowLayout
         /// </summary>
         private RowLayout typeRowLayout;
+        /// <summary>
+        /// 妤煎眰
+        /// </summary>
+        private Button floorBtn;
+        /// <summary>
+        /// 閫夋嫨妤煎眰
+        /// </summary>
+        private Button selectFloorBtn;
 
         #endregion
 
@@ -455,13 +464,13 @@
                                         }
                                     }
                                     break;
-                                case DeviceType.WindowCoveringDevice:
+                                case DeviceType.WindowCoveringDevice:
                                     var rollerShape = deviceUI.CommonDevice as Rollershade;
                                     //璁板綍鍥炲鏃堕棿
                                     rollerShape.LastDateTime = DateTime.Now;
                                     rollerShape.IsOnline = (common as Rollershade).IsOnline;
                                     for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                    {
+                                    {
                                         var tempView = rowLayout.GetChildren(j);
                                         if (tempView.Tag == null)
                                         {
@@ -520,8 +529,30 @@
         /// </summary>
         public Category()
         {
-            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
             instance = this;
+        }
+
+        public void InitFloor()
+        {
+            Config.Instance.Home.FloorDics.Clear();
+            Config.Instance.Home.FloorDics.Add("Floor1", "涓�妤�");
+            Config.Instance.Home.FloorDics.Add("Floor2", "浜屾ゼ");
+            Config.Instance.Home.FloorDics.Add("Floor3", "涓夋ゼ");
+            Config.Instance.Home.FloorDics.Add("Floor4", "鍥涙ゼ");
+            Config.Instance.Home.FloorDics.Add("Floor5", "鈶ゆゼ");
+            if (string.IsNullOrEmpty(Config.Instance.Home.CurrentFloorId))
+            {
+                if (Config.Instance.Home.FloorDics.Count > 0)
+                {
+                    foreach (var floor in Config.Instance.Home.FloorDics)
+                    {
+                        Config.Instance.Home.CurrentFloorId = floor.Key;
+                        break;
+                    }
+                }
+            }
+            //Config.Instance.Save();
         }
 
         /// <summary>
@@ -530,133 +561,179 @@
         /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param>
         public void Show(int selectedBtn = 1)
         {
+
             ZbGateway.StatusList.Add(this);
             RemoveAll();
+
             #region topview
             var topView = new FrameLayout()
             {
-                Height = Application.GetRealHeight(CommonPage.Navigation_Height),
-                BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
+                Y = Application.GetRealHeight(104),
+                Height = Application.GetRealHeight(low_High),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
             };
             this.AddChidren(topView);
 
             var title = new Button()
             {
-                Y = Application.GetRealHeight(CommonPage.NavigationTitle_Y),
-                Height = Application.GetRealHeight(CommonPage.Navigation_Height - CommonPage.NavigationTitle_Y),
-                TextAlignment = TextAlignment.Center,
+                X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                Height = Application.GetRealHeight(95),
+                Width = Application.GetRealWidth(CommonFormResouce.TopTitle_Width),
+                Gravity = Gravity.CenterVertical,
+                TextAlignment = TextAlignment.CenterLeft,
                 TextID = R.MyInternationalizationString.Category,
                 TextSize = 20,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                Width = Application.GetRealWidth(CommonPage.AppRealWidth - 500),
-                Gravity = Gravity.CenterHorizontal
+                TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
             };
             topView.AddChidren(title);
 
-            addBtn = new Device.CommonForm.SelectedStatuButton()
+            addBtn = new SelectedStatuButton()
             {
-                Y = Application.GetRealHeight(CommonPage.NavigationTitle_Y),
-                Width = Application.GetMinRealAverage(100),
-                Height = Application.GetMinRealAverage(100),
-                UnSelectedImagePath = "Item/Add.png",
-                SelectedImagePath = "Item/AddSelected.png",
-                X = Application.GetRealWidth(CommonPage.AppRealWidth - 150),
+                X = Application.GetRealWidth(953),
+                Width = Application.GetMinRealAverage(104),
+                Height = Application.GetMinRealAverage(104),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = "Item/Add_Category.png",
+                SelectedImagePath = "Item/Add_Category.png"
             };
             topView.AddChidren(addBtn);
             #endregion
 
             #region midFL
-            int functionSceneAuto_width;
-            //鎴愬憳娌℃湁鏉冮檺灞曠ず鑷姩鍖栫晫闈�
-            if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
-            {
-                functionSceneAuto_width = 1080 / 2;
-            }
-            else
-            {
-                functionSceneAuto_width = 1080 / 3;
-            }
-            var functionSceneAuto_height = 120;
             var midFL = new FrameLayout
             {
                 Y = topView.Bottom,
-                Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - topView.Bottom
+                Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - topView.Bottom,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
             };
             AddChidren(midFL);
+
             var functionSceneAutoBG = new FrameLayout()
             {
-                Height = Application.GetRealHeight(functionSceneAuto_height),
-                BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor
+                Height = Application.GetRealHeight(low_High),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
             };
             midFL.AddChidren(functionSceneAutoBG);
             //鍔熻兘
-            functionBtn = new Button()
-            {
-                Width = Application.GetRealWidth(functionSceneAuto_width),
-                Height = Application.GetRealHeight(functionSceneAuto_height),
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor,
-                TextAlignment = TextAlignment.Center,
-                TextSize = 16,
-                TextID = R.MyInternationalizationString.Function,
-                IsSelected = false
-            };
-            midFL.AddChidren(functionBtn);
+            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68);
+            functionSceneAutoBG.AddChidren(functionBtn);
+            functionBtn.Init();
+            functionBtn.SetTitle(R.MyInternationalizationString.Function);
+
             //鍦烘櫙
-            sceneBtn = new Button()
-            {
-                X = functionBtn.Right,
-                Width = Application.GetRealWidth(functionSceneAuto_width),
-                Height = Application.GetRealHeight(functionSceneAuto_height),
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor,
-                TextAlignment = TextAlignment.Center,
-                TextSize = 16,
-                TextID = R.MyInternationalizationString.Scence,
-                IsSelected = false
-            };
-            midFL.AddChidren(sceneBtn);
+            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68);
+            functionSceneAutoBG.AddChidren(sceneBtn);
+            sceneBtn.Init();
+            sceneBtn.SetTitle(R.MyInternationalizationString.Scence);
+
             //鑷姩鍖�
-            automationBtn = new Button()
-            {
-                X = sceneBtn.Right,
-                Width = Application.GetRealWidth(functionSceneAuto_width),
-                Height = Application.GetRealHeight(functionSceneAuto_height),
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor,
-                TextAlignment = TextAlignment.Center,
-                TextSize = 16,
-                TextID = R.MyInternationalizationString.Automation,
-                IsSelected = false
-            };
+            automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68);
+            automationBtn.Init();
+            automationBtn.SetTitle(R.MyInternationalizationString.Automation);
             //闅愯棌鑷姩鍖�
             if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3)
             {
-                midFL.AddChidren(automationBtn);
+                functionSceneAutoBG.AddChidren(automationBtn);
             }
 
-            var functionSceneBottomLine = new Button()
+            floorBtn = new Button()
             {
-                Y = functionBtn.Bottom,
-                Height = CommonPage.LineHeight,
-                X = functionBtn.X,
-                BackgroundColor = ZigbeeColor.Current.GXCLineColor
+                X = Application.GetRealWidth(750),
+                Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(60),
+                Gravity = Gravity.CenterVertical,
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
             };
-            midFL.AddChidren(functionSceneBottomLine);
-            line = new Button()
+
+            selectFloorBtn = new Button()
             {
-                Y = functionBtn.Bottom,
-                Height = CommonPage.LineHeight,
-                X = sceneBtn.X,
-                Width = Application.GetRealWidth(functionSceneAuto_width),
-                BackgroundColor = ZigbeeColor.Current.GXCButtonBlueColor
+                X = Application.GetRealWidth(950),
+                Width = Application.GetMinRealAverage(69),
+                Height = Application.GetMinRealAverage(69),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = "Item/Drop_Down.png"
             };
-            midFL.AddChidren(line);
+
+            if (Config.Instance.Home.FloorDics.Count > 0)
+            {
+                floorBtn.Text = Config.Instance.Home.GetCurrentFloorName;
+                functionSceneAutoBG.AddChidren(floorBtn);
+                functionSceneAutoBG.AddChidren(selectFloorBtn);
+            }
+
+            var roomFL = new HorizontalScrolViewLayout()
+            {
+                X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                Y = functionSceneAutoBG.Bottom,
+                Height = Application.GetRealHeight(167),
+                Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonFormResouce.X_Left),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
+            };
+            midFL.AddChidren(roomFL);
+
+            Button curBtn = new Button();
+            for (int i = 0; i < Config.Instance.Home.RoomFilePathList.Count; i++)
+            {
+                var roomFilePath = Config.Instance.Home.RoomFilePathList[i];
+                var room = Shared.Common.Room.GetRoomByFilePath(roomFilePath);
+                if (room == null)
+                {
+                    continue;
+                }
+                var row = new RowLayout()
+                {
+                    Width = Application.GetRealWidth(187 + 50),
+                    Height = Application.GetRealHeight(167),
+                    LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor
+                };
+                roomFL.AddChidren(row);
+
+                var roomBtn = new Button()
+                {
+                    Width = Application.GetRealWidth(187),
+                    Height = Application.GetRealHeight(78),
+                    Radius = (uint)Application.GetRealHeight(78 / 2),
+                    Gravity = Gravity.Center,
+                    Text = room.Name,
+                    TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                    SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
+                    BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor3,
+                    SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor,
+                    BorderColor = ZigbeeColor.Current.GXCBorderUnSelectedColor,
+                    BorderWidth = 1
+                };
+                row.AddChidren(roomBtn);
+                if (Shared.Common.Room.CurrentRoom == null)
+                {
+                    continue;
+                }
+                if (Shared.Common.Room.CurrentRoom.FileName == roomFilePath)
+                {
+                    roomBtn.IsSelected = true;
+                    curBtn = roomBtn;
+                }
+
+                roomBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    if ((sender as Button) == curBtn)
+                    {
+                        return;
+                    }
+                    (sender as Button).IsSelected = true;
+                    curBtn.IsSelected = false;
+                    curBtn = (sender as Button);
+                    Shared.Common.Room.CurrentRoom = room;
+                };
+            }
+
+
             //鍔熻兘鍜屽満鏅痓odyView
             functionSceneBodyView = new FrameLayout()
             {
-                Y = line.Bottom,
-                Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - functionBtn.Height - topView.Height - CommonPage.LineHeight,
+                Y = roomFL.Bottom,
+                Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - functionBtn.Height - topView.Height - roomFL.Height - CommonPage.LineHeight,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
             };
             midFL.AddChidren(functionSceneBodyView);
 
@@ -664,22 +741,18 @@
             {
                 addBtn.Visible = false;
                 functionBtn.IsSelected = true;
-                line.X = functionBtn.X;
             }
             else if (selectedBtn == 1)
             {
                 addBtn.Visible = true;
                 sceneBtn.IsSelected = true;
-                line.X = sceneBtn.X;
             }
             else if (selectedBtn == 2)
             {
                 addBtn.Visible = true;
                 automationBtn.IsSelected = true;
-                line.X = automationBtn.X;
             }
             RefreshBodyView();
-
 
             #endregion
             //缁戝畾鎸夐挳浜嬩欢
@@ -695,13 +768,33 @@
         private void BindEvent()
         {
             //閫夋嫨鍔熻兘鍒嗘爮
-            functionBtn.MouseUpEventHandler += FunctionBtn_MouseUpEventHandler;
+            functionBtn.NameBtn.MouseUpEventHandler += FunctionBtn_MouseUpEventHandler;
             //閫夋嫨鍦烘櫙鍒嗘爮
-            sceneBtn.MouseUpEventHandler += SceneBtn_MouseUpEventHandler;
+            sceneBtn.NameBtn.MouseUpEventHandler += SceneBtn_MouseUpEventHandler;
             //閫変腑鑷姩鍖�
-            automationBtn.MouseUpEventHandler += AutomationBtn_MouseUpEventHandler;
+            automationBtn.NameBtn.MouseUpEventHandler += AutomationBtn_MouseUpEventHandler;
             //鍙充笂瑙掓坊鍔犳寜閽�
             addBtn.MouseUpEventHandler += AddBtn_MouseUpEventHandler;
+
+            selectFloorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler;
+            floorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler;
+
+        }
+
+        /// <summary>
+        /// 閫夋嫨妤煎眰
+        /// </summary>
+        /// <param name="sender">Sender.</param>
+        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
+        private void SelectedFloor_MouseUpEventHandler(object sender, MouseEventArgs mouseEventArgs)
+        {
+            var floors = new SelectFloor();
+            AddChidren(floors);
+            floors.Init(599, 357);
+            floors.FloorAction += (floorName) =>
+            {
+                floorBtn.Text = floorName;
+            };
         }
 
         /// <summary>
@@ -714,7 +807,6 @@
             functionBtn.IsSelected = true;
             sceneBtn.IsSelected = false;
             automationBtn.IsSelected = false;
-            line.X = functionBtn.X;
             addBtn.Visible = false;
             RefreshBodyView();
         }
@@ -729,7 +821,6 @@
             functionBtn.IsSelected = false;
             sceneBtn.IsSelected = true;
             automationBtn.IsSelected = false;
-            line.X = sceneBtn.X;
             addBtn.Visible = true;
             RefreshBodyView();
         }
@@ -744,7 +835,6 @@
             functionBtn.IsSelected = false;
             sceneBtn.IsSelected = false;
             automationBtn.IsSelected = true;
-            line.X = automationBtn.X;
             addBtn.Visible = true;
             RefreshBodyView();
         }
@@ -852,25 +942,25 @@
             {
                 functionTypeScrowView = new HorizontalScrolViewLayout
                 {
-                    Height = Application.GetRealHeight(CommonPage.RowHeight) - 1,
-                    Width = Application.GetRealWidth(CommonPage.AppRealWidth)
+                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Height = Application.GetRealHeight(279),
+                    Width = Application.GetRealWidth(1028),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
                 };
                 functionSceneBodyView.AddChidren(functionTypeScrowView);
-                var typeLine = new Button()
-                {
-                    Y = functionTypeScrowView.Bottom,
-                    Width = Application.GetRealWidth(CommonPage.AppRealWidth),
-                    Height = 1,
-                    BackgroundColor = ZigbeeColor.Current.GXCLineColor
-                };
-                functionSceneBodyView.AddChidren(typeLine);
+
                 deviceListScrolView = new VerticalScrolViewLayout
                 {
-                    Y = typeLine.Bottom,
-                    Height = functionSceneBodyView.Height - Application.GetRealHeight(CommonPage.RowHeight) - 1
+                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50),
+                    Width = Application.GetRealWidth(1028),
+                    Height = functionSceneBodyView.Height - Application.GetRealHeight(279 + 50) - 1,
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+
                 };
                 functionSceneBodyView.AddChidren(deviceListScrolView);
-                tempFunctionTypeBtn = new Button();
+                tempFunctionTypeBtn = new FunctionButton();
+
                 foreach (var deviceType in Common.Room.AllRoomDeviceTypeList)
                 {
                     typeRowLayout = new RowLayout()
@@ -880,22 +970,23 @@
                         Tag = deviceType
                     };
                     functionTypeScrowView.AddChidren(typeRowLayout);
-                    functionTypeIMG = new Button()
+
+                    functionTypeIMG = new FunctionButton()
                     {
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        Gravity = Gravity.Center,
-                        UnSelectedImagePath = DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType),
-                        SelectedImagePath = DeviceUI.GetDeviceTypeSelectedImagePath(deviceType),
                         Tag = deviceType
                     };
+                    functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType));
+                    functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType));
                     typeRowLayout.AddChidren(functionTypeIMG);
 
-                    functionTypeIMG.MouseUpEventHandler += ShowSameTypeFunction;
+
+                    functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction;
+                    functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction;
+                    functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction;
 
                     if (deviceType == Shared.Common.Room.AllRoomDeviceUIList[0].CommonDevice.Type)
                     {
-                        ShowSameTypeFunction(functionTypeIMG, null);
+                        ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
                     }
                 }
             }
@@ -911,8 +1002,9 @@
             //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙�
             Shared.Common.Room.GetAllRoomDeviceUIList();
             tempFunctionTypeBtn.IsSelected = false;
-            (typeSender as Button).IsSelected = true;
-            tempFunctionTypeBtn = (typeSender as Button);
+            tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton;
+            ((typeSender as Button).Parent as FunctionButton).IsSelected = true;
+
             deviceListScrolView.RemoveAll();
 
             var sameTypeList = new List<DeviceUI> { };
@@ -935,13 +1027,14 @@
                 //鍒犻櫎璁惧
                 EventHandler<MouseEventArgs> delEvent = (delSender, delE) =>
                 {
-                    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, e2) =>
+                    var alert = new CustomAlert();
+                    AddChidren(alert);
+                    alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
+                    alert.ResultEventHandler += (e2) =>
                     {
                         if (e2)
                         {
-                            Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice, false);
+                            Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
                             deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
                             sameTypeList.Remove(deviceUI);
                             if (sameTypeList.Count == 0)
@@ -963,11 +1056,11 @@
                 if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
                 {
                     //鐏�
-                    var light = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
-                    //琛ヤ笂闈炶繙绋�
-                    if (light.Gateway == null)
-                    {
-                        continue;
+                    var light = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
+                    //琛ヤ笂闈炶繙绋�
+                    if (light.Gateway == null)
+                    {
+                        continue;
                     }
                     if (light.Gateway.IsVirtual)
                     {
@@ -989,53 +1082,27 @@
 
                     var deviceTypeRowLayout = new RowLayout()
                     {
-                        Height = Application.GetRealHeight(CommonPage.RowHeight),
-                        LineColor = ZigbeeColor.Current.GXCLineColor,
+                        Height = Application.GetRealHeight(127 + 35),
+                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                         Tag = deviceUI
                     };
                     deviceListScrolView.AddChidren(deviceTypeRowLayout);
-                    var deviceIMG = new Button()
-                    {
-                        X = Application.GetRealWidth(CommonPage.XLeft),
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        UnSelectedImagePath = deviceUI.IconPath,
-                        SelectedImagePath = deviceUI.OnlineIconPath,
-                        Gravity = Gravity.CenterVertical,
-                        IsSelected = light.IsOnline == 1,
-                        Tag = deviceStatus_Online
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceIMG);
-                    var deviceNameBtn = new Button()
-                    {
-                        X = Application.GetRealWidth(50) + deviceIMG.Right,
-                        Width = Application.GetRealWidth(500),
-                        Text = deviceUI.CommonDevice.DeviceEpointName,
-                        TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                        TextAlignment = TextAlignment.CenterLeft
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceNameBtn);
-                    var switchBtn = new Button
-                    {
-                        X = deviceTypeRowLayout.Right - Application.GetRealWidth(200),
-                        Width = Application.GetMinRealAverage(183),
-                        Height = Application.GetMinRealAverage(123),
-                        UnSelectedImagePath = "Item/Switch.png",
-                        SelectedImagePath = "Item/SwitchSelected.png",
-                        IsSelected = light.OnOffStatus == 1,
-                        Tag = deviceStatus_OnOffStatus,
-                        Gravity = Gravity.CenterVertical
-                    };
-                    deviceTypeRowLayout.AddChidren(switchBtn);
 
-                    switchBtn.MouseUpEventHandler += (send2, e2) =>
+                    var deviceRow = new FunctionRow(0, 35);
+                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                    deviceRow.SetStatu(light.IsOnline == 1);
+                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+
+                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                     {
                         zbGateway = deviceUI.CommonDevice.Gateway;
                         sendedControlCommand = false;
                         zbGateway.ReportAction += UpdateDeviceControllStatu;
                         AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-                        switchBtn.IsSelected = !switchBtn.IsSelected;
-                        if (switchBtn.IsSelected == true)
+                        (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
+                        if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
                         {
                             light.SwitchControl(1);
                         }
@@ -1058,6 +1125,14 @@
                         });
                     };
 
+                    var editBtn = new CommonForm.RowLayoutEditButton()
+                    {
+                        Tag = deviceUI,
+                        Radius = 0
+                    };
+                    deviceTypeRowLayout.AddRightView(editBtn);
+                    editBtn.MouseUpEventHandler += deviceDetailHandler;
+
                     var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                     {
                         Tag = deviceUI,
@@ -1065,10 +1140,6 @@
                     };
                     deviceTypeRowLayout.AddRightView(delBtn);
                     delBtn.MouseUpEventHandler += delEvent;
-
-                    deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler;
-                    deviceIMG.MouseUpEventHandler += deviceDetailHandler;
-                    deviceNameBtn.MouseUpEventHandler += deviceDetailHandler;
                 }
                 else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
                 {
@@ -1098,53 +1169,27 @@
 
                     var deviceTypeRowLayout = new RowLayout()
                     {
-                        Height = Application.GetRealHeight(CommonPage.RowHeight),
-                        LineColor = ZigbeeColor.Current.GXCLineColor,
+                        Height = Application.GetRealHeight(127 + 35),
+                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                         Tag = deviceUI
                     };
                     deviceListScrolView.AddChidren(deviceTypeRowLayout);
-                    var deviceIMG = new Button()
-                    {
-                        X = Application.GetRealWidth(CommonPage.XLeft),
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        UnSelectedImagePath = deviceUI.IconPath,
-                        SelectedImagePath = deviceUI.OnlineIconPath,
-                        Gravity = Gravity.CenterVertical,
-                        IsSelected = airSwitch.IsOnline == 1,
-                        Tag = deviceStatus_Online
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceIMG);
-                    var deviceNameBtn = new Button()
-                    {
-                        X = Application.GetRealWidth(50) + deviceIMG.Right,
-                        Width = Application.GetRealWidth(500),
-                        Text = deviceUI.CommonDevice.DeviceEpointName,
-                        TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                        TextAlignment = TextAlignment.CenterLeft
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceNameBtn);
-                    var switchBtn = new Button
-                    {
-                        X = deviceTypeRowLayout.Right - Application.GetRealWidth(200),
-                        Width = Application.GetMinRealAverage(183),
-                        Height = Application.GetMinRealAverage(123),
-                        UnSelectedImagePath = "Item/Switch.png",
-                        SelectedImagePath = "Item/SwitchSelected.png",
-                        IsSelected = airSwitch.OnOffStatus == 1,
-                        Tag = deviceStatus_OnOffStatus,
-                        Gravity = Gravity.CenterVertical
-                    };
-                    deviceTypeRowLayout.AddChidren(switchBtn);
-                    switchBtn.MouseUpEventHandler += (send2, e2) =>
+
+                    var deviceRow = new FunctionRow(0, 35);
+                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                    deviceRow.SetStatu(airSwitch.IsOnline == 1);
+                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                     {
                         zbGateway = deviceUI.CommonDevice.Gateway;
                         sendedControlCommand = false;
                         zbGateway.ReportAction += UpdateDeviceControllStatu;
                         AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
 
-                        switchBtn.IsSelected = !switchBtn.IsSelected;
-                        if (switchBtn.IsSelected == true)
+                        (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
+                        if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
                         {
                             airSwitch.SwitchControl(1);
                         }
@@ -1166,6 +1211,15 @@
                             }
                         });
                     };
+
+                    var editBtn = new CommonForm.RowLayoutEditButton()
+                    {
+                        Tag = deviceUI,
+                        Radius = 0
+                    };
+                    deviceTypeRowLayout.AddRightView(editBtn);
+                    editBtn.MouseUpEventHandler += deviceDetailHandler;
+
                     var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                     {
                         Tag = deviceUI,
@@ -1173,10 +1227,6 @@
                     };
                     deviceTypeRowLayout.AddRightView(delBtn);
                     delBtn.MouseUpEventHandler += delEvent;
-
-                    deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler;
-                    deviceIMG.MouseUpEventHandler += deviceDetailHandler;
-                    deviceNameBtn.MouseUpEventHandler += deviceDetailHandler;
                 }
                 else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
                 {
@@ -1208,53 +1258,27 @@
 
                     var deviceTypeRowLayout = new RowLayout()
                     {
-                        Height = Application.GetRealHeight(CommonPage.RowHeight),
-                        LineColor = ZigbeeColor.Current.GXCLineColor,
+                        Height = Application.GetRealHeight(127 + 35),
+                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                         Tag = deviceUI
                     };
                     deviceListScrolView.AddChidren(deviceTypeRowLayout);
-                    var deviceIMG = new Button()
-                    {
-                        X = Application.GetRealWidth(CommonPage.XLeft),
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        UnSelectedImagePath = deviceUI.IconPath,
-                        SelectedImagePath = deviceUI.OnlineIconPath,
-                        Gravity = Gravity.CenterVertical,
-                        IsSelected = dimmableLight.IsOnline == 1,
-                        Tag = deviceStatus_Online
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceIMG);
-                    var deviceNameBtn = new Button()
-                    {
-                        X = Application.GetRealWidth(50) + deviceIMG.Right,
-                        Width = Application.GetRealWidth(500),
-                        Text = deviceUI.CommonDevice.DeviceEpointName,
-                        TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                        TextAlignment = TextAlignment.CenterLeft
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceNameBtn);
-                    var switchBtn = new Button
-                    {
-                        X = deviceTypeRowLayout.Right - Application.GetRealWidth(200),
-                        Width = Application.GetMinRealAverage(183),
-                        Height = Application.GetMinRealAverage(123),
-                        UnSelectedImagePath = "Item/Switch.png",
-                        SelectedImagePath = "Item/SwitchSelected.png",
-                        IsSelected = dimmableLight.OnOffStatus == 1,
-                        Tag = deviceStatus_OnOffStatus,
-                        Gravity = Gravity.CenterVertical
-                    };
-                    deviceTypeRowLayout.AddChidren(switchBtn);
-                    switchBtn.MouseUpEventHandler += (send2, e2) =>
+
+                    var deviceRow = new FunctionRow(0, 35);
+                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                    deviceRow.SetStatu(dimmableLight.IsOnline == 1);
+                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                     {
                         zbGateway = deviceUI.CommonDevice.Gateway;
                         sendedControlCommand = false;
                         zbGateway.ReportAction += UpdateDeviceControllStatu;
                         AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
 
-                        switchBtn.IsSelected = !switchBtn.IsSelected;
-                        if (switchBtn.IsSelected == true)
+                        (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
+                        if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
                         {
                             dimmableLight.SwitchControl(1);
                         }
@@ -1276,6 +1300,15 @@
                             }
                         });
                     };
+
+                    var editBtn = new CommonForm.RowLayoutEditButton()
+                    {
+                        Tag = deviceUI,
+                        Radius = 0
+                    };
+                    deviceTypeRowLayout.AddRightView(editBtn);
+                    editBtn.MouseUpEventHandler += deviceDetailHandler;
+
                     var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                     {
                         Tag = deviceUI,
@@ -1284,9 +1317,6 @@
                     deviceTypeRowLayout.AddRightView(delBtn);
                     delBtn.MouseUpEventHandler += delEvent;
 
-                    deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler;
-                    deviceIMG.MouseUpEventHandler += deviceDetailHandler;
-                    deviceNameBtn.MouseUpEventHandler += deviceDetailHandler;
                 }
                 else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
                 {
@@ -1326,53 +1356,27 @@
 
                     var deviceTypeRowLayout = new RowLayout()
                     {
-                        Height = Application.GetRealHeight(CommonPage.RowHeight),
-                        LineColor = ZigbeeColor.Current.GXCLineColor,
+                        Height = Application.GetRealHeight(127 + 35),
+                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                         Tag = deviceUI
                     };
                     deviceListScrolView.AddChidren(deviceTypeRowLayout);
-                    var deviceIMG = new Button()
-                    {
-                        X = Application.GetRealWidth(CommonPage.XLeft),
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        UnSelectedImagePath = deviceUI.IconPath,
-                        SelectedImagePath = deviceUI.OnlineIconPath,
-                        Gravity = Gravity.CenterVertical,
-                        IsSelected = ac.IsOnline == 1,
-                        Tag = deviceStatus_Online
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceIMG);
-                    var deviceNameBtn = new Button()
-                    {
-                        X = Application.GetRealWidth(50) + deviceIMG.Right,
-                        Width = Application.GetRealWidth(500),
-                        Text = deviceUI.CommonDevice.DeviceEpointName,
-                        TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                        TextAlignment = TextAlignment.CenterLeft
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceNameBtn);
-                    var switchBtn = new Button
-                    {
-                        X = deviceTypeRowLayout.Right - Application.GetRealWidth(200),
-                        Width = Application.GetMinRealAverage(183),
-                        Height = Application.GetMinRealAverage(123),
-                        UnSelectedImagePath = "Item/Switch.png",
-                        SelectedImagePath = "Item/SwitchSelected.png",
-                        IsSelected = Device.AC.ACControlBase.IsOpen(ac),
-                        Tag = deviceStatus_OnOffStatus,
-                        Gravity = Gravity.CenterVertical
-                    };
-                    deviceTypeRowLayout.AddChidren(switchBtn);
-                    switchBtn.MouseUpEventHandler += (send2, e2) =>
+
+                    var deviceRow = new FunctionRow(0, 35);
+                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                    deviceRow.SetStatu(ac.IsOnline == 1);
+                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                     {
                         zbGateway = deviceUI.CommonDevice.Gateway;
                         sendedControlCommand = false;
                         zbGateway.ReportAction += UpdateDeviceControllStatu;
                         AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
 
-                        switchBtn.IsSelected = !switchBtn.IsSelected;
-                        if (switchBtn.IsSelected == true)
+                        (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
+                        if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
                         {
                             ac.Open();
                         }
@@ -1394,6 +1398,15 @@
                             }
                         });
                     };
+
+                    var editBtn = new CommonForm.RowLayoutEditButton()
+                    {
+                        Tag = deviceUI,
+                        Radius = 0
+                    };
+                    deviceTypeRowLayout.AddRightView(editBtn);
+                    editBtn.MouseUpEventHandler += deviceDetailHandler;
+
                     var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                     {
                         Tag = deviceUI,
@@ -1401,10 +1414,6 @@
                     };
                     deviceTypeRowLayout.AddRightView(delBtn);
                     delBtn.MouseUpEventHandler += delEvent;
-
-                    deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler;
-                    deviceIMG.MouseUpEventHandler += deviceDetailHandler;
-                    deviceNameBtn.MouseUpEventHandler += deviceDetailHandler;
                 }
                 else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
                 {
@@ -1434,63 +1443,25 @@
 
                     var deviceTypeRowLayout = new RowLayout()
                     {
-                        Height = Application.GetRealHeight(CommonPage.RowHeight),
+                        Height = Application.GetRealHeight(127 + 35),
                         LineColor = ZigbeeColor.Current.GXCLineColor,
                         Tag = deviceUI
                     };
                     deviceListScrolView.AddChidren(deviceTypeRowLayout);
-                    var deviceIMG = new Button()
-                    {
-                        X = Application.GetRealWidth(CommonPage.XLeft),
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        UnSelectedImagePath = deviceUI.IconPath,
-                        SelectedImagePath = deviceUI.OnlineIconPath,
-                        Gravity = Gravity.CenterVertical,
-                        IsSelected = rollerShade.IsOnline == 1,
-                        Tag = deviceStatus_Online
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceIMG);
-                    var deviceNameBtn = new Button()
-                    {
-                        X = Application.GetRealWidth(50) + deviceIMG.Right,
-                        Width = Application.GetRealWidth(350),
-                        Text = deviceUI.CommonDevice.DeviceEpointName,
-                        TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                        TextAlignment = TextAlignment.CenterLeft
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceNameBtn);
 
-                    var closeBtn = new Device.CommonForm.SelectedStatuButton()
+                    var deviceRow = new FunctionRow(0, 35);
+                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                    deviceRow.SetStatu(rollerShade.IsOnline == 1);
+                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                    var editBtn = new CommonForm.RowLayoutEditButton()
                     {
-                        X = Application.GetRealWidth(50) + deviceNameBtn.Right,
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        Gravity = Gravity.CenterVertical,
-                        UnSelectedImagePath = "WindowCovering/RollerShadeClose.png",
-                        SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png",
+                        Tag = deviceUI,
+                        Radius = 0
                     };
-                    deviceTypeRowLayout.AddChidren(closeBtn);
-                    var stopBtn = new Device.CommonForm.SelectedStatuButton()
-                    {
-                        X = Application.GetRealWidth(50) + closeBtn.Right,
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        Gravity = Gravity.CenterVertical,
-                        UnSelectedImagePath = "WindowCovering/RollerShadeStop.png",
-                        SelectedImagePath = "WindowCovering/RollerShadeStopSelected.png",
-                    };
-                    deviceTypeRowLayout.AddChidren(stopBtn);
-                    var openBtn = new Device.CommonForm.SelectedStatuButton()
-                    {
-                        X = Application.GetRealWidth(50) + stopBtn.Right,
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        Gravity = Gravity.CenterVertical,
-                        UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png",
-                        SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png",
-                    };
-                    deviceTypeRowLayout.AddChidren(openBtn);
+                    deviceTypeRowLayout.AddRightView(editBtn);
+                    editBtn.MouseUpEventHandler += deviceDetailHandler;
 
                     var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                     {
@@ -1500,15 +1471,23 @@
                     deviceTypeRowLayout.AddRightView(delBtn);
                     delBtn.MouseUpEventHandler += delEvent;
 
-                    //绐楀笜鍏�
-                    closeBtn.MouseUpEventHandler += (sender, e) =>
+
+                    deviceRow.SwitchBtn.MouseUpEventHandler += (sender, e) =>
                     {
                         zbGateway = deviceUI.CommonDevice.Gateway;
                         sendedControlCommand = false;
                         zbGateway.ReportAction += UpdateDeviceControllStatu;
                         AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
 
-                        rollerShade.CurtainUpDownStopControl(1);
+                        (sender as CommonForm.SelectedStatuButton).IsSelected = !(sender as CommonForm.SelectedStatuButton).IsSelected;
+                        if ((sender as CommonForm.SelectedStatuButton).IsSelected)
+                        {
+                            rollerShade.CurtainUpDownStopControl(0);
+                        }
+                        else
+                        {
+                            rollerShade.CurtainUpDownStopControl(1);
+                        }
 
                         //鎺у埗寤舵椂鍥炶皟
                         DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
@@ -1524,98 +1503,10 @@
                             }
                         });
                     };
-                    //绐楀笜鍋�
-                    stopBtn.MouseUpEventHandler += (sender, e) =>
-                    {
-                        zbGateway = deviceUI.CommonDevice.Gateway;
-                        sendedControlCommand = false;
-                        zbGateway.ReportAction += UpdateDeviceControllStatu;
-                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
-                        rollerShade.CurtainUpDownStopControl(2);
-
-                        //鎺у埗寤舵椂鍥炶皟
-                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
-                        {
-                            if (Parent == null)
-                            {
-                                return;
-                            }
-                            RemoveUpdateControlDeviceStatuAction(zbGateway);
-                            if (sendedControlCommand == false)
-                            {
-                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                            }
-                        });
-                    };
-                    //绐楀笜寮�
-                    openBtn.MouseUpEventHandler += (sender, e) =>
-                    {
-                        zbGateway = deviceUI.CommonDevice.Gateway;
-                        sendedControlCommand = false;
-                        zbGateway.ReportAction += UpdateDeviceControllStatu;
-                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
-                        rollerShade.CurtainUpDownStopControl(0);
-
-                        //鎺у埗寤舵椂鍥炶皟
-                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
-                        {
-                            if (Parent == null)
-                            {
-                                return;
-                            }
-                            RemoveUpdateControlDeviceStatuAction(zbGateway);
-                            if (sendedControlCommand == false)
-                            {
-                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                            }
-                        });
-                    };
-                    deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler;
-                    deviceIMG.MouseUpEventHandler += deviceDetailHandler;
-                    deviceNameBtn.MouseUpEventHandler += deviceDetailHandler;
                 }
                 else
                 {
-                    var deviceTypeRowLayout = new RowLayout()
-                    {
-                        Height = Application.GetRealHeight(CommonPage.RowHeight),
-                        LineColor = ZigbeeColor.Current.GXCLineColor,
-                        Tag = deviceUI
-                    };
-                    deviceListScrolView.AddChidren(deviceTypeRowLayout);
-                    var deviceIMG = new Button()
-                    {
-                        X = Application.GetRealWidth(CommonPage.XLeft),
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        UnSelectedImagePath = deviceUI.IconPath,
-                        SelectedImagePath = deviceUI.OnlineIconPath,
-                        Gravity = Gravity.CenterVertical,
-                        Tag = deviceStatus_Online
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceIMG);
-                    var deviceNameBtn = new Button()
-                    {
-                        X = Application.GetRealWidth(50) + deviceIMG.Right,
-                        Width = Application.GetRealWidth(500),
-                        Text = deviceUI.CommonDevice.DeviceEpointName,
-                        TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                        TextAlignment = TextAlignment.CenterLeft
-                    };
-                    deviceTypeRowLayout.AddChidren(deviceNameBtn);
-                    var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
-                    {
-                        Tag = deviceUI,
-                        Radius = 0
-                    };
-                    deviceTypeRowLayout.AddRightView(delBtn);
-                    delBtn.MouseUpEventHandler += delEvent;
 
-                    deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler;
-                    deviceIMG.MouseUpEventHandler += deviceDetailHandler;
-                    deviceNameBtn.MouseUpEventHandler += deviceDetailHandler;
                 }
             }
         }
@@ -1625,13 +1516,27 @@
         /// </summary>
         private void ShowNoFunctionTip()
         {
+            var noFunction = new Button()
+            {
+                Y = Application.GetRealHeight(320),
+                Width = Application.GetMinRealAverage(757),
+                Height = Application.GetMinRealAverage(435),
+                UnSelectedImagePath = "Item/NoFunction.png",
+                Gravity = Gravity.CenterHorizontal
+            };
+            functionSceneBodyView.AddChidren(noFunction);
+
             var noFunctionTip = new Button()
             {
-                Height = Application.GetMinRealAverage(200),
+                Y = noFunction.Bottom + Application.GetRealHeight(32),
+                Height = Application.GetRealHeight(200),
+                Width = Application.GetRealWidth(700),
+                Gravity = Gravity.CenterHorizontal,
                 TextID = R.MyInternationalizationString.NoFunction,
+                //Text = "娌℃湁鍔熻兘 \n 璇峰湪涓汉涓績涓�--璁惧绠$悊澶勬坊鍔�",
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                 TextAlignment = TextAlignment.Center,
-                Gravity = Gravity.CenterVertical
+                IsMoreLines = true
             };
             functionSceneBodyView.AddChidren(noFunctionTip);
         }
@@ -1659,114 +1564,104 @@
             }
             else
             {
-                var sceneScrolView = new VerticalScrolViewLayout { };
+                var sceneScrolView = new VerticalScrolViewLayout
+                {
+                    Y = Application.GetRealHeight(58)
+                };
                 functionSceneBodyView.AddChidren(sceneScrolView);
                 foreach (var sceneRoomUI in sceneList)
                 {
                     var sceneFL = new FrameLayout()
                     {
-                        Width = Application.GetRealWidth(CommonPage.AppRealWidth - 100),
-                        Height = Application.GetRealHeight(400),
+                        Height = Application.GetRealHeight(446),
                         Gravity = Gravity.CenterHorizontal,
-                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
+                        BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
                         Tag = sceneRoomUI
                     };
                     sceneScrolView.AddChidren(sceneFL);
                     var sceneRowLayout = new RowLayout()
                     {
-                        Y = Application.GetRealHeight(30),
-                        Height = Application.GetRealHeight(400 - 30 - 10),
+                        Y = Application.GetRealHeight(46),
+                        Height = Application.GetRealHeight(446 - 46),
                         Gravity = Gravity.CenterHorizontal,
-                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+                        LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
                         Radius = CommonPage.BigFormRadius
                     };
                     sceneFL.AddChidren(sceneRowLayout);
-                    var sceneItemFL = new FrameLayout()
-                    {
-                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        Radius = CommonPage.BigFormRadius
-                    };
-                    sceneRowLayout.AddChidren(sceneItemFL);
+
                     var sceneImg = new Button()
                     {
+                        X = Application.GetRealWidth(179),
+                        Width = Application.GetMinReal(844),
+                        Height = Application.GetMinReal(400),
+                        Gravity = Gravity.CenterVertical,
                         UnSelectedImagePath = sceneRoomUI.sceneUI.IconPath,
-                        Radius = CommonPage.BigFormRadius
+                        Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius)
                     };
                     sceneRowLayout.AddChidren(sceneImg);
 
-                    var sceneBGBtn = new Button()
+                    var leftFL = new FrameLayout
                     {
-                        BackgroundColor = ZigbeeColor.Current.GXCBlack70Color,
-                        SelectedBackgroundColor = ZigbeeColor.Current.GXCBlack80Color,
-                        Radius = CommonPage.BigFormRadius
+                        X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                        Width = Application.GetRealWidth(251),
+                        Height = Application.GetRealHeight(282),
+                        Gravity = Gravity.CenterVertical,
+                        BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2
                     };
-                    sceneRowLayout.AddChidren(sceneBGBtn);
-                    var roomNameBtn = new Button()
+                    sceneRowLayout.AddChidren(leftFL);
+
+                    var collectionBtn = new Button
                     {
-                        X = Application.GetRealWidth(30),
-                        Y = Application.GetRealHeight(1),
-                        Width = Application.GetRealWidth(600),
-                        Height = Application.GetRealHeight(110),
-                        Text = $"{sceneRoomUI.room.Name}",
-                        TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                        TextSize = 12,
-                        TextAlignment = TextAlignment.CenterLeft
+                        X = Application.GetRealWidth(23),
+                        Y = Application.GetRealHeight(23),
+                        Width = Application.GetMinRealAverage(65),
+                        Height = Application.GetMinRealAverage(65),
+                        UnSelectedImagePath = "Item/Collection.png",
+                        SelectedImagePath = "Item/CollectionSelected.png"
                     };
-                    sceneRowLayout.AddChidren(roomNameBtn);
+                    leftFL.AddChidren(collectionBtn);
 
                     var sceneNameBtn = new Button()
                     {
-                        Width = Application.GetRealWidth(700),
+                        Width = Application.GetRealWidth(176),
                         Height = Application.GetRealHeight(200),
                         TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                        TextSize = 20,
                         Text = sceneRoomUI.sceneUI.Name,
-                        Gravity = Gravity.Center
+                        Gravity = Gravity.Center,
+                        IsMoreLines = true
                     };
-                    sceneRowLayout.AddChidren(sceneNameBtn);
-                    var moreBtn = new Device.CommonForm.SelectedStatuButton()
-                    {
-                        Y = Application.GetRealHeight(1),
-                        X = sceneRowLayout.Width - Application.GetRealWidth(150),
-                        Width = Application.GetMinRealAverage(110),
-                        Height = Application.GetMinRealAverage(110),
-                        UnSelectedImagePath = "Item/MoreWhite.png",
-                        SelectedImagePath = "Item/MoreSelected.png"
-                    };
-                    sceneRowLayout.AddChidren(moreBtn);
+                    leftFL.AddChidren(sceneNameBtn);
 
-                    //缂栬緫寤舵椂
-                    var leftDelayTimeBtn = new Device.CommonForm.RowLayoutEditButton()
+                    //瀹氭椂
+                    var delayBtn = new RowLayoutDeleteButton
                     {
+                        TextID = R.MyInternationalizationString.Delay,
                         Tag = sceneRoomUI.sceneUI.SceneDelayTime
                     };
+                    sceneRowLayout.AddLeftView(delayBtn);
 
+                    //缂栬緫
+                    var settingBtn = new Device.CommonForm.RowLayoutEditButton()
+                    {
+                        TextID = R.MyInternationalizationString.Setting,
+                        Tag = sceneRoomUI.sceneUI.SceneDelayTime
+                    };
                     //鍒犻櫎
                     var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
                     {
                         Tag = sceneRoomUI
                     };
 
-                    if(!sceneRoomUI.room.IsSharedRoom)
+                    if (!sceneRoomUI.room.IsSharedRoom)
                     {
-                        sceneRowLayout.AddRightView(leftDelayTimeBtn);
+                        sceneRowLayout.AddRightView(settingBtn);
                         sceneRowLayout.AddRightView(deleteBtn);
                     }
 
                     //璋冪敤鍦烘櫙
-                    EventHandler<MouseEventArgs> sceneDownHandler = (sender, e) =>
-                    {
-                        sceneBGBtn.IsSelected = true;
-                    };
-                    sceneBGBtn.MouseDownEventHandler += sceneDownHandler;
-                    sceneImg.MouseDownEventHandler += sceneDownHandler;
-                    sceneRowLayout.MouseDownEventHandler += sceneDownHandler;
-                    sceneNameBtn.MouseDownEventHandler += sceneDownHandler;
-                    sceneFL.MouseDownEventHandler += sceneDownHandler;
 
                     EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) =>
                     {
-                        sceneBGBtn.IsSelected = false;
                         //1鎴愬姛 0澶辫触
                         //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず
                         //瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮
@@ -1795,17 +1690,17 @@
                             return;
                         }
                     };
-                    sceneBGBtn.MouseUpEventHandler += sceneUpHandler;
                     sceneImg.MouseUpEventHandler += sceneUpHandler;
-                    sceneRowLayout.MouseUpEventHandler += sceneUpHandler;
-                    sceneFL.MouseUpEventHandler += sceneUpHandler;
-                    sceneNameBtn.MouseUpEventHandler += sceneUpHandler;
                     //鍒犻櫎鍦烘櫙
                     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 += async (send1, e1) =>
+                        var tip = new CustomAlert { };
+                        AddChidren(tip);
+                        tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
+
+                        //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();
+                        tip.ResultEventHandler += async (e1) =>
                         {
                             if (e1)
                             {
@@ -1844,12 +1739,12 @@
                     };
                     deleteBtn.MouseUpEventHandler += delEvent;
                     //缂栬緫鍦烘櫙
-                    moreBtn.MouseUpEventHandler += (sender, e) =>
+                    settingBtn.MouseUpEventHandler += (sender, e) =>
                     {
                         SceneRoomUI.EditScene(sceneRoomUI.sceneUI, sceneRoomUI.room);
                     };
                     //缂栬緫寤舵椂
-                    leftDelayTimeBtn.MouseUpEventHandler += (sender, e) =>
+                    delayBtn.MouseUpEventHandler += (sender, e) =>
                     {
                         var tList = new List<string>() { };
 
@@ -1858,24 +1753,24 @@
                             tList.Add($"{i} {Language.StringByID(R.MyInternationalizationString.Second)}");
                         }
                         //int beforeIndex = (int)(sender as CommonForm.RowLayoutEditButton).Tag;
-                        PickerView.Show(tList, (obj) =>
-                        {
-                            var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName);
-                            if (tempRoom == null)
-                            {
-                                return;
-                            }
-                            foreach (var ss in tempRoom.SceneUIList)
-                            {
-                                if (ss.Id == sceneRoomUI.sceneUI.Id)
-                                {
-                                    ss.SceneDelayTime = int.Parse(tList[obj].Split(' ')[0]);
-                                    sceneRoomUI.room.Save();
-                                    RefreshBodyView();
-                                    return;
-                                }
-                            }
-                        },0,"", Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]);
+                        //PickerView.Show(tList, (obj) =>
+                        //{
+                        //    var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName);
+                        //    if (tempRoom == null)
+                        //    {
+                        //        return;
+                        //    }
+                        //    foreach (var ss in tempRoom.SceneUIList)
+                        //    {
+                        //        if (ss.Id == sceneRoomUI.sceneUI.Id)
+                        //        {
+                        //            ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]);
+                        //            sceneRoomUI.room.Save();
+                        //            RefreshBodyView();
+                        //            return;
+                        //        }
+                        //    }
+                        //}, Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]);
                     };
                 }
             }
@@ -1886,13 +1781,26 @@
         /// </summary>
         private void ShowNoSceneTip()
         {
+            var noFunction = new Button()
+            {
+                Y = Application.GetRealHeight(320),
+                Width = Application.GetMinRealAverage(757),
+                Height = Application.GetMinRealAverage(435),
+                UnSelectedImagePath = "Item/NoFunction.png",
+                Gravity = Gravity.CenterHorizontal
+            };
+            functionSceneBodyView.AddChidren(noFunction);
+
             var noScenceTip = new Button()
             {
-                Height = Application.GetMinRealAverage(200),
+                Y = noFunction.Bottom + Application.GetRealHeight(32),
+                Height = Application.GetRealHeight(200),
+                Width = Application.GetRealWidth(700),
+                Gravity = Gravity.CenterHorizontal,
                 TextID = R.MyInternationalizationString.NoScene,
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                 TextAlignment = TextAlignment.Center,
-                Gravity = Gravity.CenterVertical
+                IsMoreLines = true
             };
             functionSceneBodyView.AddChidren(noScenceTip);
         }
@@ -1907,47 +1815,197 @@
         /// </summary>
         public async void ShowAutotion()
         {
-            var logicScrolView = new VerticalScrolViewLayout { };
+            functionSceneBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+
+            var bjFrameLayout = new FrameLayout
+            {
+                Width = Application.GetRealWidth(1080 - 58),
+                Height = Application.GetRealHeight(170),
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                X = Application.GetRealWidth(58),
+                Radius = (uint)Application.GetRealHeight(50),
+                Y = Application.GetRealHeight(30),
+            };
+            functionSceneBodyView.AddChidren(bjFrameLayout);
+
+            var sigBtn = new Button
+            {
+                Width = Application.GetMinRealAverage(84),
+                Height = Application.GetMinRealAverage(84),
+                UnSelectedImagePath = "ZigeeLogic/sign.png",
+                X = Application.GetRealWidth(58),
+                Gravity = Gravity.CenterVertical,
+            };
+            bjFrameLayout.AddChidren(sigBtn);
+
+            var recommendtextBtn = new Button
+            {
+                Width = Application.GetMinRealAverage(300),
+                Height = Application.GetMinRealAverage(84),
+                X = sigBtn.Right + Application.GetRealWidth(35),
+                TextAlignment = TextAlignment.CenterLeft,
+                //Text = "鎺ㄨ崘妯℃澘",
+                TextID = MyInternationalizationString.logictemplate,
+                Gravity = Gravity.CenterVertical,
+                TextColor = ZigbeeColor.Current.LogicBtnSelectedColor,
+            };
+            bjFrameLayout.AddChidren(recommendtextBtn);
+
+            var recommendswitchBtn = new Button
+            {
+                Width = Application.GetMinRealAverage(104),
+                Height = Application.GetMinRealAverage(63),
+                UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                SelectedImagePath = "ZigeeLogic/logicopen.png",
+                X = bjFrameLayout.Width - Application.GetRealWidth(104 + 58),
+                Gravity = Gravity.CenterVertical,
+            };
+            bjFrameLayout.AddChidren(recommendswitchBtn);
+
+
+            var scenehorizontalScrol = new HorizontalScrolViewLayout
+            {
+                Width = Application.GetRealWidth(1080 - 58),
+                X = Application.GetRealWidth(58),
+                Y = bjFrameLayout.Bottom + Application.GetRealHeight(30),
+                Height = Application.GetRealHeight(0),
+            };
+            functionSceneBodyView.AddChidren(scenehorizontalScrol);
+
+            var logicScrolView = new VerticalScrolViewLayout
+            {
+                Height = functionSceneBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
+                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                X = Application.GetRealWidth(58),
+                Radius = (uint)Application.GetRealHeight(50),
+                Y = scenehorizontalScrol.Bottom,
+            };
             functionSceneBodyView.AddChidren(logicScrolView);
 
-            //Shared.Common.ResponseEntity.Logic.LogicDviceList = await gateway.GetGwDeviceList();
-            // gateway.DeviceList.Clear();
-            ////// Shared.Common.ResponseEntity.Logic.LogicDviceList = LocalDevice.Current.GetDeviceByGatewayID(gateway.getGatewayBaseInfo.gwID);
-            //if (gateway.DeviceList.Count != 0)
-            //{
-            //    Shared.IO.FileUtils.WriteFileByBytes("ZigbeeDeviceListFilePath", System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(gateway.DeviceList)));
-            //}
-            //else
-            //{//涓存椂淇濆瓨璁惧鍒楄〃鏁版嵁缁欓�昏緫寮�鍙�
-            //    var devicestring = System.Text.Encoding.UTF8.GetString(Shared.IO.FileUtils.ReadFile("ZigbeeDeviceListFilePath"));
-            //    gateway.DeviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<CommonDevice>>(devicestring);
-            //}
+
+            recommendswitchBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                int Yheight = 0;
+                recommendswitchBtn.IsSelected = !recommendswitchBtn.IsSelected;
+                scenehorizontalScrol.RemoveAll();
+                if (recommendswitchBtn.IsSelected)
+                {
+                    scenehorizontalScrol.Height = Application.GetRealHeight(246);
+                    Yheight = 20;
+                    for (int i = 1; i < 4; i++)
+                    {
+
+                        var frameLayout = new FrameLayout
+                        {
+                            Width = Application.GetMinRealAverage(369 + 46),
+                            Height = Application.GetMinRealAverage(246),
+                        };
+                        scenehorizontalScrol.AddChidren(frameLayout);
+                        var logiciocnBtn = new Button
+                        {
+                            Width = Application.GetMinRealAverage(369),
+                            Height = Application.GetMinRealAverage(246),
+                            UnSelectedImagePath = "ZigeeLogic/" + i + ".png",
+                            Tag = i,
+                        };
+                        frameLayout.AddChidren(logiciocnBtn);
+
+                        var logicnameBtn = new Button
+                        {
+                            Width = Application.GetMinRealAverage(250),
+                            Height = Application.GetMinRealAverage(80),
+                            X = Application.GetRealWidth(23),
+                            Y = Application.GetRealHeight(246 - 23 - 80),
+                            TextAlignment = TextAlignment.CenterLeft,
+                            TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                        };
+                        frameLayout.AddChidren(logicnameBtn);
+
+                        if (i == 1)
+                        {
+                            logicnameBtn.Text = Language.StringByID(MyInternationalizationString.onlight);
+                        }
+                        else if (i == 2)
+                        {
+                            logicnameBtn.Text = Language.StringByID(MyInternationalizationString.offlight);
+                        }
+                        else if (i == 3)
+                        {
+                            logicnameBtn.Text = Language.StringByID(MyInternationalizationString.automation1);
+                        }
+
+
+                        EventHandler<MouseEventArgs> iconclick = (sender1, e1) =>
+                        {
+                            Common.Logic.CurrentLogic = new Common.Logic();
+                            Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
+                            if (logiciocnBtn.Tag.ToString() == "3")
+                            {
+                                Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;// Language.StringByID(MyInternationalizationString.automation1);
+                                var addLogicPage = new Logic.AddLogicPage();
+                                HomePage.Instance.AddChidren(addLogicPage);
+                                HomePage.Instance.PageIndex += 1;
+                                addLogicPage.Show();
+                            }
+                            else
+                            {
+                                Common.Logic.LogicDviceList.Clear();
+                                if (Common.Logic.LogicDviceList.Count == 0)
+                                {
+                                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
+                                }
+                                Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
+                                Logic.TemplatePage templatePage = new Logic.TemplatePage();
+                                Logic.TemplatePage.s = logiciocnBtn.Tag.ToString();
+                                HomePage.Instance.AddChidren(templatePage);
+                                HomePage.Instance.PageIndex += 1;
+                                templatePage.Show();
+                            }
+                        };
+                        logiciocnBtn.MouseUpEventHandler += iconclick;
+                        logicnameBtn.MouseUpEventHandler += iconclick;
+                    }
+                }
+                else
+                {
+                    scenehorizontalScrol.Height = Application.GetRealHeight(0);
+                    Yheight = 0;
+                }
+                logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight;
+                logicScrolView.Height = functionSceneBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight;
+                Automationview(logicScrolView);
+            };
 
             CommonPage.Loading.Start();
-            //if (Common.Logic.LogicDviceList.Count != 0)
-            //{
-            //    foreach (var gateway in ZbGateway.GateWayList)
-            //    {
-            //        if (gateway.IsMainGateWay)
-            //        {
-            //            Common.Logic.LogicDviceList = LocalDevice.Current.GetDeviceByGatewayID(gateway.getGatewayBaseInfo.gwID);
-            //        }
-            //    }
-            //}
-
-
-            //CommonPage.Loading.Start();
             if (Common.Logic.LogicList.Count == 0)
             {
+                //var Idlist = await Logic.Send.GetLogicId();
+                //if (Idlist.Count != 0)
+                //{
+                //    foreach (var LogicId in Idlist)
+                //    {
+                //        var logic = await Logic.Send.GetLogic(LogicId);
+                //        if (logic != null)
+                //        {
+                //            Common.Logic.LogicList.Add(logic);
+                //        }
+                //    }
+                //}
                 var Idlist = await Logic.Send.GetLogicId();
                 if (Idlist.Count != 0)
                 {
-                    foreach (var LogicId in Idlist)
+                    var listlogic = await Logic.Send.ReadList(Idlist.Count);
+                    for (int i = 0; i < Idlist.Count; i++)
                     {
-                        var logic = await Logic.Send.GetLogic(LogicId);
-                        if (logic != null)
+                        var LogicId = Idlist[i];
+                        //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆�
+                        for (int j = 0; j < listlogic.Count; j++)
                         {
-                            Common.Logic.LogicList.Add(logic);
+                            var logic = listlogic[j];
+                            if (logic.LogicId == LogicId)
+                            {
+                                Common.Logic.LogicList.Add(logic);
+                            }
                         }
                     }
                 }
@@ -1966,67 +2024,87 @@
             refresview.RemoveAll();
             foreach (var logic in Common.Logic.LogicList)
             {
-                var logicrowlayout = new RowLayout
+                var bjRow = new RowLayout
                 {
-                    Height = Application.GetRealHeight(180),
-                    LineColor = ZigbeeColor.Current.LogicLineColor,
-                };
-                refresview.AddChidren(logicrowlayout);
+                    Width = Application.GetRealWidth(1080 - 58),
+                    Height = Application.GetRealHeight(220),
+                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
 
-                var btnname = new Button
+                };
+                refresview.AddChidren(bjRow);
+
+                var logicRowlayout = new RowLayout
                 {
-                    //Text = "閫昏緫涓�",
+                    Y = Application.GetRealHeight(220 - 190),
+                    Height = Application.GetRealHeight(190),
+                    Width = Application.GetRealWidth(1080 - 58 - 46),
+                    LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                    X = Application.GetRealWidth(46),
+                };
+                bjRow.AddChidren(logicRowlayout);
+
+                var logicnameBtn = new Button
+                {
+                    Height = Application.GetRealHeight(58),
+                    Width = Application.GetRealWidth(350),
                     Text = logic.LogicName,
-                    X = Application.GetRealWidth(50),
+                    X = Application.GetRealWidth(12),
                     TextAlignment = TextAlignment.CenterLeft,
-                    Gravity = Gravity.CenterVertical,
                     TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 };
-                logicrowlayout.AddChidren(btnname);
+                logicRowlayout.AddChidren(logicnameBtn);
 
-                var btnswitch = new Button
+
+                var logicswitchBtn = new Button
                 {
-                    Width = Application.GetMinRealAverage(183),
-                    Height = Application.GetMinRealAverage(123),
-                    UnSelectedImagePath = "ZigeeLogic/Switch.png",
-                    SelectedImagePath = "ZigeeLogic/SwitchSelected.png",
-                    X = Application.GetRealWidth(1080 - 200),
-                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetMinRealAverage(104),
+                    Height = Application.GetMinRealAverage(63),
+                    UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                    SelectedImagePath = "ZigeeLogic/logicopen.png",
+                    X = logicRowlayout.Width - Application.GetRealWidth(104 + 58),
+                    Y = Application.GetRealHeight(58 + 30 + 9),
                 };
-                logicrowlayout.AddChidren(btnswitch);
+                logicRowlayout.AddChidren(logicswitchBtn);
 
-                btnswitch.MouseUpEventHandler += (sender1, e1) =>
+
+
+                logicswitchBtn.MouseUpEventHandler += (sender1, e1) =>
                 {
-                    btnswitch.IsSelected = !btnswitch.IsSelected;
-                    if (btnswitch.IsSelected)
+                    logicswitchBtn.IsSelected = !logicswitchBtn.IsSelected;
+                    if (logicswitchBtn.IsSelected)
                     {
                         //閫昏緫寮�
                         logic.IsEnable = 1;
+                        StatusColor(logic, logicRowlayout, 1);
                     }
                     else
                     {
                         //閫昏緫鍏�
                         logic.IsEnable = 0;
+                        StatusColor(logic, logicRowlayout, 0);
                     }
-                    Logic.Send.AddModifyLogic(logic);
+                    Logic.Send.LogicControlSwitch(logic);
+                    //Logic.Send.AddModifyLogic(logic);
                 };
                 if (logic.IsEnable == 1)
                 {
-                    btnswitch.IsSelected = true;
+                    logicswitchBtn.IsSelected = true;
+                    StatusColor(logic, logicRowlayout, 1);
                 }
                 else if (logic.IsEnable == 0)
                 {
-                    btnswitch.IsSelected = false;
+                    logicswitchBtn.IsSelected = false;
+                    StatusColor(logic, logicRowlayout, 0);
                 }
                 ///缂栬緫
                 var edit = new Button
                 {
-                    //TextID = MyInternationalizationString.Musicdel
-                    BackgroundColor = 0xFF00aaf0,
+                    BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
                     Text = Language.StringByID(MyInternationalizationString.edit),
-                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
                 };
-                logicrowlayout.AddRightView(edit);
+                bjRow.AddRightView(edit);
                 edit.MouseUpEventHandler += (sender, e) =>
                 {
                     Common.Logic.LogicDviceList.Clear();
@@ -2036,174 +2114,9 @@
                     }
                     Common.Logic.CurrentLogic = logic;
                     var logicCommunalPage = new Logic.LogicCommunalPage();
-                    UserView.HomePage.Instance.AddChidren(logicCommunalPage);
-                    UserView.HomePage.Instance.PageIndex += 1;
-                    logicCommunalPage.Show(() => { btnname.Text = logic.LogicName; Automationview(refresview); });
-
-                };
-
-
-                var btndelay = new Button
-                {
-                    Width = Application.GetRealWidth(150),
-                    Height = Application.GetRealHeight(50),
-                    X = Application.GetRealWidth(300),
-                    Y = Application.GetRealHeight(25),
-                    TextAlignment = TextAlignment.Center,
-                    TextColor = 0xffcccccc,
-                };
-                logicrowlayout.AddChidren(btndelay);
-
-                ///寤舵椂鎺т欢
-                var btndelaytext = new Button
-                {
-                    BackgroundColor = 0xff676767,
-                    Text = Language.StringByID(R.MyInternationalizationString.delayed),
-                };
-                //logicrowlayout.AddRightView(btndelaytext);
-
-                //if (logic.param.ContainsKey ("delay")) {
-                //    var delayvalue = logic.param ["delay"]?.ToString ();
-                //    if (delayvalue != "" && delayvalue != "0") {
-                //        var l = int.Parse (delayvalue) / 10;
-                //        btndelay.Text = l.ToString () + "s";
-                //    }
-                //}
-
-                btndelaytext.MouseUpEventHandler += (sender, e) =>
-                {
-
-                    Dialog window = new Dialog();
-                    window.Show();
-
-                    var frameLayout = new FrameLayout
-                    {
-                        Width = Application.GetRealWidth(580),
-                        Height = Application.GetRealHeight(300),
-                        X = Application.GetRealWidth(30),
-                        Y = Application.GetRealHeight(330),
-                        BackgroundColor = 0xffffffff,
-                    };
-                    window.AddChidren(frameLayout);
-
-                    var Modifyname = new Button
-                    {
-                        Width = Application.GetRealWidth(580),
-                        Height = Application.GetRealHeight(80),
-                        TextID = R.MyInternationalizationString.devicedelaytime,
-                        //Text = "璇疯緭鍏ヨ澶囧欢鏃剁殑鏃堕棿(鍗曚綅/s)",
-                        Y = Application.GetRealHeight(10),
-                        TextSize = 16,
-                        TextColor = ZigbeeColor.Current.MusicTipTextColor,
-                    };
-                    frameLayout.AddChidren(Modifyname);
-
-                    var delaytext = new EditText
-                    {
-                        Width = Application.GetRealWidth(540),
-                        Height = Application.GetRealHeight(80),
-                        Y = Application.GetRealHeight(80),
-                        X = Application.GetRealWidth(20),
-                        Gravity = Gravity.CenterVertical,
-                        // BackgroundColor = SkinStyle.Current.MusicTipBackgroundColor,
-                        //TextColor = 0xff000000,
-                        Radius = 1,
-                        BorderWidth = 1,
-                        //BorderColor = SkinStyle.Current.MusicEditBorderColor,
-                        //TextColor = SkinStyle.Current.MusicTextColor,
-                    };
-                    frameLayout.AddChidren(delaytext);
-
-                    var line = new Button
-                    {
-                        Height = Application.GetRealHeight(2),
-                        Y = Application.GetRealHeight(218),
-                        BackgroundColor = 0xff666666,
-                    };
-                    frameLayout.AddChidren(line);
-
-                    var cancelrow = new RowLayout
-                    {
-                        Y = Application.GetRealHeight(220),
-                        Height = Application.GetRealHeight(80),
-                        Width = Application.GetRealWidth(289),
-                        BackgroundColor = 0xffcccccc,
-                    };
-                    frameLayout.AddChidren(cancelrow);
-
-                    var cancel = new Button
-                    {
-                        TextID = R.MyInternationalizationString.cancel,
-                        //TextColor = 0xff000000,
-                        TextSize = 18,
-                        //TextColor = SkinStyle.Current.MusicTextColor,
-                    };
-                    cancelrow.AddChidren(cancel);
-                    cancel.MouseUpEventHandler += (sender1, e1) =>
-                    {
-                        window.Close();
-                    };
-
-                    var ther = new Button
-                    {
-                        Y = Application.GetRealHeight(220),
-                        Height = Application.GetRealHeight(80),
-                        Width = Application.GetRealWidth(2),
-                        X = Application.GetRealHeight(289),
-                        BackgroundColor = 0xff666666,
-                    };
-                    frameLayout.AddChidren(ther);
-
-                    var confirmrow = new RowLayout
-                    {
-                        Y = Application.GetRealHeight(220),
-                        X = Application.GetRealWidth(291),
-                        Height = Application.GetRealHeight(80),
-                        Width = Application.GetRealWidth(289),
-                        BackgroundColor = 0xffcccccc,
-                    };
-                    frameLayout.AddChidren(confirmrow);
-
-                    var confirm = new Button
-                    {
-                        TextID = R.MyInternationalizationString.confrim,
-                        //TextColor = 0xff000000,
-                        TextSize = 18,
-                        // TextColor = SkinStyle.Current.MusicTextColor,
-                    };
-                    confirmrow.AddChidren(confirm);
-                    //if (logic.param.ContainsKey ("delay")) {
-                    //    var delayvalue = logic.param ["delay"]?.ToString ();
-                    //    if (delayvalue != "" && delayvalue != "0") {
-                    //        var l = int.Parse (delayvalue) / 10;
-                    //        delaytext.Text = l.ToString () + "s";
-                    //    }
-                    //}
-
-                    confirm.MouseUpEventHandler += (sender1, e1) =>
-                    {
-                        var isNumber = delaytext.Text.Trim();
-                        if (!int.TryParse(isNumber, out int number) || isNumber == "")
-                        {
-                            new Alert(Language.StringByID(R.MyInternationalizationString.Tip),
-                                       Language.StringByID(R.MyInternationalizationString.inputnumber),
-                                     Language.StringByID(R.MyInternationalizationString.Close)).Show();
-                            return;
-                        }
-
-                        var vel = int.Parse(isNumber);
-                        //if (logic.param.ContainsKey ("delay")) {
-                        //    logic.param.Remove ("delay");
-                        //    logic.param.Add ("delay", vel * 10);
-                        //} else {
-                        //    logic.param.Add ("delay", vel * 10);
-                        //}
-                        //btndelay.Text = isNumber + "s";
-                        window.Close();
-                        Automationview(refresview);
-
-
-                    };
+                    HomePage.Instance.AddChidren(logicCommunalPage);
+                    HomePage.Instance.PageIndex += 1;
+                    logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview); });
 
                 };
 
@@ -2211,16 +2124,26 @@
                 ///鍒犻櫎
                 var del = new Button
                 {
-                    //TextID = MyInternationalizationString.Musicdel,
-                    BackgroundColor = 0xFFFF0000,
+                    BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
                     Text = Language.StringByID(MyInternationalizationString.del),
+                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
                 };
-                logicrowlayout.AddRightView(del);
+                bjRow.AddRightView(del);
                 del.MouseUpEventHandler += (sender, e) =>
                 {
-                    Common.Logic.LogicList.Remove(logic);
-                    Automationview(refresview);
-                    Logic.Send.DelLogic(logic.LogicId);
+                    var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
+                                             Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
+                    alert.ResultEventHandler += (sender1, e1) =>
+                    {
+                        if (e1)
+                        {
+                            Common.Logic.LogicList.Remove(logic);
+                            Automationview(refresview);
+                            Logic.Send.DelLogic(logic.LogicId);
+                        }
+                    };
+                    alert.Show();
+
                 };
 
             }
@@ -2301,5 +2224,399 @@
         }
 
         #endregion
+
+        private void StatusColor(Common.Logic logic, RowLayout logicRowlayout, int intvalue)
+        {
+
+            var logictimeBtn = new Button
+            {
+                Height = Application.GetRealHeight(58),
+                Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350),
+                X = Application.GetRealWidth(365),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = ZigbeeColor.Current.LogicListWeekTextColor,
+            };
+            logicRowlayout.AddChidren(logictimeBtn);
+
+            ///鏄剧ず鎵ц鍛ㄦ湡
+            switch (logic.TimeAttribute.Repeat)
+            {
+                ///0:鍙墽琛屼竴娆★紝鎵ц鍚嶪sEnable鍊肩疆;1,浠婂勾鍐呮墽琛�;2锛氭瘡澶╂墽琛�;3锛氭瘡鏈堟墽琛�;4锛氭瘡骞存墽琛�;5锛氬懆閲嶅銆�
+                case 0:
+                    {
+                        logictimeBtn.Text = Language.StringByID(MyInternationalizationString.executeonce);
+                    }; break;
+                case 1: { }; break;
+                case 2:
+                    {
+                        logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyday);
+                    }; break;
+                case 3:
+                    {
+
+                        string len = "", value = "";
+                        var stringvalue = Convert.ToString(logic.TimeAttribute.MonthDate, 2);
+                        var str = stringvalue.Insert(0, new string('0', 32 - stringvalue.Length));
+                        for (int j = 31; j >= 0; j--)
+                        {
+                            len += str.Substring(j, 1);
+                        }
+                        for (int j = 0; j < len.Length; j++)
+                        {
+                            var strvalue = len.Substring(j, 1);
+                            if (strvalue == "1")
+                            {
+                                value += (j + 1).ToString() + ",";
+                            }
+                        }
+                        logictimeBtn.Text = Language.StringByID(MyInternationalizationString.monthly) + value.TrimEnd(',') + Language.StringByID(MyInternationalizationString.day);
+
+                    }; break;
+                case 4:
+                    {
+
+                        Dictionary<int, int> dictionary = new Dictionary<int, int>();
+                        ///鎵惧嚭鎵ц鐨勬湀浠藉拰澶╂暟
+                        if (logic.TimeAttribute.SelectMonDate.Count != 0)
+                        {
+                            for (int i = 0; i < logic.TimeAttribute.SelectMonDate.Count; i++)
+                            {
+                                var dayvalue = logic.TimeAttribute.SelectMonDate[i];
+                                if (dayvalue != 0)
+                                {
+                                    dictionary.Add(i + 1, dayvalue);
+                                }
+                            }
+                        }
+                        if (dictionary.Count != 0 && dictionary.Count == 1)
+                        {
+                            string len = "", leng = "";
+                            int minvalue = 0, Maximum = 0;
+                            foreach (var value in dictionary)
+                            {
+                                ///鍙栧嚭鏈堜唤
+                                var month = value.Key;
+                                ///鍙栧嚭鏃ユ暟
+                                var day = value.Value;
+                                var maxvalue = Convert.ToString(day, 2);
+                                var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
+                                for (int j = 31; j >= 0; j--)
+                                {
+                                    len += str.Substring(j, 1);
+                                }
+
+                                for (int j = 0; j < len.Length; j++)
+                                {
+                                    var strvalue = len.Substring(j, 1);
+                                    if (strvalue == "1")
+                                    {
+                                        minvalue = j + 1;
+                                        break;
+                                    }
+                                }
+                                for (int j = 0; j < len.Length; j++)
+                                {
+                                    var strvalue = len.Substring(j, 1);
+                                    if (strvalue == "1")
+                                    {
+                                        Maximum = j + 1;
+                                    }
+                                }
+
+                                if (month.ToString().Length < 2)
+                                {
+                                    leng = "0" + month.ToString();
+                                }
+                                else
+                                {
+                                    leng = month.ToString();
+                                }
+                                if (minvalue == Maximum)
+                                {
+                                    logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
+                                }
+                                else
+                                {
+                                    logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-" + leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+                                }
+                            }
+
+                        }
+                        else
+                        {
+                            int b = 0;
+                            string stringtext = "";
+                            foreach (var value in dictionary)
+                            {
+                                string len = "", leng = "";
+                                int minvalue = 0, Maximum = 0;
+                                ///鍙栧嚭鏈堜唤
+                                var month = value.Key;
+                                ///鍙栧嚭鏃ユ暟
+                                var day = value.Value;
+                                var maxvalue = Convert.ToString(day, 2);
+                                var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
+                                for (int j = 31; j >= 0; j--)
+                                {
+                                    len += str.Substring(j, 1);
+                                }
+
+
+                                if (month.ToString().Length < 2)
+                                {
+                                    leng = "0" + month.ToString();
+                                }
+                                else
+                                {
+                                    leng = month.ToString();
+                                }
+
+
+
+                                if (b == 0)
+                                {
+                                    for (int j = 0; j < len.Length; j++)
+                                    {
+                                        var strvalue = len.Substring(j, 1);
+                                        if (strvalue == "1")
+                                        {
+                                            minvalue = j + 1;
+                                            break;
+                                        }
+                                    }
+                                    stringtext += leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-";
+
+                                }
+
+                                if (b == dictionary.Count - 1)
+                                {
+                                    for (int j = 0; j < len.Length; j++)
+                                    {
+                                        var strvalue = len.Substring(j, 1);
+                                        if (strvalue == "1")
+                                        {
+                                            Maximum = j + 1;
+                                        }
+                                    }
+                                    stringtext += leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+
+                                }
+                                b++;
+                            }
+                            logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + stringtext;
+                        }
+
+                    }; break;
+                case 5:
+                    {
+                        string len = "", text = "";
+                        List<int> listvalueInt = new List<int>();
+                        listvalueInt.Clear();
+                        var maxvalue = Convert.ToString(logic.TimeAttribute.WeekDay, 2);
+                        var str = maxvalue.Insert(0, new string('0', 8 - maxvalue.Length));
+                        for (int j = 7; j >= 0; j--)
+                        {
+                            len += str.Substring(j, 1);
+                        }
+
+                        for (int j = 0; j < len.Length; j++)
+                        {
+                            var strvalue = len.Substring(j, 1);
+                            if (strvalue == "1")
+                            {
+                                listvalueInt.Add(j + 1);
+
+
+                                if ((j + 1) == 1)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.mon1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.mon) + ",";
+                                }
+                                else if ((j + 1) == 2)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.tue1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.tue) + ",";
+                                }
+                                else if ((j + 1) == 3)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.wed1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.wed) + ",";
+                                }
+                                else if ((j + 1) == 4)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.thu1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.thu) + ",";
+                                }
+                                else if ((j + 1) == 5)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.frl1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.frl) + ",";
+                                }
+                                else if ((j + 1) == 6)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sat1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.sat) + ",";
+                                }
+                                else if ((j + 1) == 7)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sun1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.sun) + ",";
+                                }
+
+
+                            }
+                        }
+                        //鏆傛椂闅愯棌鎺夛紝闇�瑕佹樉绀哄懆鏈拰宸ヤ綔鏃ュ啀鏀惧紑锛�
+                        //if (listvalueInt.Count == 5 && !listvalueInt.Contains(6) && !listvalueInt.Contains(7))
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.workingday);
+                        //}
+                        //else if (listvalueInt.Count == 2 && listvalueInt.Contains(6) && listvalueInt.Contains(7))
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.weekend);
+                        //}
+                        //else if (listvalueInt.Count == 7)
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday);
+                        //}
+                        //else
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
+                        //}
+                        logictimeBtn.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
+                        //btndisplaycycle.Text = text.TrimEnd(',');
+                    }; break;
+            }
+
+            List<string> indexlist = new List<string>();
+            List<string> iconIndexlist = new List<string>();
+            for (int i = 0; i < logic.Actions.Count; i++)
+            {
+                var linkType = logic.Actions[i]["LinkType"].ToString();
+                var d = indexlist.Find((value) => { return value == linkType; });
+                if (d == null)
+                {
+                    indexlist.Add(linkType);
+                }
+            }
+            if (indexlist.Contains("0"))
+            {
+                iconIndexlist.Add("0");
+            }
+            if (indexlist.Contains("2"))
+            {
+                iconIndexlist.Add("2");
+            }
+            if (indexlist.Contains("6"))
+            {
+                iconIndexlist.Add("6");
+            }
+            if (indexlist.Contains("7"))
+            {
+                iconIndexlist.Add("7");
+            }
+            for (int i = 0; i < iconIndexlist.Count; i++)
+            {
+                var iconindex = iconIndexlist[i];
+                var typebjBtn = new FrameLayout
+                {
+                    Width = Application.GetRealWidth(82),
+                    Height = Application.GetRealHeight(82),
+                    X = Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i),
+                    Y = Application.GetRealHeight(58 + 30),
+                    Radius = (uint)Application.GetRealHeight(41),
+                    BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                };
+                logicRowlayout.AddChidren(typebjBtn);
+
+                var typeIconBtn = new Button
+                {
+                    Width = Application.GetRealWidth(58),
+                    Height = Application.GetRealHeight(58),
+                    Gravity = Gravity.Center,
+
+                };
+                typebjBtn.AddChidren(typeIconBtn);
+
+                var connectIconBtn = new Button
+                {
+                    Y = typebjBtn.Y + Application.GetRealHeight(35),
+                    X = Application.GetRealWidth((12 + 82 + 12) + (12 + 45 + 82 + 12) * i),
+                    Width = Application.GetRealWidth(48),
+                    Height = Application.GetRealHeight(15),
+                    UnSelectedImagePath = "ZigeeLogic/connect.png",
+                };
+                logicRowlayout.AddChidren(connectIconBtn);
+                if (iconIndexlist.Count - 1 == i)
+                {
+                    connectIconBtn.Visible = false;
+                }
+                switch (iconindex)
+                {
+                    case "0":
+                        {
+                            if (intvalue == 1)
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/function1.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicFunction1Color;
+                            }
+                            else
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+                            }
+                        }
+                        break;
+                    case "2":
+                        {
+
+                            if (intvalue == 1)
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/scene1.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicScene1Color;
+                            }
+                            else
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/noscene.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+                            }
+
+                        }
+                        break;
+                    case "6":
+                        {
+                            if (intvalue == 1)
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/security1.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicSecurity1Color;
+
+                            }
+                            else
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nosecurity.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+                            }
+
+                        }
+                        break;
+                    case "7":
+                        {
+                            if (intvalue == 1)
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/delay1.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicDelay1Color;
+                            }
+                            else
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nodelay.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+                            }
+
+                        }
+                        break;
+
+                }
+            }
+        }
     }
 }

--
Gitblit v1.8.0