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

---
 ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs | 2943 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,472 insertions(+), 1,471 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
old mode 100755
new mode 100644
index fa0c778..f582b6d
--- a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
@@ -1,1471 +1,1472 @@
-锘縰sing System;
-using System.Collections.Generic;
-using Shared.Common;
-using Shared.Phone.UserView;
-using Shared.R;
-using Shared.Phone.Device.CommonForm;
-using Shared.Phone.UserCenter;
-using ZigBee.Device;
-
-namespace Shared.Phone.Category
-{
-    /// <summary>
-    /// 鍒嗙被鐨勪富鐣岄潰
-    /// </summary>
-    public class CategoryMainForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// The instance.
-        /// </summary>
-        public static CategoryMainForm instance;
-        /// <summary>
-        /// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView(楂樺害涓鸿澶囪彍鍗曠殑閭d釜鐧借壊鑳屾櫙鐨勪笂閮ㄥ埌灞忓箷搴曢儴)
-        /// </summary>
-        public FrameLayout functionSceneBodyView;
-        /// <summary>
-        /// 涓儴鑳屾櫙bodyView(楂樺害涓哄満鏅姛鑳藉垏鎹㈡帶浠剁殑搴曢儴鍒板睆骞曞簳閮�)
-        /// </summary>
-        public FrameLayout functionSceneAutoBodyView;
-        /// <summary>
-        /// 鍙充笂瑙掓坊鍔犳寜閽�
-        /// </summary>
-        private IconViewControl btnTopRightAdd = null;
-        /// <summary>
-        /// 妤煎眰鎺т欢
-        /// </summary>
-        private NormalViewControl btnFloorName = null;
-        /// <summary>
-        /// 妤煎眰鍥炬爣鎺т欢
-        /// </summary>
-        private IconViewControl btnFloorIcon = null;
-        /// <summary>
-        /// 璁惧琛屾帶浠�
-        /// </summary>
-        private Dictionary<string, Controls.DeviceRowCommon> dicDeviceRowControl = new Dictionary<string, Controls.DeviceRowCommon>();
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鏋勯�犳柟娉�
-        /// </summary>
-        public CategoryMainForm()
-        {
-            BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
-            instance = this;
-        }
-
-        /// <summary>
-        /// 鏄剧ず鐣岄潰--榛樿鍦烘櫙鐣岄潰
-        /// </summary>
-        public void ShowForm()
-        {
-            //鍏堟竻闄ゅ惂
-            this.RemoveAll();
-            //鍒濆鍖栧ご閮ㄦ帶浠�
-            this.InitTopControl();
-            //鍒濆鍖栦腑闂存帶浠�
-            this.InitMidControls();
-            //娣诲姞璁惧鐘舵�佷笂鎶ヤ簨浠�
-            this.AddNormalDeviceReportEvent();
-            //娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
-            this.AddSensorDeviceReportEvent();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栧ご閮ㄦ帶浠�
-        /// </summary>
-        private void InitTopControl()
-        {
-            //澶撮儴FrameLayout
-            this.topFrameLayout = new FrameLayout();
-            topFrameLayout.Y = Application.GetRealHeight(104);
-            topFrameLayout.Height = Application.GetRealHeight(127);
-            topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
-            this.AddChidren(topFrameLayout);
-            //鏍囬鍒嗙被
-            var btnTitle = new NormalViewControl(300, 95, true);
-            btnTitle.X = ControlCommonResourse.XXLeft;
-            btnTitle.Gravity = Gravity.CenterVertical;
-            btnTitle.TextID = R.MyInternationalizationString.Category;
-            btnTitle.TextSize = 24;
-            btnTitle.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor;
-            btnTitle.IsBold = true;
-            topFrameLayout.AddChidren(btnTitle);
-
-            //鍙充笂瑙掓坊鍔犳寜閽�
-            this.btnTopRightAdd = new IconViewControl(104);
-            btnTopRightAdd.X = Application.GetRealWidth(953);
-            btnTopRightAdd.Gravity = Gravity.CenterVertical;
-            btnTopRightAdd.UnSelectedImagePath = "Item/Add_Category.png";
-            topFrameLayout.AddChidren(btnTopRightAdd);
-            btnTopRightAdd.ButtonClickEvent += (sender, e) =>
-            {
-                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
-                {
-                    //娣诲姞鍦烘櫙
-                    Add_Scene();
-                }
-                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
-                {
-                    //娣诲姞鑷姩鍖�
-                    Add_Automation();
-                }
-            };
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑闂存帶浠�
-        /// </summary>
-        private void InitMidControls()
-        {
-            //搴旇鏄痓ody鍚�
-            this.bodyFrameLayout = new FrameLayout();
-            bodyFrameLayout.Y = topFrameLayout.Bottom;
-            bodyFrameLayout.Height = Application.GetRealHeight(1549);
-            bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
-            this.AddChidren(bodyFrameLayout);
-
-            //鍦烘櫙,鍔熻兘,鑷姩鍖栫殑鍒囨崲鎺т欢鐨勫鍣�
-            var frameSwitchBack = new FrameLayout();
-            frameSwitchBack.Height = Application.GetRealHeight(127);
-            bodyFrameLayout.AddChidren(frameSwitchBack);
-
-            //鎷ユ湁妤煎眰鏃�
-            this.btnFloorName = null;
-            this.btnFloorIcon = null;
-            if (Config.Instance.Home.FloorDics.Count > 0)
-            {
-                //妤煎眰鍚�
-                this.btnFloorName = new NormalViewControl(200, 69, true);
-                btnFloorName.X = frameSwitchBack.Width - Application.GetRealWidth(200 + 120);
-                btnFloorName.Y = Application.GetRealHeight(17);
-                btnFloorName.TextAlignment = TextAlignment.CenterRight;
-                btnFloorName.IsBold = true;
-                btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(Config.Instance.Home.CurrentFloorId);
-                frameSwitchBack.AddChidren(btnFloorName);
-                btnFloorName.ButtonClickEvent += (sender, e) =>
-                {
-                    var floors = new Device.Category.SelectFloor();
-                    AddChidren(floors);
-                    floors.Init(580, 330, Direction.Right);
-                    floors.changeFloor = true;
-                    floors.FloorAction += (floorId) =>
-                    {
-                        btnFloorName.Text = Config.Instance.Home.GetFloorNameById(floorId);
-                        HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
-                        //鍒锋柊bodyView
-                        this.RefreshBodyView();
-                    };
-                };
-                //妤煎眰鍥炬爣
-                this.btnFloorIcon = new IconViewControl(69);
-                btnFloorIcon.X = Application.GetRealWidth(950);
-                btnFloorIcon.Y = btnFloorName.Y;
-                btnFloorIcon.UnSelectedImagePath = "Item/Drop_Down.png";
-                frameSwitchBack.AddChidren(btnFloorIcon);
-                btnFloorIcon.ButtonClickEvent += (sender, e) =>
-                {
-                    btnFloorName.ButtonClickEvent?.Invoke(sender, e);
-                };
-            }
-
-            //鐩墠涓嶇煡閬撻儹闆煄鐨勮繖涓叿浣撴斁鍦ㄥ摢涓殑浣嶇疆
-            this.functionSceneAutoBodyView = new FrameLayout();
-            functionSceneAutoBodyView.Y = frameSwitchBack.Bottom;
-            functionSceneAutoBodyView.Height = Application.GetRealHeight(1423);
-            bodyFrameLayout.AddChidren(functionSceneAutoBodyView);
-
-            //鍦烘櫙,鍔熻兘,鑷姩鍖栫殑鍒囨崲鎺т欢
-            var switchContr = new SceneFunctionSwitchControl();
-            switchContr.Width = Application.GetRealWidth(650);
-            switchContr.Gravity = Gravity.CenterVertical;
-            frameSwitchBack.AddChidren(switchContr);
-            var listTitle = new List<string>();
-            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence));
-            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction));
-            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
-            {
-                //鎴愬憳娌℃湁鑷姩鍖�
-                listTitle.Add(Language.StringByID(R.MyInternationalizationString.Automation));
-            }
-            //璁剧疆鍒濆鍊�
-            switchContr.SetDefultIndex(UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex);
-            //閫夋嫨浜嬩欢
-            switchContr.SelectTabEvent += (selectIndex) =>
-            {
-                UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = selectIndex;
-                //鍒锋柊bodyView
-                this.RefreshBodyView();
-            };
-            //寮�濮嬪垵濮嬪寲
-            switchContr.InitControl(listTitle);
-        }
-
-        /// <summary>
-        /// 鍒锋柊bodyView
-        /// </summary>
-        public void RefreshBodyView()
-        {
-            this.functionSceneAutoBodyView.RemoveAll();
-
-            HdlThreadLogic.Current.RunMainInThread(() =>
-            {
-                bool floorVisible = true;
-                //鍦烘櫙
-                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
-                {
-                    //鍒濆鍖栨埧闂磋彍鍗�
-                    this.InitRoomMenuControl();
-                    //鏄剧ず鍙充笂瑙掔殑鍔犲彿
-                    this.btnTopRightAdd.Visible = true;
-                }
-                //鍔熻兘
-                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 1)
-                {
-                    //鍒濆鍖栨埧闂磋彍鍗�
-                    this.InitRoomMenuControl();
-                    //闅愯棌鍙充笂瑙掔殑鍔犲彿
-                    this.btnTopRightAdd.Visible = false;
-                }
-                //鑷姩鍖�
-                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
-                {
-                    this.ShowAutotion();
-                    //闅愯棌妤煎眰
-                    floorVisible = false;
-                    //鏄剧ず鍙充笂瑙掔殑鍔犲彿
-                    this.btnTopRightAdd.Visible = true;
-                }
-
-                //淇敼妤煎眰鐨勬樉绀烘晥鏋�
-                if (this.btnFloorName != null)
-                {
-                    this.btnFloorName.Visible = floorVisible;
-                    this.btnFloorIcon.Visible = floorVisible;
-                }
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 鎴块棿鑿滃崟鎺т欢_______________________
-
-        /// <summary>
-        /// 鍒濆鍖栨埧闂磋彍鍗曟帶浠�
-        /// </summary>
-        private void InitRoomMenuControl()
-        {
-            //褰撳墠妤煎眰鐨勫叏閮ㄦ埧闂�
-            var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
-            //鎴块棿鑿滃崟鎺т欢
-            var roomSwitchContr = new RoomDeviceGroupMenuControl(lisrRoom);
-            roomSwitchContr.Y = Application.GetRealHeight(-55);
-            this.functionSceneAutoBodyView.AddChidren(roomSwitchContr);
-            //璁剧疆鍒濆鍊�
-            roomSwitchContr.SetDefultIndex(HdlRoomLogic.Current.CurrentRoom.Id);
-            //閫夋嫨浜嬩欢
-            roomSwitchContr.SelectRoomEvent += (selectRoom) =>
-            {
-                HdlRoomLogic.Current.CurrentRoom = selectRoom;
-                //鍦烘櫙
-                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
-                {
-                    //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
-                    this.functionSceneBodyView.RemoveAll();
-                    HdlThreadLogic.Current.RunMainInThread(() =>
-                    {
-                        //鍒锋柊鍦烘櫙鍒嗘敮鎺т欢
-                        this.RefreshSceneView(selectRoom);
-                    });
-                }
-                //鍔熻兘
-                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 1)
-                {
-                    //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
-                    this.functionSceneBodyView.RemoveAll();
-                    HdlThreadLogic.Current.RunMainInThread(() =>
-                    {
-                        //鍒锋柊璁惧鍒嗘敮鎺т欢
-                        this.RefreshFunctionView(selectRoom);
-                    });
-                }
-            };
-
-            //鍔熻兘鍜屽満鏅痓odyView
-            this.functionSceneBodyView = new FrameLayout();
-            functionSceneBodyView.Y = roomSwitchContr.Bottom;
-            functionSceneBodyView.Height = functionSceneAutoBodyView.Height - roomSwitchContr.Bottom;
-            functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
-
-            //鎵ц鍒濆鍖� 
-            roomSwitchContr.InitControl();
-        }
-
-        #endregion
-
-        #region 鈻� 鍔熻兘鍒嗘敮___________________________
-
-        /// <summary>
-        /// 鍒锋柊鍔熻兘鍒嗘敮鎺т欢
-        /// </summary>
-        /// <param name="room"></param>
-        private void RefreshFunctionView(Common.Room room)
-        {
-            //鑾峰彇鍒嗙粍鍚庣殑璁惧
-            var dicGroupDevice = this.GetAllGroupDevice(room);
-            if (dicGroupDevice.Count == 0)
-            {
-                this.ShowNoFunctionTip();
-                return;
-            }
-
-            //璁惧鑿滃崟鐨勭櫧鑹茶儗鏅�
-            var functionBack1 = new FrameLayout();
-            functionBack1.X = ControlCommonResourse.XXLeft;
-            functionBack1.Height = Application.GetRealHeight(160);
-            functionBack1.Width = Application.GetRealWidth(1028);
-            functionBack1.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
-            functionSceneBodyView.AddChidren(functionBack1);
-            functionBack1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
-            var functionBack2 = new FrameLayout();
-            functionBack2.X = ControlCommonResourse.XXLeft;
-            functionBack2.Y = functionBack1.Bottom - Application.GetRealHeight(50);
-            functionBack2.Height = Application.GetRealHeight(279 - 160 + 50);
-            functionBack2.Width = Application.GetRealWidth(1028);
-            functionBack2.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
-            functionSceneBodyView.AddChidren(functionBack2);
-            functionBack2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
-
-            //璁惧鑿滃崟鐨勫乏鍙虫粦鍔ㄧ殑鎺т欢
-            var HorizontalView = new HorizontalScrolViewLayout();
-            HorizontalView.X = Application.GetRealWidth(CommonFormResouce.X_Left);
-            HorizontalView.Height = Application.GetRealHeight(279);
-            HorizontalView.Width = Application.GetRealWidth(1028);
-            functionSceneBodyView.AddChidren(HorizontalView);
-
-            //璁惧鐨勮儗鏅鍣�
-            var frameDeviceBack = new FrameLayout();
-            frameDeviceBack.X = ControlCommonResourse.XXLeft;
-            frameDeviceBack.Y = HorizontalView.Bottom + Application.GetRealHeight(35);
-            frameDeviceBack.BackgroundColor = UserCenterColor.Current.White;
-            frameDeviceBack.Width = bodyFrameLayout.Width;
-            frameDeviceBack.Height = functionSceneBodyView.Height - HorizontalView.Bottom - Application.GetRealHeight(35);
-            frameDeviceBack.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
-            functionSceneBodyView.AddChidren(frameDeviceBack);
-
-            //璁惧鍒楄〃鎺т欢
-            var listDeviceView = new VerticalListControl(35);
-            listDeviceView.Y = Application.GetRealHeight(11);
-            listDeviceView.Width = Application.GetRealWidth(1022);
-            listDeviceView.Height = frameDeviceBack.Height - Application.GetRealHeight(11);
-            listDeviceView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
-            frameDeviceBack.AddChidren(listDeviceView);
-
-            //涓婁竴娆¢�夋嫨鐨勮彍鍗�
-            MainPage.Controls.DeviceFunctionUnallocatedControl oldSelectContr = null;
-            DeviceRowInfo nowSelectDeviceInfo = null;
-            foreach (int Textid in dicGroupDevice.Keys)
-            {
-                var rowInfo = dicGroupDevice[Textid];
-
-                //璁惧绫诲瀷鐨勫鍣�
-                var devieFrame = new FrameLayout();
-                devieFrame.Width = Application.GetRealWidth(220);
-                HorizontalView.AddChidren(devieFrame);
-
-                //鑿滃崟鍥剧墖鎺т欢
-                var deviceObjContr = new MainPage.Controls.DeviceFunctionUnallocatedControl();
-                devieFrame.AddChidren(deviceObjContr);
-                deviceObjContr.InitControl(Language.StringByID(Textid), rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys);
-                deviceObjContr.ButtonClickEvent += (sender, e) =>
-                {
-                    //閫夋嫨鐨勬槸鍚屼竴涓笢瑗跨殑璇�,涓嶅鐞�
-                    if (nowSelectDeviceInfo.TextId != rowInfo.TextId)
-                    {
-                        //涓婁竴娆$殑鑿滃崟鍙栨秷,鏈鑿滃崟閫夋嫨
-                        oldSelectContr.SetSelectStatu(false);
-                        deviceObjContr.SetSelectStatu(true);
-                        oldSelectContr = deviceObjContr;
-
-                        nowSelectDeviceInfo = rowInfo;
-                        HdlThreadLogic.Current.RunMainInThread(() =>
-                        {
-                            //鍒濆鍖栬澶囧垪琛ㄦ帶浠�
-                            this.InitListDeviceControls(listDeviceView, rowInfo);
-                        });
-                    }
-                };
-
-                if (nowSelectDeviceInfo == null)
-                {
-                    //璁剧疆鍒濆閫夋嫨
-                    nowSelectDeviceInfo = rowInfo;
-                    //璁板綍鍒濆閫夋嫨鐨勮彍鍗曟帶浠�
-                    oldSelectContr = deviceObjContr;
-                    deviceObjContr.SetSelectStatu(true);
-                }
-            }
-            if (nowSelectDeviceInfo != null)
-            {
-                //鍒濆鍖栭粯璁ょ殑璁惧鍒楄〃鎺т欢
-                this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo);
-            }
-        }
-
-        /// <summary>
-        /// 鎻愮ず娌℃湁鍔熻兘
-        /// </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()
-            {
-                Y = noFunction.Bottom + Application.GetRealHeight(32),
-                Height = Application.GetRealHeight(200),
-                Width = Application.GetRealWidth(700),
-                Gravity = Gravity.CenterHorizontal,
-                Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}", "\r\n"),
-                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
-                TextAlignment = TextAlignment.Center,
-                IsMoreLines = true
-            };
-            functionSceneBodyView.AddChidren(noFunctionTip);
-        }
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖栬澶囧垪琛ㄦ帶浠禵________________
-
-        /// <summary>
-        /// 鍒濆鍖栬澶囧垪琛ㄦ帶浠�
-        /// </summary>
-        /// <param name="listView"></param>
-        /// <param name="rowInfo"></param>
-        private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo)
-        {
-            //鍏堟竻绌�
-            listView.RemoveAll();
-
-            var listDevice = new List<CommonDevice>();
-            foreach (var mainkeys in rowInfo.listDeviceKeys)
-            {
-                var device = LocalDevice.Current.GetDevice(mainkeys);
-                if (device != null)
-                {
-                    listDevice.Add(device);
-                }
-            }
-
-            HdlThreadLogic.Current.RunMain(() =>
-            {
-                var listContr = new List<Controls.DeviceRowCommon>();
-                foreach (var device in listDevice)
-                {
-                    Controls.DeviceRowCommon cardContr = null;
-                    //绐楀笜
-                    if (device.Type == DeviceType.WindowCoveringDevice)
-                    {
-                        cardContr = new Controls.DeviceCurtainRowControl(listView.rowSpace / 2);
-                    }
-                    //缁х數鍣�
-                    else if (device.Type == DeviceType.OnOffOutput)
-                    {
-                        cardContr = new Controls.DeviceRelayRowControl(listView.rowSpace / 2);
-                    }
-                    //绌烘皵寮�鍏�
-                    else if (device.Type == DeviceType.AirSwitch)
-                    {
-                        cardContr = new Controls.DeviceAirSwitchRowControl(listView.rowSpace / 2);
-                    }
-                    //绌鸿皟
-                    else if (device.Type == DeviceType.Thermostat)
-                    {
-                        cardContr = new Controls.DeviceAcRowControl(listView.rowSpace / 2);
-                    }
-                    //褰╃伅(璋冨厜鍣�)
-                    else if (device.Type == DeviceType.DimmableLight)
-                    {
-                        cardContr = new Controls.DeviceColorLightRowControl(listView.rowSpace / 2);
-                    }
-                    //浼犳劅鍣�
-                    else if (device.Type == DeviceType.IASZone)
-                    {
-                        cardContr = new Controls.DeviceSensorRowControl(listView.rowSpace / 2);
-                    }
-                    //娓╂箍搴�
-                    else if (device.Type == DeviceType.TemperatureSensor)
-                    {
-                        cardContr = new Controls.DeviceTemperatureRowControl(listView.rowSpace / 2);
-                    }
-                    //闂ㄩ攣
-                    else if (device.Type == DeviceType.DoorLock)
-                    {
-                        cardContr = new Controls.DeviceDoorLockRowControl(listView.rowSpace / 2);
-                    }
-                    //鏃犳硶璇嗗埆
-                    else
-                    {
-                        cardContr = new Controls.DeviceRowCommon(listView.rowSpace / 2);
-                        //娌℃湁鐘舵�佸姛鑳�
-                        cardContr.hadStatuFunction = false;
-                    }
-
-                    //鍒濆鍖栧崱鐗�
-                    listView.AddChidren(cardContr);
-                    cardContr.InitControl(device);
-                    //鎺т欢璁板綍鍒扮紦瀛樹腑
-                    this.dicDeviceRowControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
-                    //鍔犵紦瀛�,鐒跺悗鍙戝懡浠�
-                    listContr.Add(cardContr);
-                }
-                HdlThreadLogic.Current.RunThread(() =>
-                {
-                    for (int i = 0; i < listContr.Count; i++)
-                    {
-                        if (listView.Parent == null)
-                        {
-                            return;
-                        }
-                        System.Threading.Thread.Sleep(20);
-                        //鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
-                        listContr[i].SendStatuComand();
-                    }
-
-                }, ShowErrorMode.NO);
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 鍦烘櫙鍒嗘敮___________________________
-
-        /// <summary>
-        /// 鍒锋柊鍦烘櫙鍒嗘敮鎺т欢
-        /// </summary>
-        /// <param name="room"></param>
-        private void RefreshSceneView(Room room)
-        {
-            var listScene = new List<SceneUI>();
-            foreach (var sceneId in room.ListSceneId)
-            {
-                var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
-                if (scene != null)
-                {
-                    listScene.Add(scene);
-                }
-            }
-            if (listScene.Count == 0)
-            {
-                this.ShowNoSceneTip();
-                return;
-            }
-
-            var dicSceneContr = new Dictionary<int, SceneCategoryView>();
-            var listview = new VerticalListControl();
-            functionSceneBodyView.AddChidren(listview);
-            foreach (var scene in listScene)
-            {
-                //鍦烘櫙鍗$墖鎺т欢
-                var sceneView = new SceneCategoryView();
-                listview.AddChidren(sceneView);
-                sceneView.InitControl(scene, room);
-
-                dicSceneContr[scene.Id] = sceneView;
-            }
-            HdlThreadLogic.Current.RunThread(() =>
-            {
-                //鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
-                this.GetAllDelayScene(dicSceneContr, listview);
-            }, ShowErrorMode.NO);
-        }
-
-        /// <summary>
-        /// 鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
-        /// </summary>
-        /// <param name="dicSceneContr"></param>
-        private async void GetAllDelayScene(Dictionary<int, SceneCategoryView> dicSceneContr, VerticalListControl listview)
-        {
-            //璇诲彇鍏ㄩ儴鐨勫欢鏃舵椂闂�
-            var result = await Scene.CatDelaySceneAsync();
-            if (result == null || result.catDelaySceneResponseData == null ||
-                result.catDelaySceneResponseData.DelayScenesList.Count == 0)
-            {
-                //鍑洪敊涓嶉笩瀹�
-                return;
-            }
-
-            string hourText = Language.StringByID(R.MyInternationalizationString.Hour);
-            string minuText = Language.StringByID(R.MyInternationalizationString.Minute);
-            string secondText = Language.StringByID(R.MyInternationalizationString.Second);
-
-            foreach (var data in result.catDelaySceneResponseData.DelayScenesList)
-            {
-                if (dicSceneContr.ContainsKey(data.ScenesId) == false)
-                {
-                    //褰撳墠鐨勭晫闈㈡病鏈夋樉绀鸿繖涓満鏅�
-                    continue;
-                }
-                var seceneContr = dicSceneContr[data.ScenesId];
-                //淇濆瓨缂撳瓨鏃堕棿
-                seceneContr.scene.RemainTime = data.RemainTime;
-                int remainTime = data.RemainTime;
-                if (remainTime <= 0)
-                {
-                    continue;
-                }
-                HdlThreadLogic.Current.RunThread(() =>
-                {
-                    //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
-                    HdlSceneLogic.Current.StartDelayTimeThread(seceneContr.scene);
-                    while (remainTime > 0 && this.Parent != null)
-                    {
-                        System.Threading.Thread.Sleep(1000);
-                        Application.RunOnMainThread(() =>
-                        {
-                            seceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText));
-                        });
-                        remainTime--;
-                    }
-                    Application.RunOnMainThread(() =>
-                    {
-                        if (listview.Parent != null)
-                        {
-                            seceneContr.SetTimeImage();
-                            //寮�鍚疞oading鐗规晥
-                            seceneContr.StartLoadingApreal();
-                        }
-                    });
-                });
-            }
-        }
-
-        /// <summary>
-        /// 鏄剧ず娌℃湁鍦烘櫙
-        /// </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()
-            {
-                Y = noFunction.Bottom + Application.GetRealHeight(32),
-                Height = Application.GetRealHeight(200),
-                Width = Application.GetRealWidth(700),
-                Gravity = Gravity.CenterHorizontal,
-                Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}", "\r\n"),
-                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
-                TextAlignment = TextAlignment.Center,
-                IsMoreLines = true
-            };
-            functionSceneBodyView.AddChidren(noScenceTip);
-        }
-
-
-        #endregion
-
-        #region 鈻� 涓�鑸澶囩姸鎬佷笂鎶__________________
-
-        /// <summary>
-        /// 娣诲姞涓�鑸澶囩姸鎬佷笂鎶ヤ簨浠�
-        /// </summary>
-        private void AddNormalDeviceReportEvent()
-        {
-            //璁惧灞炴�т笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
-            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) =>
-            {
-                HdlThreadLogic.Current.RunMain(() =>
-                {
-                    //澶勭悊涓�鑸澶囩殑涓婃姤鏁版嵁
-                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
-                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
-                    {
-                        //鍒锋柊鍗$墖淇℃伅
-                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
-                        this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
-                    }
-                }, ShowErrorMode.NO);
-            });
-
-            //璁惧鍦ㄧ嚎涓婃姤(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
-            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceOnline", ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤, (report) =>
-            {
-                HdlThreadLogic.Current.RunMain(() =>
-                {
-                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
-                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
-                    {
-                        //鍒锋柊鍗$墖鐘舵��
-                        this.dicDeviceRowControl[mainKeys].SetRowOnlineStatu(report.IsOnline == 1);
-                        return;
-                    }
-
-                }, ShowErrorMode.NO);
-            });
-
-            //璁惧鎺у埗鍙嶉涓婃姤
-            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceRespone", ReceiveComandDiv.A鑺傜偣鎺у埗鍙嶉, (report) =>
-            {
-                HdlThreadLogic.Current.RunMain(() =>
-                {
-                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
-                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
-                    {
-                        //璁惧鍗$墖
-                        var deviceCardContr = this.dicDeviceRowControl[mainKeys];
-                        //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
-                        deviceCardContr.SetHadGetResponeResultStatu();
-                    }
-
-                }, ShowErrorMode.NO);
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 浼犳劅鍣ㄧ姸鎬佷笂鎶____________________
-
-        /// <summary>
-        /// 娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
-        /// </summary>
-        private void AddSensorDeviceReportEvent()
-        {
-            //浼犳劅鍣ㄤ笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
-            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) =>
-            {
-                HdlThreadLogic.Current.RunMain(() =>
-                {
-                    //澶勭悊浼犳劅鍣ㄤ笂鎶ユ暟鎹�
-                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
-                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
-                    {
-                        //鏈湴璁惧瀵硅薄
-                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
-                        //鍒锋柊鍗$墖淇℃伅
-                        this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
-                    }
-
-                }, ShowErrorMode.NO);
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 鏁村悎璁惧___________________________
-
-        /// <summary>
-        /// 鑾峰彇鍒嗙粍鍚庣殑璁惧
-        /// </summary>
-        /// <returns></returns>
-        private Dictionary<int, DeviceRowInfo> GetAllGroupDevice(Common.Room room)
-        {
-            //鍏ㄩ儴鐨勮澶�
-            var listDevice = HdlRoomLogic.Current.GetRoomListDevice(room);
-            //鏍规嵁璁惧鎵�灞炵被鍨嬫帓搴�
-            listDevice = LocalDevice.Current.SortDeviceByBelongType(listDevice);
-            var dic = new Dictionary<int, DeviceRowInfo>();
-            foreach (var device in listDevice)
-            {
-                var typeInfo = LocalDevice.Current.GetDeviceBelongEnumInfo(device);
-                //鎸夋墍灞濱D鍒嗙粍
-                if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
-                {
-                    dic[typeInfo.BeloneTextId] = new DeviceRowInfo();
-                    string path1 = string.Empty;
-                    string path2 = string.Empty;
-                    //鑾峰彇鍥剧墖
-                    LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
-                    dic[typeInfo.BeloneTextId].IconPath = path1;
-                    dic[typeInfo.BeloneTextId].IconPathSelected = path2;
-                    dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
-                }
-                dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
-            }
-            return dic;
-        }
-
-        #endregion
-
-        #region 鈻� 鐣岄潰鍏抽棴___________________________
-
-        /// <summary>
-        /// 鐣岄潰鍏抽棴
-        /// </summary>
-        public override void CloseFormBefore()
-        {
-            //鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
-            instance = null;
-
-            base.CloseFormBefore();
-        }
-
-        #endregion
-
-        #region 鈻� 涓�鑸柟娉昣__________________________
-
-        /// <summary>
-        /// 鑾峰彇鏃堕棿鐨勭炕璇戞枃鏈�
-        /// </summary>
-        /// <param name="second"></param>
-        /// <param name="hourText">灏忔椂鐨勬枃鏈�</param>
-        /// <param name="minuText">鍒嗙殑鏂囨湰</param>
-        /// <param name="secondText">绉掔殑鏂囨湰</param>
-        /// <returns></returns>
-        private string GetTimeString(int second, string hourText, string minuText, string secondText)
-        {
-            string timeStr = string.Empty;
-            int hour = second / 3600;
-            int minu = second % 3600 / 60;
-            int sec = second % 60;
-            if (hour > 0)
-            {
-                timeStr += hour + hourText;
-            }
-            if (minu > 0)
-            {
-                timeStr += minu + minuText;
-            }
-            if (sec > 0)
-            {
-                timeStr += sec + secondText;
-            }
-            return timeStr;
-        }
-
-        /// <summary>
-        /// 娣诲姞鍦烘櫙(閮洩鍩庣殑浠g爜)
-        /// </summary>
-        private void Add_Scene()
-        {
-            var scene = new Device.Category.CategoryAddScene();
-            UserView.HomePage.Instance.AddChidren(scene);
-            UserView.HomePage.Instance.PageIndex += 1;
-            scene.Show();
-            scene.AddAction = () =>
-            {
-                //鍒锋柊bodyView
-                this.RefreshBodyView();
-            };
-        }
-
-        /// <summary>
-        /// 娣诲姞鑷姩鍖�(閮洩鍩庣殑浠g爜)
-        /// </summary>
-        private void Add_Automation()
-        {
-            //new涓�涓柊閫昏緫瀵硅薄锛�
-            Common.Logic.CurrentLogic = new Common.Logic();
-            Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
-            Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
-            var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage();
-            UserView.HomePage.Instance.AddChidren(addLogicPage);
-            UserView.HomePage.Instance.PageIndex += 1;
-            addLogicPage.Show();
-        }
-
-        #endregion
-
-        #region 鈻� 缁撴瀯浣揰____________________________
-
-        /// <summary>
-        /// 璁惧琛屼俊鎭�
-        /// </summary>
-        private class DeviceRowInfo
-        {
-            /// <summary>
-            /// 鏂囨湰ID,鐩墠鐢ㄦ潵鍋氫富閿�
-            /// </summary>
-            public int TextId = 0;
-            /// <summary>
-            /// 鍥炬爣
-            /// </summary>
-            public string IconPath = string.Empty;
-            /// <summary>
-            /// 鍥炬爣
-            /// </summary>
-            public string IconPathSelected = string.Empty;
-            /// <summary>
-            /// 璁惧鍥炶矾涓婚敭
-            /// </summary>
-            public List<string> listDeviceKeys = new List<string>();
-        }
-
-        #endregion
-
-        #region 鈼� 鑷姩鍖朹_________________________
-
-        /// <summary>
-        /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
-        /// </summary>
-        private void ShowAutotion()
-        {
-            // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
-            #region   ---鎺ㄨ崘妯℃澘鐨勭粍浠�
-            //鎺ㄨ崘妯℃澘鑳屾櫙鎺т欢
-            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),
-
-            };
-            functionSceneAutoBodyView.AddChidren(bjFrameLayout);
-            bjFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
-            //鍥炬爣鎺т欢
-            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,
-                TextSize = 15,
-            };
-            bjFrameLayout.AddChidren(recommendtextBtn);
-            //鎺ㄨ崘妯℃澘寮�鍏虫帶浠�
-            var recommendswitchBtn = new Button
-            {
-                Width = Application.GetRealWidth(104),
-                Height = Application.GetRealHeight(63),
-                UnSelectedImagePath = "ZigeeLogic/logicclose.png",
-                SelectedImagePath = "ZigeeLogic/logicopen.png",
-                X = bjFrameLayout.Width - Application.GetRealWidth(104 + 58),
-                Gravity = Gravity.CenterVertical,
-            };
-            bjFrameLayout.AddChidren(recommendswitchBtn);
-            #endregion
-            //榛樿鎺ㄨ崘妯℃澘宸﹀彸鍙粦鎺т欢
-            var scenehorizontalScrol = new HorizontalScrolViewLayout
-            {
-                Width = Application.GetRealWidth(1080 - 58),
-                X = Application.GetRealWidth(58),
-                Y = bjFrameLayout.Bottom + Application.GetRealHeight(30),
-                Height = Application.GetRealHeight(0),
-            };
-            functionSceneAutoBodyView.AddChidren(scenehorizontalScrol);
-            //鏄剧ず鑷姩鍖栧垪琛ㄤ笂涓嬪彲婊戞帶浠�
-            var logicScrolView = new VerticalRefreshLayout//VerticalScrolViewLayout
-            {
-                Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
-                //BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,/
-                X = Application.GetRealWidth(58),
-                Y = scenehorizontalScrol.Bottom,
-            };
-            functionSceneAutoBodyView.AddChidren(logicScrolView);
-            logicScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
-            bool no = false;
-            //鏄剧ず榛樿妯℃澘鐨勭晫闈簨浠�
-            recommendswitchBtn.MouseUpEventHandler += (sender, e) =>
-            {
-                int Yheight = 0;
-                recommendswitchBtn.IsSelected = !recommendswitchBtn.IsSelected;
-                scenehorizontalScrol.RemoveAll();
-                if (recommendswitchBtn.IsSelected)
-                {
-                    no = true;
-                    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,
-                            TextSize = 14,
-                        };
-                        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;
-                                //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext);
-                                var addLogicPage = new Device.Logic.AddLogicPage();
-                                HomePage.Instance.AddChidren(addLogicPage);
-                                HomePage.Instance.PageIndex += 1;
-                                addLogicPage.Show();
-                            }
-                            else
-                            {
-
-                                Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
-                                //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext);
-                                Device.Logic.TemplatePage templatePage = new Device.Logic.TemplatePage();
-                                Device.Logic.TemplatePage.s = logiciocnBtn.Tag.ToString();
-                                HomePage.Instance.AddChidren(templatePage);
-                                HomePage.Instance.PageIndex += 1;
-                                templatePage.Show();
-                            }
-                        };
-                        logiciocnBtn.MouseUpEventHandler += iconclick;
-                        logicnameBtn.MouseUpEventHandler += iconclick;
-                    }
-                }
-                else
-                {
-                    no = false;
-                    scenehorizontalScrol.Height = Application.GetRealHeight(0);
-                    Yheight = 0;
-                }
-                logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight;
-                logicScrolView.Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight;
-                Automationview(logicScrolView, no);
-            };
-            //涓嬫媺鍒锋柊鑷姩鍖栧垪琛ㄧ殑浜嬩欢
-            logicScrolView.BeginHeaderRefreshingAction += () =>
-            {
-                //閲嶆柊鍒锋柊logic鍒楄〃
-                Common.Logic.LogicList.Clear();
-                Read(logicScrolView, no);
-                //鍏抽棴鍒锋柊View锛�
-                logicScrolView.EndHeaderRefreshing();
-            };
-
-            Read(logicScrolView, no);
-
-        }
-        /// <summary>
-        /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱
-        /// </summary>
-        /// <param name="logicScrolView"></param>
-        private async void Read(VerticalRefreshLayout logicScrolView, bool no)
-        {
-            CommonPage.Loading.Start();
-            if (Common.Logic.LogicList.Count == 0)
-            {
-                var Idlist = await Device.Logic.Send.GetLogicId(0);
-                if (Idlist.Count != 0)
-                {
-                    var listlogic = await Device.Logic.Send.ReadList(Idlist.Count, 0);
-                    //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆�
-                    for (int j = 0; j < listlogic.Count; j++)
-                    {
-                        var logic = listlogic[j];
-                        if (logic.LogicType != 0)
-                        {
-                            continue;
-                        }
-                        Common.Logic.LogicList.Add(logic);
-                    }
-                }
-            }
-            //鑷姩鍖�
-            Automationview(logicScrolView, no);
-            CommonPage.Loading.Hide();
-        }
-        /// <summary>
-        /// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈�
-        /// </summary>
-        /// <param name="refresview">Refresview.</param>
-        private async void Automationview(VerticalRefreshLayout refresview, bool no)
-        {
-            refresview.RemoveAll();
-            if (Common.Logic.LogicList.Count == 0 && no == false)
-            {
-                //灏辨槸涓轰簡鏄剧ず寮曞娣诲姞鍥炬爣;
-                refresview.BackgroundColor = 0x00000000;
-                var noFrameLayout = new FrameLayout
-                {
-                    Height = Application.GetRealHeight(434 + 200 + 32 + 160),
-                    //BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
-                };
-                refresview.AddChidren(noFrameLayout);
-
-
-                var noIconBtn = new Button
-                {
-                    Y = Application.GetRealHeight(160),
-                    Width = Application.GetMinRealAverage(756),
-                    Height = Application.GetMinRealAverage(434),
-                    UnSelectedImagePath = "Item/NoFunction.png",
-                    X = Application.GetRealWidth(104),
-                };
-                noFrameLayout.AddChidren(noIconBtn);
-
-                var noTextBtn = new Button()
-                {
-                    Y = noIconBtn.Bottom,
-                    Height = Application.GetRealHeight(200) + Application.GetRealHeight(32),
-                    Width = Application.GetRealWidth(700),
-                    //Gravity = Gravity.CenterHorizontal,
-                    Text = Language.StringByID(MyInternationalizationString.automationaddtext).Replace("{\\r\\n}", "\r\n"),
-                    TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
-                    TextAlignment = TextAlignment.Center,
-                    IsMoreLines = true,
-                    X = Application.GetRealWidth(190 - 58),
-                };
-                noFrameLayout.AddChidren(noTextBtn);
-
-            }
-            else
-            {
-
-                if (Common.Logic.LogicList.Count == 0 && no == true)
-                {
-                    ///鏀瑰彉婊戝姩view鐨勯鑹诧紱
-                    refresview.BackgroundColor = 0x00000000;
-                }
-                else
-                {
-                    refresview.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
-                }
-            }
-            foreach (var logic in Common.Logic.LogicList)
-            {
-
-
-                var logicRowlayout = new RowLayout
-                {
-                    Height = Application.GetRealHeight(190 + 30),
-                    Width = Application.GetRealWidth(1080 - 58),
-                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    SubViewWidth = Application.GetRealWidth(184),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
-
-                };
-                refresview.AddChidren(logicRowlayout);
-
-
-
-                var logicnameBtn = new Button
-                {
-                    Height = Application.GetRealHeight(58),
-                    Width = Application.GetRealWidth(350),
-                    Text = logic.LogicName,
-                    X = Application.GetRealWidth(12 + 46),
-                    Y = Application.GetRealHeight(30),
-                    TextAlignment = TextAlignment.CenterLeft,
-                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                    TextSize = 14,
-                };
-                logicRowlayout.AddChidren(logicnameBtn);
-
-
-                var logicswitchBtn = new Button
-                {
-                    Width = Application.GetRealWidth(104),
-                    Height = Application.GetRealHeight(63),
-                    UnSelectedImagePath = "ZigeeLogic/logicclose.png",
-                    SelectedImagePath = "ZigeeLogic/logicopen.png",
-                    X = logicRowlayout.Width - Application.GetRealWidth(104 + 58),
-                    Y = Application.GetRealHeight(58 + 30 + 9 + 30),
-
-                };
-                logicRowlayout.AddChidren(logicswitchBtn);
-
-
-
-                logicswitchBtn.MouseUpEventHandler += (sender1, e1) =>
-                {
-                    logicswitchBtn.IsSelected = !logicswitchBtn.IsSelected;
-                    if (logicswitchBtn.IsSelected)
-                    {
-                        //閫昏緫寮�
-                        logic.IsEnable = 1;
-                        StatusColor(logic, logicRowlayout, 1);
-                    }
-                    else
-                    {
-                        //閫昏緫鍏�
-                        logic.IsEnable = 0;
-                        StatusColor(logic, logicRowlayout, 0);
-                    }
-                    Device.Logic.Send.LogicControlSwitch(logic);
-                    //Logic.Send.AddModifyLogic(logic);
-                };
-                if (logic.IsEnable == 1)
-                {
-                    logicswitchBtn.IsSelected = true;
-                    StatusColor(logic, logicRowlayout, 1);
-                }
-                else if (logic.IsEnable == 0)
-                {
-                    logicswitchBtn.IsSelected = false;
-                    StatusColor(logic, logicRowlayout, 0);
-                }
-                ///缂栬緫
-                var edit = new Button
-                {
-                    BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
-                    Text = Language.StringByID(MyInternationalizationString.edit),
-                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
-                };
-                logicRowlayout.AddRightView(edit);
-                edit.MouseUpEventHandler += (sender, e) =>
-                {
-                    Common.Logic.CurrentLogic = logic;
-                    var logicCommunalPage = new Device.Logic.LogicCommunalPage();
-                    HomePage.Instance.AddChidren(logicCommunalPage);
-                    HomePage.Instance.PageIndex += 1;
-                    logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); });
-
-                };
-
-
-                ///鍒犻櫎
-                var del = new Button
-                {
-                    BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
-                    Text = Language.StringByID(MyInternationalizationString.del),
-                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
-                };
-                logicRowlayout.AddRightView(del);
-                del.MouseUpEventHandler += (sender, e) =>
-                {
-                    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, no);
-                            Device.Logic.Send.DelLogic(logic.LogicId);
-                        }
-                    };
-                    alert.Show();
-
-                };
-                var line = new Button
-                {
-                    Y = Application.GetRealHeight(215),
-                    Height = Application.GetRealHeight(5),
-                    Width = Application.GetRealWidth(1080 - 58),
-                    BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
-                    X = Application.GetRealWidth(58),
-                };
-                logicRowlayout.AddChidren(line);
-            }
-
-        }
-        /// <summary>
-        /// 鏄剧ず鑷姩鍖栬緭鍑哄姛鑳芥ā鍧楀浘鏍囩殑棰滆壊
-        /// </summary>
-        /// <param name="logic"></param>
-        /// <param name="logicRowlayout"></param>
-        /// <param name="intvalue"></param>
-        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),
-                Y = Application.GetRealHeight(30),
-                X = Application.GetRealWidth(365),
-                TextAlignment = TextAlignment.CenterRight,
-                TextColor = ZigbeeColor.Current.LogicListWeekTextColor,
-            };
-            logicRowlayout.AddChidren(logictimeBtn);
-
-            ///鏄剧ず鎵ц鍛ㄦ湡
-            Device.Logic.Method.UpdateWeek(logictimeBtn, logic);
-
-
-            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.GetMinRealAverage(82),
-                    Height = Application.GetMinRealAverage(82),
-                    X = Application.GetRealWidth(58) + Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i),
-                    Y = Application.GetRealHeight(58 + 30 + 30),
-                    Radius = (uint)Application.GetRealHeight(41),
-                    BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
-                };
-                logicRowlayout.AddChidren(typebjBtn);
-
-                var typeIconBtn = new Button
-                {
-                    Width = Application.GetMinRealAverage(58),
-                    Height = Application.GetMinRealAverage(58),
-                    Gravity = Gravity.Center,
-
-                };
-                typebjBtn.AddChidren(typeIconBtn);
-
-                var connectIconBtn = new Button
-                {
-                    Y = typebjBtn.Y + Application.GetRealHeight(35),
-                    X = Application.GetRealWidth(58) + 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;
-
-                }
-            }
-        }
-
-        #endregion
-    }
-}
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using Shared.Phone.UserView;
+using Shared.R;
+using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserCenter;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category
+{
+    /// <summary>
+    /// 鍒嗙被鐨勪富鐣岄潰
+    /// </summary>
+    public class CategoryMainForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// The instance.
+        /// </summary>
+        public static CategoryMainForm instance;
+        /// <summary>
+        /// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView(楂樺害涓鸿澶囪彍鍗曠殑閭d釜鐧借壊鑳屾櫙鐨勪笂閮ㄥ埌灞忓箷搴曢儴)
+        /// </summary>
+        public FrameLayout functionSceneBodyView;
+        /// <summary>
+        /// 涓儴鑳屾櫙bodyView(楂樺害涓哄満鏅姛鑳藉垏鎹㈡帶浠剁殑搴曢儴鍒板睆骞曞簳閮�)
+        /// </summary>
+        public FrameLayout functionSceneAutoBodyView;
+        /// <summary>
+        /// 鍙充笂瑙掓坊鍔犳寜閽�
+        /// </summary>
+        private IconViewControl btnTopRightAdd = null;
+        /// <summary>
+        /// 妤煎眰鎺т欢
+        /// </summary>
+        private NormalViewControl btnFloorName = null;
+        /// <summary>
+        /// 妤煎眰鍥炬爣鎺т欢
+        /// </summary>
+        private IconViewControl btnFloorIcon = null;
+        /// <summary>
+        /// 璁惧琛屾帶浠�
+        /// </summary>
+        private Dictionary<string, Controls.DeviceRowCommon> dicDeviceRowControl = new Dictionary<string, Controls.DeviceRowCommon>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鏋勯�犳柟娉�
+        /// </summary>
+        public CategoryMainForm()
+        {
+            BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            instance = this;
+        }
+
+        /// <summary>
+        /// 鏄剧ず鐣岄潰--榛樿鍦烘櫙鐣岄潰
+        /// </summary>
+        public void ShowForm()
+        {
+            //鍏堟竻闄ゅ惂
+            this.RemoveAll();
+            //鍒濆鍖栧ご閮ㄦ帶浠�
+            this.InitTopControl();
+            //鍒濆鍖栦腑闂存帶浠�
+            this.InitMidControls();
+            //娣诲姞璁惧鐘舵�佷笂鎶ヤ簨浠�
+            this.AddNormalDeviceReportEvent();
+            //娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
+            this.AddSensorDeviceReportEvent();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧ご閮ㄦ帶浠�
+        /// </summary>
+        private void InitTopControl()
+        {
+            //澶撮儴FrameLayout
+            this.topFrameLayout = new FrameLayout();
+            topFrameLayout.Y = Application.GetRealHeight(104);
+            topFrameLayout.Height = Application.GetRealHeight(127);
+            topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.AddChidren(topFrameLayout);
+            //鏍囬鍒嗙被
+            var btnTitle = new NormalViewControl(300, 95, true);
+            btnTitle.X = ControlCommonResourse.XXLeft;
+            btnTitle.Gravity = Gravity.CenterVertical;
+            btnTitle.TextID = R.MyInternationalizationString.Category;
+            btnTitle.TextSize = 24;
+            btnTitle.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor;
+            btnTitle.IsBold = true;
+            topFrameLayout.AddChidren(btnTitle);
+
+            //鍙充笂瑙掓坊鍔犳寜閽�
+            this.btnTopRightAdd = new IconViewControl(104);
+            btnTopRightAdd.X = Application.GetRealWidth(953);
+            btnTopRightAdd.Gravity = Gravity.CenterVertical;
+            btnTopRightAdd.UnSelectedImagePath = "Item/Add_Category.png";
+            topFrameLayout.AddChidren(btnTopRightAdd);
+            btnTopRightAdd.ButtonClickEvent += (sender, e) =>
+            {
+                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
+                {
+                    //娣诲姞鍦烘櫙
+                    Add_Scene();
+                }
+                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
+                {
+                    //娣诲姞鑷姩鍖�
+                    Add_Automation();
+                }
+            };
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑闂存帶浠�
+        /// </summary>
+        private void InitMidControls()
+        {
+            //搴旇鏄痓ody鍚�
+            this.bodyFrameLayout = new FrameLayout();
+            bodyFrameLayout.Y = topFrameLayout.Bottom;
+            bodyFrameLayout.Height = Application.GetRealHeight(1549);
+            bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.AddChidren(bodyFrameLayout);
+
+            //鍦烘櫙,鍔熻兘,鑷姩鍖栫殑鍒囨崲鎺т欢鐨勫鍣�
+            var frameSwitchBack = new FrameLayout();
+            frameSwitchBack.Height = Application.GetRealHeight(127);
+            bodyFrameLayout.AddChidren(frameSwitchBack);
+
+            //鎷ユ湁妤煎眰鏃�
+            this.btnFloorName = null;
+            this.btnFloorIcon = null;
+            if (Config.Instance.Home.FloorDics.Count > 0)
+            {
+                //妤煎眰鍚�
+                this.btnFloorName = new NormalViewControl(200, 69, true);
+                btnFloorName.X = frameSwitchBack.Width - Application.GetRealWidth(200 + 120);
+                btnFloorName.Y = Application.GetRealHeight(17);
+                btnFloorName.TextAlignment = TextAlignment.CenterRight;
+                btnFloorName.IsBold = true;
+                btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(Config.Instance.Home.CurrentFloorId);
+                frameSwitchBack.AddChidren(btnFloorName);
+                btnFloorName.ButtonClickEvent += (sender, e) =>
+                {
+                    var floors = new Device.Category.SelectFloor();
+                    AddChidren(floors);
+                    floors.Init(580, 330, Direction.Right);
+                    floors.changeFloor = true;
+                    floors.FloorAction += (floorId) =>
+                    {
+                        btnFloorName.Text = Config.Instance.Home.GetFloorNameById(floorId);
+                        HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
+                        //鍒锋柊bodyView
+                        this.RefreshBodyView();
+                    };
+                };
+                //妤煎眰鍥炬爣
+                this.btnFloorIcon = new IconViewControl(69);
+                btnFloorIcon.X = Application.GetRealWidth(950);
+                btnFloorIcon.Y = btnFloorName.Y;
+                btnFloorIcon.UnSelectedImagePath = "Item/Drop_Down.png";
+                frameSwitchBack.AddChidren(btnFloorIcon);
+                btnFloorIcon.ButtonClickEvent += (sender, e) =>
+                {
+                    btnFloorName.ButtonClickEvent?.Invoke(sender, e);
+                };
+            }
+
+            //鐩墠涓嶇煡閬撻儹闆煄鐨勮繖涓叿浣撴斁鍦ㄥ摢涓殑浣嶇疆
+            this.functionSceneAutoBodyView = new FrameLayout();
+            functionSceneAutoBodyView.Y = frameSwitchBack.Bottom;
+            functionSceneAutoBodyView.Height = Application.GetRealHeight(1423);
+            bodyFrameLayout.AddChidren(functionSceneAutoBodyView);
+
+            //鍦烘櫙,鍔熻兘,鑷姩鍖栫殑鍒囨崲鎺т欢
+            var switchContr = new SceneFunctionSwitchControl();
+            switchContr.Width = Application.GetRealWidth(650);
+            switchContr.Gravity = Gravity.CenterVertical;
+            frameSwitchBack.AddChidren(switchContr);
+            var listTitle = new List<string>();
+            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence));
+            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction));
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+            {
+                //鎴愬憳娌℃湁鑷姩鍖�
+                listTitle.Add(Language.StringByID(R.MyInternationalizationString.Automation));
+            }
+            //璁剧疆鍒濆鍊�
+            switchContr.SetDefultIndex(UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex);
+            //閫夋嫨浜嬩欢
+            switchContr.SelectTabEvent += (selectIndex) =>
+            {
+                UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = selectIndex;
+                //鍒锋柊bodyView
+                this.RefreshBodyView();
+            };
+            //寮�濮嬪垵濮嬪寲
+            switchContr.InitControl(listTitle);
+        }
+
+        /// <summary>
+        /// 鍒锋柊bodyView
+        /// </summary>
+        public void RefreshBodyView()
+        {
+            this.functionSceneAutoBodyView.RemoveAll();
+
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                bool floorVisible = true;
+                //鍦烘櫙
+                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
+                {
+                    //鍒濆鍖栨埧闂磋彍鍗�
+                    this.InitRoomMenuControl();
+                    //鏄剧ず鍙充笂瑙掔殑鍔犲彿
+                    this.btnTopRightAdd.Visible = true;
+                }
+                //鍔熻兘
+                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 1)
+                {
+                    //鍒濆鍖栨埧闂磋彍鍗�
+                    this.InitRoomMenuControl();
+                    //闅愯棌鍙充笂瑙掔殑鍔犲彿
+                    this.btnTopRightAdd.Visible = false;
+                }
+                //鑷姩鍖�
+                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
+                {
+                    this.ShowAutotion();
+                    //闅愯棌妤煎眰
+                    floorVisible = false;
+                    //鏄剧ず鍙充笂瑙掔殑鍔犲彿
+                    this.btnTopRightAdd.Visible = true;
+                }
+
+                //淇敼妤煎眰鐨勬樉绀烘晥鏋�
+                if (this.btnFloorName != null)
+                {
+                    this.btnFloorName.Visible = floorVisible;
+                    this.btnFloorIcon.Visible = floorVisible;
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鎴块棿鑿滃崟鎺т欢_______________________
+
+        /// <summary>
+        /// 鍒濆鍖栨埧闂磋彍鍗曟帶浠�
+        /// </summary>
+        private void InitRoomMenuControl()
+        {
+            //褰撳墠妤煎眰鐨勫叏閮ㄦ埧闂�
+            var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
+            //鎴块棿鑿滃崟鎺т欢
+            var roomSwitchContr = new RoomDeviceGroupMenuControl(lisrRoom);
+            roomSwitchContr.Y = Application.GetRealHeight(-55);
+            this.functionSceneAutoBodyView.AddChidren(roomSwitchContr);
+            //璁剧疆鍒濆鍊�
+            roomSwitchContr.SetDefultIndex(HdlRoomLogic.Current.CurrentRoom.Id);
+            //閫夋嫨浜嬩欢
+            roomSwitchContr.SelectRoomEvent += (selectRoom) =>
+            {
+                HdlRoomLogic.Current.CurrentRoom = selectRoom;
+                //鍦烘櫙
+                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
+                {
+                    //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
+                    this.functionSceneBodyView.RemoveAll();
+                    HdlThreadLogic.Current.RunMainInThread(() =>
+                    {
+                        //鍒锋柊鍦烘櫙鍒嗘敮鎺т欢
+                        this.RefreshSceneView(selectRoom);
+                    });
+                }
+                //鍔熻兘
+                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 1)
+                {
+                    //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
+                    this.functionSceneBodyView.RemoveAll();
+                    HdlThreadLogic.Current.RunMainInThread(() =>
+                    {
+                        //鍒锋柊璁惧鍒嗘敮鎺т欢
+                        this.RefreshFunctionView(selectRoom);
+                    });
+                }
+            };
+
+            //鍔熻兘鍜屽満鏅痓odyView
+            this.functionSceneBodyView = new FrameLayout();
+            functionSceneBodyView.Y = roomSwitchContr.Bottom;
+            functionSceneBodyView.Height = functionSceneAutoBodyView.Height - roomSwitchContr.Bottom;
+            functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
+
+            //鎵ц鍒濆鍖� 
+            roomSwitchContr.InitControl();
+        }
+
+        #endregion
+
+        #region 鈻� 鍔熻兘鍒嗘敮___________________________
+
+        /// <summary>
+        /// 鍒锋柊鍔熻兘鍒嗘敮鎺т欢
+        /// </summary>
+        /// <param name="room"></param>
+        private void RefreshFunctionView(Common.Room room)
+        {
+            //鑾峰彇鍒嗙粍鍚庣殑璁惧
+            var dicGroupDevice = this.GetAllGroupDevice(room);
+            if (dicGroupDevice.Count == 0)
+            {
+                this.ShowNoFunctionTip();
+                return;
+            }
+
+            //璁惧鑿滃崟鐨勭櫧鑹茶儗鏅�
+            var functionBack1 = new FrameLayout();
+            functionBack1.X = ControlCommonResourse.XXLeft;
+            functionBack1.Height = Application.GetRealHeight(160);
+            functionBack1.Width = Application.GetRealWidth(1028);
+            functionBack1.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            functionSceneBodyView.AddChidren(functionBack1);
+            functionBack1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
+            var functionBack2 = new FrameLayout();
+            functionBack2.X = ControlCommonResourse.XXLeft;
+            functionBack2.Y = functionBack1.Bottom - Application.GetRealHeight(50);
+            functionBack2.Height = Application.GetRealHeight(279 - 160 + 50);
+            functionBack2.Width = Application.GetRealWidth(1028);
+            functionBack2.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            functionSceneBodyView.AddChidren(functionBack2);
+            functionBack2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+
+            //璁惧鑿滃崟鐨勫乏鍙虫粦鍔ㄧ殑鎺т欢
+            var HorizontalView = new HorizontalScrolViewLayout();
+            HorizontalView.X = Application.GetRealWidth(CommonFormResouce.X_Left);
+            HorizontalView.Height = Application.GetRealHeight(279);
+            HorizontalView.Width = Application.GetRealWidth(1028);
+            functionSceneBodyView.AddChidren(HorizontalView);
+
+            //璁惧鐨勮儗鏅鍣�
+            var frameDeviceBack = new FrameLayout();
+            frameDeviceBack.X = ControlCommonResourse.XXLeft;
+            frameDeviceBack.Y = HorizontalView.Bottom + Application.GetRealHeight(35);
+            frameDeviceBack.BackgroundColor = UserCenterColor.Current.White;
+            frameDeviceBack.Width = bodyFrameLayout.Width;
+            frameDeviceBack.Height = functionSceneBodyView.Height - HorizontalView.Bottom - Application.GetRealHeight(35);
+            frameDeviceBack.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+            functionSceneBodyView.AddChidren(frameDeviceBack);
+
+            //璁惧鍒楄〃鎺т欢
+            var listDeviceView = new VerticalListControl(35);
+            listDeviceView.Y = Application.GetRealHeight(11);
+            listDeviceView.Width = Application.GetRealWidth(1022);
+            listDeviceView.Height = frameDeviceBack.Height - Application.GetRealHeight(11);
+            listDeviceView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+            frameDeviceBack.AddChidren(listDeviceView);
+
+            //涓婁竴娆¢�夋嫨鐨勮彍鍗�
+            MainPage.Controls.DeviceFunctionUnallocatedControl oldSelectContr = null;
+            DeviceRowInfo nowSelectDeviceInfo = null;
+            foreach (int Textid in dicGroupDevice.Keys)
+            {
+                var rowInfo = dicGroupDevice[Textid];
+
+                //璁惧绫诲瀷鐨勫鍣�
+                var devieFrame = new FrameLayout();
+                devieFrame.Width = Application.GetRealWidth(220);
+                HorizontalView.AddChidren(devieFrame);
+
+                //鑿滃崟鍥剧墖鎺т欢
+                var deviceObjContr = new MainPage.Controls.DeviceFunctionUnallocatedControl();
+                devieFrame.AddChidren(deviceObjContr);
+                deviceObjContr.InitControl(Language.StringByID(Textid), rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys);
+                deviceObjContr.ButtonClickEvent += (sender, e) =>
+                {
+                    //閫夋嫨鐨勬槸鍚屼竴涓笢瑗跨殑璇�,涓嶅鐞�
+                    if (nowSelectDeviceInfo.TextId != rowInfo.TextId)
+                    {
+                        //涓婁竴娆$殑鑿滃崟鍙栨秷,鏈鑿滃崟閫夋嫨
+                        oldSelectContr.SetSelectStatu(false);
+                        deviceObjContr.SetSelectStatu(true);
+                        oldSelectContr = deviceObjContr;
+
+                        nowSelectDeviceInfo = rowInfo;
+                        HdlThreadLogic.Current.RunMainInThread(() =>
+                        {
+                            //鍒濆鍖栬澶囧垪琛ㄦ帶浠�
+                            this.InitListDeviceControls(listDeviceView, rowInfo);
+                        });
+                    }
+                };
+
+                if (nowSelectDeviceInfo == null)
+                {
+                    //璁剧疆鍒濆閫夋嫨
+                    nowSelectDeviceInfo = rowInfo;
+                    //璁板綍鍒濆閫夋嫨鐨勮彍鍗曟帶浠�
+                    oldSelectContr = deviceObjContr;
+                    deviceObjContr.SetSelectStatu(true);
+                }
+            }
+            if (nowSelectDeviceInfo != null)
+            {
+                //鍒濆鍖栭粯璁ょ殑璁惧鍒楄〃鎺т欢
+                this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo);
+            }
+        }
+
+        /// <summary>
+        /// 鎻愮ず娌℃湁鍔熻兘
+        /// </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()
+            {
+                Y = noFunction.Bottom + Application.GetRealHeight(32),
+                Height = Application.GetRealHeight(200),
+                Width = Application.GetRealWidth(700),
+                Gravity = Gravity.CenterHorizontal,
+                Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}", "\r\n"),
+                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
+                TextAlignment = TextAlignment.Center,
+                IsMoreLines = true
+            };
+            functionSceneBodyView.AddChidren(noFunctionTip);
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栬澶囧垪琛ㄦ帶浠禵________________
+
+        /// <summary>
+        /// 鍒濆鍖栬澶囧垪琛ㄦ帶浠�
+        /// </summary>
+        /// <param name="listView"></param>
+        /// <param name="rowInfo"></param>
+        private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo)
+        {
+            //鍏堟竻绌�
+            listView.RemoveAll();
+
+            var listDevice = new List<CommonDevice>();
+            foreach (var mainkeys in rowInfo.listDeviceKeys)
+            {
+                var device = LocalDevice.Current.GetDevice(mainkeys);
+                if (device != null)
+                {
+                    listDevice.Add(device);
+                }
+            }
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                var listContr = new List<Controls.DeviceRowCommon>();
+                foreach (var device in listDevice)
+                {
+                    Controls.DeviceRowCommon cardContr = null;
+                    //绐楀笜
+                    if (device.Type == DeviceType.WindowCoveringDevice)
+                    {
+                        cardContr = new Controls.DeviceCurtainRowControl(listView.rowSpace / 2);
+                    }
+                    //缁х數鍣�
+                    else if (device.Type == DeviceType.OnOffOutput)
+                    {
+                        cardContr = new Controls.DeviceRelayRowControl(listView.rowSpace / 2);
+                    }
+                    //绌烘皵寮�鍏�
+                    else if (device.Type == DeviceType.AirSwitch)
+                    {
+                        cardContr = new Controls.DeviceAirSwitchRowControl(listView.rowSpace / 2);
+                    }
+                    //绌鸿皟
+                    else if (device.Type == DeviceType.Thermostat)
+                    {
+                        cardContr = new Controls.DeviceAcRowControl(listView.rowSpace / 2);
+                    }
+                    //褰╃伅(璋冨厜鍣�)
+                    else if (device.Type == DeviceType.DimmableLight)
+                    {
+                        cardContr = new Controls.DeviceColorLightRowControl(listView.rowSpace / 2);
+                    }
+                    //浼犳劅鍣�
+                    else if (device.Type == DeviceType.IASZone)
+                    {
+                        cardContr = new Controls.DeviceSensorRowControl(listView.rowSpace / 2);
+                    }
+                    //娓╂箍搴�
+                    else if (device.Type == DeviceType.TemperatureSensor)
+                    {
+                        cardContr = new Controls.DeviceTemperatureRowControl(listView.rowSpace / 2);
+                    }
+                    //闂ㄩ攣
+                    else if (device.Type == DeviceType.DoorLock)
+                    {
+                        cardContr = new Controls.DeviceDoorLockRowControl(listView.rowSpace / 2);
+                    }
+                    //鏃犳硶璇嗗埆
+                    else
+                    {
+                        cardContr = new Controls.DeviceRowCommon(listView.rowSpace / 2);
+                        //娌℃湁鐘舵�佸姛鑳�
+                        cardContr.hadStatuFunction = false;
+                    }
+
+                    //鍒濆鍖栧崱鐗�
+                    listView.AddChidren(cardContr);
+                    cardContr.InitControl(device);
+                    //鎺т欢璁板綍鍒扮紦瀛樹腑
+                    this.dicDeviceRowControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
+                    //鍔犵紦瀛�,鐒跺悗鍙戝懡浠�
+                    listContr.Add(cardContr);
+                }
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    for (int i = 0; i < listContr.Count; i++)
+                    {
+                        if (listView.Parent == null)
+                        {
+                            return;
+                        }
+                        System.Threading.Thread.Sleep(20);
+                        //鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
+                        listContr[i].SendStatuComand();
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鍦烘櫙鍒嗘敮___________________________
+
+        /// <summary>
+        /// 鍒锋柊鍦烘櫙鍒嗘敮鎺т欢
+        /// </summary>
+        /// <param name="room"></param>
+        private void RefreshSceneView(Room room)
+        {
+            var listScene = new List<SceneUI>();
+            foreach (var sceneId in room.ListSceneId)
+            {
+                var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
+                if (scene != null)
+                {
+                    listScene.Add(scene);
+                }
+            }
+            if (listScene.Count == 0)
+            {
+                this.ShowNoSceneTip();
+                return;
+            }
+
+            var dicSceneContr = new Dictionary<int, SceneCategoryView>();
+            var listview = new VerticalListControl();
+            functionSceneBodyView.AddChidren(listview);
+            foreach (var scene in listScene)
+            {
+                //鍦烘櫙鍗$墖鎺т欢
+                var sceneView = new SceneCategoryView();
+                listview.AddChidren(sceneView);
+                sceneView.InitControl(scene, room);
+
+                dicSceneContr[scene.Id] = sceneView;
+            }
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+                this.GetAllDelayScene(dicSceneContr, listview);
+            }, ShowErrorMode.NO);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+        /// </summary>
+        /// <param name="dicSceneContr"></param>
+        private async void GetAllDelayScene(Dictionary<int, SceneCategoryView> dicSceneContr, VerticalListControl listview)
+        {
+            //璇诲彇鍏ㄩ儴鐨勫欢鏃舵椂闂�
+            var result = await Scene.CatDelaySceneAsync();
+            if (result == null || result.catDelaySceneResponseData == null ||
+                result.catDelaySceneResponseData.DelayScenesList.Count == 0)
+            {
+                //鍑洪敊涓嶉笩瀹�
+                return;
+            }
+
+            string hourText = Language.StringByID(R.MyInternationalizationString.Hour);
+            string minuText = Language.StringByID(R.MyInternationalizationString.Minute);
+            string secondText = Language.StringByID(R.MyInternationalizationString.Second);
+
+            foreach (var data in result.catDelaySceneResponseData.DelayScenesList)
+            {
+                if (dicSceneContr.ContainsKey(data.ScenesId) == false)
+                {
+                    //褰撳墠鐨勭晫闈㈡病鏈夋樉绀鸿繖涓満鏅�
+                    continue;
+                }
+                var seceneContr = dicSceneContr[data.ScenesId];
+                //淇濆瓨缂撳瓨鏃堕棿
+                seceneContr.scene.RemainTime = data.RemainTime;
+                int remainTime = data.RemainTime;
+                if (remainTime <= 0)
+                {
+                    continue;
+                }
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+                    HdlSceneLogic.Current.StartDelayTimeThread(seceneContr.scene);
+                    while (remainTime > 0 && this.Parent != null)
+                    {
+                        System.Threading.Thread.Sleep(1000);
+                        Application.RunOnMainThread(() =>
+                        {
+                            seceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText));
+                        });
+                        remainTime--;
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (listview.Parent != null)
+                        {
+                            seceneContr.SetTimeImage();
+                            //寮�鍚疞oading鐗规晥
+                            seceneContr.StartLoadingApreal();
+                        }
+                    });
+                });
+            }
+        }
+
+        /// <summary>
+        /// 鏄剧ず娌℃湁鍦烘櫙
+        /// </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()
+            {
+                Y = noFunction.Bottom + Application.GetRealHeight(32),
+                Height = Application.GetRealHeight(200),
+                Width = Application.GetRealWidth(700),
+                Gravity = Gravity.CenterHorizontal,
+                Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}", "\r\n"),
+                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
+                TextAlignment = TextAlignment.Center,
+                IsMoreLines = true
+            };
+            functionSceneBodyView.AddChidren(noScenceTip);
+        }
+
+
+        #endregion
+
+        #region 鈻� 涓�鑸澶囩姸鎬佷笂鎶__________________
+
+        /// <summary>
+        /// 娣诲姞涓�鑸澶囩姸鎬佷笂鎶ヤ簨浠�
+        /// </summary>
+        private void AddNormalDeviceReportEvent()
+        {
+            //璁惧灞炴�т笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //澶勭悊涓�鑸澶囩殑涓婃姤鏁版嵁
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鍒锋柊鍗$墖淇℃伅
+                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+                        this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
+                    }
+                }, ShowErrorMode.NO);
+            });
+
+            //璁惧鍦ㄧ嚎涓婃姤(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceOnline", ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鍒锋柊鍗$墖鐘舵��
+                        this.dicDeviceRowControl[mainKeys].SetRowOnlineStatu(report.IsOnline == 1);
+                        return;
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+
+            //璁惧鎺у埗鍙嶉涓婃姤
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceRespone", ReceiveComandDiv.A鑺傜偣鎺у埗鍙嶉, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
+                    {
+                        //璁惧鍗$墖
+                        var deviceCardContr = this.dicDeviceRowControl[mainKeys];
+                        //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+                        deviceCardContr.SetHadGetResponeResultStatu();
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 浼犳劅鍣ㄧ姸鎬佷笂鎶____________________
+
+        /// <summary>
+        /// 娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
+        /// </summary>
+        private void AddSensorDeviceReportEvent()
+        {
+            //浼犳劅鍣ㄤ笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //澶勭悊浼犳劅鍣ㄤ笂鎶ユ暟鎹�
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鏈湴璁惧瀵硅薄
+                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+                        //鍒锋柊鍗$墖淇℃伅
+                        this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鏁村悎璁惧___________________________
+
+        /// <summary>
+        /// 鑾峰彇鍒嗙粍鍚庣殑璁惧
+        /// </summary>
+        /// <returns></returns>
+        private Dictionary<int, DeviceRowInfo> GetAllGroupDevice(Common.Room room)
+        {
+            //鍏ㄩ儴鐨勮澶�
+            var listDevice = HdlRoomLogic.Current.GetRoomListDevice(room);
+            //鏍规嵁璁惧鎵�灞炵被鍨嬫帓搴�
+            listDevice = LocalDevice.Current.SortDeviceByBelongType(listDevice);
+            var dic = new Dictionary<int, DeviceRowInfo>();
+            foreach (var device in listDevice)
+            {
+                var typeInfo = LocalDevice.Current.GetDeviceBelongEnumInfo(device);
+                //鎸夋墍灞濱D鍒嗙粍
+                if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
+                {
+                    dic[typeInfo.BeloneTextId] = new DeviceRowInfo();
+                    string path1 = string.Empty;
+                    string path2 = string.Empty;
+                    //鑾峰彇鍥剧墖
+                    LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
+                    dic[typeInfo.BeloneTextId].IconPath = path1;
+                    dic[typeInfo.BeloneTextId].IconPathSelected = path2;
+                    dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
+                }
+                dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
+            }
+            return dic;
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            //鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
+            instance = null;
+
+            base.CloseFormBefore();
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鑾峰彇鏃堕棿鐨勭炕璇戞枃鏈�
+        /// </summary>
+        /// <param name="second"></param>
+        /// <param name="hourText">灏忔椂鐨勬枃鏈�</param>
+        /// <param name="minuText">鍒嗙殑鏂囨湰</param>
+        /// <param name="secondText">绉掔殑鏂囨湰</param>
+        /// <returns></returns>
+        private string GetTimeString(int second, string hourText, string minuText, string secondText)
+        {
+            string timeStr = string.Empty;
+            int hour = second / 3600;
+            int minu = second % 3600 / 60;
+            int sec = second % 60;
+            if (hour > 0)
+            {
+                timeStr += hour + hourText;
+            }
+            if (minu > 0)
+            {
+                timeStr += minu + minuText;
+            }
+            if (sec > 0)
+            {
+                timeStr += sec + secondText;
+            }
+            return timeStr;
+        }
+
+        /// <summary>
+        /// 娣诲姞鍦烘櫙(閮洩鍩庣殑浠g爜)
+        /// </summary>
+        private void Add_Scene()
+        {
+            var scene = new Device.Category.CategoryAddScene();
+            UserView.HomePage.Instance.AddChidren(scene);
+            UserView.HomePage.Instance.PageIndex += 1;
+            scene.Show();
+            scene.AddAction = () =>
+            {
+                //鍒锋柊bodyView
+                this.RefreshBodyView();
+            };
+        }
+
+        /// <summary>
+        /// 娣诲姞鑷姩鍖�(閮洩鍩庣殑浠g爜)
+        /// </summary>
+        private void Add_Automation()
+        {
+            //new涓�涓柊閫昏緫瀵硅薄锛�
+            Common.Logic.CurrentLogic = new Common.Logic();
+            Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
+            Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
+            var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage();
+            UserView.HomePage.Instance.AddChidren(addLogicPage);
+            UserView.HomePage.Instance.PageIndex += 1;
+            addLogicPage.Show();
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 璁惧琛屼俊鎭�
+        /// </summary>
+        private class DeviceRowInfo
+        {
+            /// <summary>
+            /// 鏂囨湰ID,鐩墠鐢ㄦ潵鍋氫富閿�
+            /// </summary>
+            public int TextId = 0;
+            /// <summary>
+            /// 鍥炬爣
+            /// </summary>
+            public string IconPath = string.Empty;
+            /// <summary>
+            /// 鍥炬爣
+            /// </summary>
+            public string IconPathSelected = string.Empty;
+            /// <summary>
+            /// 璁惧鍥炶矾涓婚敭
+            /// </summary>
+            public List<string> listDeviceKeys = new List<string>();
+        }
+
+        #endregion
+
+        #region 鈼� 鑷姩鍖朹_________________________
+
+        /// <summary>
+        /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
+        /// </summary>
+        private void ShowAutotion()
+        {
+            // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+            #region   ---鎺ㄨ崘妯℃澘鐨勭粍浠�
+            //鎺ㄨ崘妯℃澘鑳屾櫙鎺т欢
+            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),
+
+            };
+            functionSceneAutoBodyView.AddChidren(bjFrameLayout);
+            bjFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+            //鍥炬爣鎺т欢
+            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,
+                TextSize = 15,
+            };
+            bjFrameLayout.AddChidren(recommendtextBtn);
+            //鎺ㄨ崘妯℃澘寮�鍏虫帶浠�
+            var recommendswitchBtn = new Button
+            {
+                Width = Application.GetRealWidth(104),
+                Height = Application.GetRealHeight(63),
+                UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                SelectedImagePath = "ZigeeLogic/logicopen.png",
+                X = bjFrameLayout.Width - Application.GetRealWidth(104 + 58),
+                Gravity = Gravity.CenterVertical,
+            };
+            bjFrameLayout.AddChidren(recommendswitchBtn);
+            #endregion
+            //榛樿鎺ㄨ崘妯℃澘宸﹀彸鍙粦鎺т欢
+            var scenehorizontalScrol = new HorizontalScrolViewLayout
+            {
+                Width = Application.GetRealWidth(1080 - 58),
+                X = Application.GetRealWidth(58),
+                Y = bjFrameLayout.Bottom + Application.GetRealHeight(30),
+                Height = Application.GetRealHeight(0),
+            };
+            functionSceneAutoBodyView.AddChidren(scenehorizontalScrol);
+            //鏄剧ず鑷姩鍖栧垪琛ㄤ笂涓嬪彲婊戞帶浠�
+            var logicScrolView = new VerticalRefreshLayout//VerticalScrolViewLayout
+            {
+                Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
+                //BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,/
+                X = Application.GetRealWidth(58),
+                Y = scenehorizontalScrol.Bottom,
+            };
+            functionSceneAutoBodyView.AddChidren(logicScrolView);
+            logicScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+            bool no = false;
+            //鏄剧ず榛樿妯℃澘鐨勭晫闈簨浠�
+            recommendswitchBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                int Yheight = 0;
+                recommendswitchBtn.IsSelected = !recommendswitchBtn.IsSelected;
+                scenehorizontalScrol.RemoveAll();
+                if (recommendswitchBtn.IsSelected)
+                {
+                    no = true;
+                    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,
+                            TextSize = 14,
+                        };
+                        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;
+                                //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext);
+                                var addLogicPage = new Device.Logic.AddLogicPage();
+                                HomePage.Instance.AddChidren(addLogicPage);
+                                HomePage.Instance.PageIndex += 1;
+                                addLogicPage.Show();
+                            }
+                            else
+                            {
+
+                                Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
+                                //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext);
+                                Device.Logic.TemplatePage templatePage = new Device.Logic.TemplatePage();
+                                Device.Logic.TemplatePage.s = logiciocnBtn.Tag.ToString();
+                                HomePage.Instance.AddChidren(templatePage);
+                                HomePage.Instance.PageIndex += 1;
+                                templatePage.Show();
+                            }
+                        };
+                        logiciocnBtn.MouseUpEventHandler += iconclick;
+                        logicnameBtn.MouseUpEventHandler += iconclick;
+                    }
+                }
+                else
+                {
+                    no = false;
+                    scenehorizontalScrol.Height = Application.GetRealHeight(0);
+                    Yheight = 0;
+                }
+                logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight;
+                logicScrolView.Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight;
+                Automationview(logicScrolView, no);
+            };
+            //涓嬫媺鍒锋柊鑷姩鍖栧垪琛ㄧ殑浜嬩欢
+            logicScrolView.BeginHeaderRefreshingAction += () =>
+            {
+                //閲嶆柊鍒锋柊logic鍒楄〃
+                Common.Logic.LogicList.Clear();
+                Read(logicScrolView, no);
+                //鍏抽棴鍒锋柊View锛�
+                logicScrolView.EndHeaderRefreshing();
+            };
+
+            Read(logicScrolView, no);
+
+        }
+        /// <summary>
+        /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱
+        /// </summary>
+        /// <param name="logicScrolView"></param>
+        private async void Read(VerticalRefreshLayout logicScrolView, bool no)
+        {
+            CommonPage.Loading.Start();
+            if (Common.Logic.LogicList.Count == 0)
+            {
+                var Idlist = await Device.Logic.Send.GetLogicId(0);
+                if (Idlist.Count != 0)
+                {
+                    var listlogic = await Device.Logic.Send.ReadList(Idlist.Count, 0);
+                    //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆�
+                    for (int j = 0; j < listlogic.Count; j++)
+                    {
+                        var logic = listlogic[j];
+                        if (logic.LogicType != 0)
+                        {
+                            continue;
+                        }
+                        Common.Logic.LogicList.Add(logic);
+                    }
+                }
+            }
+            //鑷姩鍖�
+            Automationview(logicScrolView, no);
+            CommonPage.Loading.Hide();
+        }
+        /// <summary>
+        /// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈�
+        /// </summary>
+        /// <param name="refresview">Refresview.</param>
+        private async void Automationview(VerticalRefreshLayout refresview, bool no)
+        {
+            refresview.RemoveAll();
+            if (Common.Logic.LogicList.Count == 0 && no == false)
+            {
+                //灏辨槸涓轰簡鏄剧ず寮曞娣诲姞鍥炬爣;
+                refresview.BackgroundColor = 0x00000000;
+                var noFrameLayout = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(434 + 200 + 32 + 160),
+                    //BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                };
+                refresview.AddChidren(noFrameLayout);
+
+
+                var noIconBtn = new Button
+                {
+                    Y = Application.GetRealHeight(160),
+                    Width = Application.GetMinRealAverage(756),
+                    Height = Application.GetMinRealAverage(434),
+                    UnSelectedImagePath = "Item/NoFunction.png",
+                    X = Application.GetRealWidth(104),
+                };
+                noFrameLayout.AddChidren(noIconBtn);
+
+                var noTextBtn = new Button()
+                {
+                    Y = noIconBtn.Bottom,
+                    Height = Application.GetRealHeight(200) + Application.GetRealHeight(32),
+                    Width = Application.GetRealWidth(700),
+                    //Gravity = Gravity.CenterHorizontal,
+                    Text = Language.StringByID(MyInternationalizationString.automationaddtext).Replace("{\\r\\n}", "\r\n"),
+                    TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
+                    TextAlignment = TextAlignment.Center,
+                    IsMoreLines = true,
+                    X = Application.GetRealWidth(190 - 58),
+                };
+                noFrameLayout.AddChidren(noTextBtn);
+
+            }
+            else
+            {
+
+                if (Common.Logic.LogicList.Count == 0 && no == true)
+                {
+                    ///鏀瑰彉婊戝姩view鐨勯鑹诧紱
+                    refresview.BackgroundColor = 0x00000000;
+                }
+                else
+                {
+                    refresview.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
+                }
+            }
+
+            foreach (var logic in Common.Logic.LogicList)
+            {
+                var fLayout = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(190 + 30),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                };
+                refresview.AddChidren(fLayout);
+
+                var logicRowlayout = new RowLayout
+                {
+                    Height = Application.GetRealHeight(190 + 30),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    SubViewWidth = Application.GetRealWidth(184),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
+
+                };
+                fLayout.AddChidren(logicRowlayout);
+
+                var logicnameBtn = new Button
+                {
+                    Height = Application.GetRealHeight(58),
+                    Width = Application.GetRealWidth(350),
+                    Text = logic.LogicName,
+                    X = Application.GetRealWidth(12 + 46),
+                    Y = Application.GetRealHeight(30),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    TextSize = 14,
+                };
+                logicRowlayout.AddChidren(logicnameBtn);
+
+                var logicswitchBtn = new Button
+                {
+                    Width = Application.GetRealWidth(104),
+                    Height = Application.GetRealHeight(63),
+                    UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                    SelectedImagePath = "ZigeeLogic/logicopen.png",
+                    X = logicRowlayout.Width - Application.GetRealWidth(104 + 58),
+                    Y = Application.GetRealHeight(58 + 30 + 9 + 30),
+
+                };
+                logicRowlayout.AddChidren(logicswitchBtn);
+
+                logicswitchBtn.MouseUpEventHandler += (sender1, e1) =>
+                {
+                    logicswitchBtn.IsSelected = !logicswitchBtn.IsSelected;
+                    if (logicswitchBtn.IsSelected)
+                    {
+                        //閫昏緫寮�
+                        logic.IsEnable = 1;
+                        StatusColor(logic, logicRowlayout, 1);
+                    }
+                    else
+                    {
+                        //閫昏緫鍏�
+                        logic.IsEnable = 0;
+                        StatusColor(logic, logicRowlayout, 0);
+                    }
+                    Device.Logic.Send.LogicControlSwitch(logic);
+                    //Logic.Send.AddModifyLogic(logic);
+                };
+                if (logic.IsEnable == 1)
+                {
+                    logicswitchBtn.IsSelected = true;
+                    StatusColor(logic, logicRowlayout, 1);
+                }
+                else if (logic.IsEnable == 0)
+                {
+                    logicswitchBtn.IsSelected = false;
+                    StatusColor(logic, logicRowlayout, 0);
+                }
+                ///缂栬緫
+                var edit = new Button
+                {
+                    BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
+                    Text = Language.StringByID(MyInternationalizationString.edit),
+                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                };
+                logicRowlayout.AddRightView(edit);
+                edit.MouseUpEventHandler += (sender, e) =>
+                {
+                    Common.Logic.CurrentLogic = logic;
+                    var logicCommunalPage = new Device.Logic.LogicCommunalPage();
+                    HomePage.Instance.AddChidren(logicCommunalPage);
+                    HomePage.Instance.PageIndex += 1;
+                    logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); });
+
+                };
+
+                ///鍒犻櫎
+                var del = new Button
+                {
+                    BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
+                    Text = Language.StringByID(MyInternationalizationString.del),
+                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                };
+                logicRowlayout.AddRightView(del);
+                del.MouseUpEventHandler += (sender, e) =>
+                {
+                    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, no);
+                            Device.Logic.Send.DelLogic(logic.LogicId);
+                        }
+                    };
+                    alert.Show();
+
+                };
+                var line = new Button
+                {
+                    Y = fLayout.Height - 1,
+                    Height = 1,
+                    X = Application.GetRealWidth(58),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                };
+                fLayout.AddChidren(line);
+            }
+
+        }
+        /// <summary>
+        /// 鏄剧ず鑷姩鍖栬緭鍑哄姛鑳芥ā鍧楀浘鏍囩殑棰滆壊
+        /// </summary>
+        /// <param name="logic"></param>
+        /// <param name="logicRowlayout"></param>
+        /// <param name="intvalue"></param>
+        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),
+                Y = Application.GetRealHeight(30),
+                X = Application.GetRealWidth(365),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = ZigbeeColor.Current.LogicListWeekTextColor,
+            };
+            logicRowlayout.AddChidren(logictimeBtn);
+
+            ///鏄剧ず鎵ц鍛ㄦ湡
+            Device.Logic.Method.UpdateWeek(logictimeBtn, logic);
+
+
+            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.GetMinRealAverage(82),
+                    Height = Application.GetMinRealAverage(82),
+                    X = Application.GetRealWidth(58) + Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i),
+                    Y = Application.GetRealHeight(58 + 30 + 30),
+                    Radius = (uint)Application.GetRealHeight(41),
+                    BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                };
+                logicRowlayout.AddChidren(typebjBtn);
+
+                var typeIconBtn = new Button
+                {
+                    Width = Application.GetMinRealAverage(58),
+                    Height = Application.GetMinRealAverage(58),
+                    Gravity = Gravity.Center,
+
+                };
+                typebjBtn.AddChidren(typeIconBtn);
+
+                var connectIconBtn = new Button
+                {
+                    Y = typebjBtn.Y + Application.GetRealHeight(35),
+                    X = Application.GetRealWidth(58) + 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;
+
+                }
+            }
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0