From 944b87b6bcccb095cd73f13f4410fb20faf48f74 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期三, 25 十二月 2019 11:21:06 +0800
Subject: [PATCH] 2019.12.25

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |  533 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 396 insertions(+), 137 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 84aa6f9..5759c49 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -42,15 +42,6 @@
         public void ShowForm(string deviceMac)
         {
             this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
-            //鎺掑簭
-            this.listNewDevice.Sort((obj1, obj2) =>
-            {
-                if (obj1.DeviceEpoint > obj2.DeviceEpoint)
-                {
-                    return 1;
-                }
-                return -1;
-            });
 
             this.listDeviceType.Clear();
             foreach (var device in listNewDevice)
@@ -83,14 +74,15 @@
             this.ClearBodyFrame();
 
             //鍒濆鍖栨甯�
-            this.InitFrameTable();
+            var tableContr = new InformationEditorControl();
+            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 369, 1368);
 
             //鍥剧墖
-            var btnPic = new DeviceInfoIconControl(listNewDevice[0]);
+            var btnPic = new DeviceInfoIconControl();
             btnPic.Y = Application.GetRealHeight(92);
             btnPic.Gravity = Gravity.CenterHorizontal;
             bodyFrameLayout.AddChidren(btnPic);
-            btnPic.InitControl();
+            btnPic.InitControl(listNewDevice[0]);
 
             //璁惧澶囨敞
             string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote);
@@ -103,14 +95,14 @@
             btnNote.txtInput.FinishInputEvent += () =>
             {
                 string oldName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
-                if (btnNote.Text.Trim() == string.Empty)
+                if (btnNote.Text == string.Empty)
                 {
                     btnNote.Text = oldName;
                 }
-                if (oldName != btnNote.Text.Trim())
+                if (oldName != btnNote.Text)
                 {
                     //淇敼鍚嶅瓧
-                    this.DeviceReName(btnNote.Text.Trim(), false);
+                    this.DeviceReName(btnNote.Text, false);
                 }
             };
 
@@ -124,17 +116,45 @@
             //鍒掔嚎
             btnType.AddBottomLine();
 
+            //鎵�灞炲尯鍩�
+            var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
+            listview.AddChidren(rowBeloneArea);
+            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), this.listNewDevice);
+            //搴曠嚎
+            rowBeloneArea.AddBottomLine();
+
+            var listCheck = new List<string>();
+            rowBeloneArea.SelectRoomEvent += (roomKeys) =>
+            {
+                foreach (var device in this.listNewDevice)
+                {
+                    var room = Room.CurrentRoom.GetRoomByDevice(device);
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
+                    if (room == null)
+                    {
+                        //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃�
+                        listCheck.Add(mainKeys);
+                        Room.CurrentRoom.ChangedRoom(device, roomKeys);
+                    }
+                    else if (listCheck.Contains(mainKeys) == true)
+                    {
+                        //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇�
+                        Room.CurrentRoom.ChangedRoom(device, roomKeys);
+                    }
+                }
+                //淇濆瓨璁惧鎴块棿绱㈠紩
+                Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys);
+            };
+
             //娣诲姞鍏ㄩ儴鑿滃崟
             this.AddAllMenuRow();
 
+            //鍒濆鍖栨甯冨畬鎴�
+            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
+            tableContr = null;
+
             //淇濆瓨
             var btnFinish = new BottomClickButton();
-            //鍊熺敤Y杞村潗鏍�(璁╄繖涓尯鍩熶笉鑳界偣鍑昏彍鍗�)
-            var frameBack = new FrameLayout();
-            frameBack.Y = btnFinish.Yaxis;
-            frameBack.Height = bodyFrameLayout.Height - btnFinish.Yaxis;
-            bodyFrameLayout.AddChidren(frameBack);
-
             btnFinish.TextID = R.MyInternationalizationString.uSave;
             bodyFrameLayout.AddChidren(btnFinish);
             btnFinish.ButtonClickEvent += (sender, e) =>
@@ -155,53 +175,6 @@
                     this.CloseForm();
                 }
             };
-
-            var realHeight = listview.GetChildren(0).Height * listview.ChildrenCount;
-            if (bodyFrameLayout.Height - btnFinish.Yaxis + realHeight > listview.Height)
-            {
-                //淇冧娇琚尅浣忕殑鑿滃崟鑳藉鍚戜笂婊戝姩
-                var frameTemp = new FrameLayout();
-                frameTemp.Height = frameBack.Height + Application.GetRealHeight(115);
-                listview.AddChidren(frameTemp);
-            }
-        }
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖栨甯僟________________________
-
-        /// <summary>
-        /// 鍒濆鍖栨甯�
-        /// </summary>
-        private void InitFrameTable()
-        {
-            //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
-            int halfRoundHeigth = Application.GetRealHeight(116) / 2;
-            //寮у害鐨勫渾
-            var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false);
-            btnRound.Y = Application.GetRealHeight(369);
-            btnRound.BackgroundColor = UserCenterColor.Current.White;
-            btnRound.Radius = (uint)halfRoundHeigth;
-            bodyFrameLayout.AddChidren(btnRound);
-            //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙(瑕嗙洊寮у害鐨勫渾鐨勫崐杈�)
-            var detailBackFrame = new FrameLayout();
-            detailBackFrame.Y = btnRound.Bottom - btnRound.Height / 2;
-            detailBackFrame.Height = Application.GetRealHeight(1368);//楂樺害灏辨槸瑕佸畠瓒呰繃
-            detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(detailBackFrame);
-
-            //淇℃伅缂栬緫
-            var btnTile = new NormalViewControl(800, 60, true);
-            btnTile.X = ControlCommonResourse.XXLeft;
-            btnTile.TextSize = 15;
-            btnTile.TextColor = UserCenterColor.Current.TextColor2;
-            btnTile.TextID = R.MyInternationalizationString.uInfoEditor;
-            detailBackFrame.AddChidren(btnTile);
-
-            this.listview = new VerticalListControl(12);
-            listview.Y = btnTile.Bottom + Application.GetRealHeight(17);
-            listview.Height = Application.GetRealHeight(1368) - halfRoundHeigth - btnTile.Bottom - Application.GetRealHeight(17);
-            detailBackFrame.AddChidren(listview);
         }
 
         #endregion
@@ -227,8 +200,19 @@
                     this.AddDoorLocksTimeRow();
                 }
             }
+            else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.AirConditioner_ZbGateway)
+            {
+                //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤)
+                this.AddIndoorUnitSettionRow();
+            }
             else
             {
+                //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�)
+                this.AddPirSensorBindRow();
+                //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤)
+                this.AddDirectionAndLimitRow();
+                //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤)
+                this.AddHandPullControlRow();
                 //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
                 this.AddPanelSettionRow();
                 //娣诲姞銆愬姛鑳借缃�戣
@@ -267,9 +251,55 @@
                 btnRow.AddRightArrow();
                 //搴曠嚎
                 btnRow.AddBottomLine();
-                btnRow.ButtonClickEvent += (sender, e) =>
-                {
-                };
+                var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock;
+                btnRow.ButtonClickEvent += async (sender, e) =>
+                 {
+                     if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+                     {
+                         Action action = null;
+                         Action actionNone = null;
+                         action = () =>
+                         {
+                             var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
+                             Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
+                             Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                             userManagement.Show();
+                         };
+                         actionNone = () =>
+                         {
+                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+                         };
+                         HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
+                     }
+                     else
+                     {
+                         CommonPage.Loading.Start("");
+                         var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+                         if (result == false)
+                         {
+                             Action action = null;
+                             Action actionNone = null;
+                             action = () =>
+                             {
+                                 var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
+                                 Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
+                                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                                 userManagement.Show();
+                             };
+                             actionNone = () =>
+                             {
+                                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+                             };
+                             HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
+
+                         }
+                         else
+                         {
+                             this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+                         }
+                         CommonPage.Loading.Hide();
+                     }
+                 };
             }
         }
 
@@ -291,18 +321,60 @@
                 btnRow.UseClickStatu = false;
                 listview.AddChidren(btnRow);
                 btnRow.AddLeftCaption(caption, 600);
-                //鍚戝彸鍥炬爣
-                var btnswitch = btnRow.AddMostRightEmptyIcon(104, 63);
-                btnRow.ChangedChidrenBindMode(btnswitch, ChidrenBindMode.NotBind);
-                btnswitch.UnSelectedImagePath = "Item/Switch.png";
-                btnswitch.SelectedImagePath = "Item/SwitchSelected.png";
+                //寮�鍏冲浘鏍�
+                var btnswitch = btnRow.AddMostRightSwitchIcon();
                 //搴曠嚎
                 btnRow.AddBottomLine();
 
-                btnswitch.ButtonClickEvent += (sender, e) =>
+                var doorLock = (ZigBee.Device.DoorLock)listNewDevice[0];
+                if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false)
                 {
-                    btnswitch.IsSelected = !btnswitch.IsSelected;
-                };
+                    btnswitch.IsSelected = true;
+                }
+
+                btnswitch.ButtonClickEvent += async (sender, e) =>
+                 {
+                     if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+                     {
+                         if (btnswitch.IsSelected == true)
+                         {
+                             btnswitch.IsSelected = false;
+                             doorLock.RemoteUnlockPassword = string.Empty;
+                             return;
+                         }
+                         var frame = new DoorLock.DoorLockCommonLayout();
+                         frame.RemotePasswordDialog((ZigBee.Device.DoorLock)listNewDevice[0], btnswitch.btnIcon);
+                         frame = null;
+                     }
+                     else
+                     {
+                         var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+                         if (result == false)
+                         {
+                             var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
+                             if (result1 == true)
+                             {
+                                 if (btnswitch.IsSelected == true)
+                                 {
+                                     btnswitch.IsSelected = false;
+                                     doorLock.RemoteUnlockPassword = string.Empty;
+                                     return;
+                                 }
+                                 var frame = new DoorLock.DoorLockCommonLayout();
+                                 frame.RemotePasswordDialog((ZigBee.Device.DoorLock)listNewDevice[0], btnswitch.btnIcon);
+                                 frame = null;
+                             }
+                             else
+                             {
+                                 this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
+                             }
+                         }
+                         else
+                         {
+                             this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+                         }
+                     }
+                 };
             }
         }
 
@@ -327,9 +399,32 @@
                 btnRow.AddRightArrow();
                 //搴曠嚎
                 btnRow.AddBottomLine();
-                btnRow.ButtonClickEvent += (sender, e) =>
-                {
-                };
+                var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock;
+                btnRow.ButtonClickEvent += async (sender, e) =>
+                 {
+                     if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+                     {
+                         var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "DoorLockTime");
+                         Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
+                         Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                         tempPage.Show();
+                     }
+                     else
+                     {
+                         var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+                         if (result == false)
+                         {
+                             var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "DoorLockTime");
+                             Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
+                             Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                             tempPage.Show();
+                         }
+                         else
+                         {
+                             this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+                         }
+                     }
+                 };
             }
         }
 
@@ -359,45 +454,11 @@
             btnFunction.ButtonClickEvent += (sender, e) =>
             {
                 var form = new DevicePanel.PanelButtonSettionForm();
-                form.AddForm(listNewDevice[0].DeviceAddr);
+                form.AddForm(listNewDevice[0]);
             };
         }
 
         #endregion
-
-        #region 鈻� 鍔熻兘璁剧疆(閫氱敤)_____________________
-
-        /// <summary>
-        /// 娣诲姞銆愬姛鑳借缃�戣
-        /// </summary>
-        private void AddFunctionSettionRow()
-        {
-            //鍔熻兘璁剧疆
-            string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp);
-            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
-            listview.AddChidren(btnFunction);
-            btnFunction.AddLeftCaption(caption, 600);
-            //鍚戝彸鍥炬爣
-            btnFunction.AddRightArrow();
-            //搴曠嚎
-            btnFunction.AddBottomLine();
-            btnFunction.ButtonClickEvent += (sender, e) =>
-            {
-                //娌充笢鐨勯潰鏉胯澶�
-                if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true)
-                {
-                    var form = new DevicePanel.PanelFunctionSettionForm();
-                    form.AddForm(listNewDevice[0].DeviceAddr);
-                }
-                else
-                {
-                    var form = new DeviceRelay.DeviceFunctionSettionForm();
-                    form.AddForm(listNewDevice[0].DeviceAddr);
-                }
-            };
-        }
-
-        #endregion;
 
         #region 鈻� 骞叉帴鐐硅缃�(骞叉帴鐐�)_________________
 
@@ -429,7 +490,214 @@
             btnBackLight.AddBottomLine();
             btnBackLight.ButtonClickEvent += (sender, e) =>
             {
-                var form = new DeviceRelay.DeviceDryContactSettionForm();
+                var form = new DeviceDryContactSettionForm();
+                form.AddForm(listNewDevice[0]);
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 缁戝畾鐩爣(pir浼犳劅鍣ㄤ笓鐢�)____________
+
+        /// <summary>
+        /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�)
+        /// </summary>
+        private void AddPirSensorBindRow()
+        {
+            if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir)
+            {
+                return;
+            }
+            //缁戝畾鐩爣
+            string caption = Language.StringByID(R.MyInternationalizationString.uBindTargets);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new DevicePirSensor.PirSensorBindTargetSettionForm();
+                form.AddForm((IASZone)this.listNewDevice[0]);
+            };
+        }
+
+        #endregion;
+
+        #region 鈻� 鍔熻兘璁剧疆(閫氱敤)_____________________
+
+        /// <summary>
+        /// 娣诲姞銆愬姛鑳借缃�戣
+        /// </summary>
+        private void AddFunctionSettionRow()
+        {
+            //鍙湁鍥炶矾鏁板ぇ浜�1鎵嶈兘鏈夎繖涓彍鍗�
+            if (Common.LocalDevice.Current.GetDevicesCountByMac(listNewDevice[0].DeviceAddr) == 1)
+            {
+                return;
+            }
+
+            //鍔熻兘璁剧疆
+            string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                //娌充笢鐨勯潰鏉胯澶�
+                if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true)
+                {
+                    var form = new DevicePanel.PanelFunctionSettionForm();
+                    form.AddForm(listNewDevice[0]);
+                }
+                else
+                {
+                    var form = new DeviceFunctionSettionForm();
+                    form.AddForm(listNewDevice[0], false);
+                }
+            };
+        }
+
+        #endregion;
+
+        #region 鈻� 鏂瑰悜涓庨檺浣�(绐楀笜)___________________
+
+        /// <summary>
+        /// 娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(绐楀笜涓撶敤)
+        /// </summary>
+        private void AddDirectionAndLimitRow()
+        {
+            if (deviceEnumInfo.BeloneType != DeviceBeloneType.A绐楀笜)
+            {
+                return;
+            }
+            var deviceCurtain = (Rollershade)this.listNewDevice[0];
+            if (deviceCurtain.WcdType != 4 && deviceCurtain.WcdType != 0)
+            {
+                //寮�鍚堝笜,鍗峰笜涓撶敤
+                return;
+            }
+
+            //鏂瑰悜涓庨檺浣�
+            string caption = Language.StringByID(R.MyInternationalizationString.uDirectionAndLimit);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                if (deviceCurtain.WcdType == 4)
+                {
+                    var form = new DeviceCurtain.AutoOpenDirectionAndLimitSettionForm();
+                    form.AddForm(deviceCurtain);
+                }
+                else if (deviceCurtain.WcdType == 0)
+                {
+                    var form = new DeviceCurtain.SiphonateDirectionAndLimitSettionForm();
+                    form.AddForm(deviceCurtain);
+                }
+            };
+        }
+
+        #endregion;
+
+        #region 鈻� 鎵嬫媺鎺у埗(寮�鍚堝笜)___________________
+
+        /// <summary>
+        /// 娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤)
+        /// </summary>
+        private void AddHandPullControlRow()
+        {
+            if (deviceEnumInfo.BeloneType != DeviceBeloneType.A绐楀笜)
+            {
+                return;
+            }
+            var deviceCurtain = (Rollershade)this.listNewDevice[0];
+            if (deviceCurtain.WcdType != 4)
+            {
+                //寮�鍚堝笜涓撶敤
+                return;
+            }
+
+            //鎵嬫媺鎺у埗
+            string caption = Language.StringByID(R.MyInternationalizationString.uHandPullControl);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            btnFunction.UseClickStatu = false;
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //寮�鍏冲浘鏍�
+            var btnSwitch = btnFunction.AddMostRightSwitchIcon();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnSwitch.ButtonClickEvent += async (sender, e) =>
+            {
+                //鍒囨崲妯″紡
+                var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, !btnSwitch.IsSelected);
+                if (result == true)
+                {
+                    btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                }
+            };
+
+            //娣诲姞灞炴�т笂鎶ョ洃鍚�
+            string mainkeys = LocalDevice.Current.GetDeviceMainKeys(this.listNewDevice[0]);
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("HandPullControl", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (device) =>
+            {
+                string checkKey = LocalDevice.Current.GetDeviceMainKeys(device);
+                if (mainkeys != checkKey || device.DeviceStatusReport.CluterID != 258)
+                {
+                    return;
+                }
+                foreach (var attriBute in device.DeviceStatusReport.AttriBute)
+                {
+                    if (attriBute.AttributeId == 23)
+                    {
+                        //鎵嬫媺鎺у埗
+                        if (0 < (attriBute.AttriButeData & 0x04))
+                        {
+                            btnSwitch.IsSelected = true;
+                        }
+                    }
+                }
+            });
+            //鍙戦�佸懡浠�
+            deviceCurtain.ReadCurtainDirectionAndMode();
+        }
+
+        #endregion;
+
+        #region 鈻� 瀹ゅ唴鏈鸿缃�(绌鸿皟)___________________
+
+        /// <summary>
+        /// 娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤)
+        /// </summary>
+        private void AddIndoorUnitSettionRow()
+        {
+            if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+            {
+                return;
+            }
+            //瀹ゅ唴鏈鸿缃�
+            string caption = Language.StringByID(R.MyInternationalizationString.uIndoorUnitSettion);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new DeviceAirConditioner.IndoorUnitListForm();
                 form.AddForm(listNewDevice[0].DeviceAddr);
             };
         }
@@ -489,7 +757,7 @@
             btnNewVersion.UnSelectedImagePath = "Item/NewVersion.png";
             btnNewVersion.Visible = false;
             btnNewVersion.X = Application.GetRealWidth(242);
-            btnNewVersion.Y= Application.GetRealHeight(23);
+            btnNewVersion.Y = Application.GetRealHeight(23);
             rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEventOnly);
 
             rowUpDate.ButtonClickEvent += (sender, e) =>
@@ -510,7 +778,7 @@
         /// <param name="oTADevice">ota璁惧</param>
         private void SetDeviceVersionInfo(PicViewControl btnNewVersion, OTADevice oTADevice)
         {
-            new System.Threading.Thread(async () =>
+            HdlThreadLogic.Current.RunThread(async () =>
             {
                 bool receiveImageInfo = false;
                 //璁剧疆璁惧鍏ㄩ儴鐨勯暅鍍忎俊鎭�
@@ -548,8 +816,7 @@
                         }
                     });
                 }
-            })
-            { IsBackground = true }.Start();
+            });
         }
 
         #endregion
@@ -560,7 +827,7 @@
         /// 璁惧閲嶅懡鍚�
         /// </summary>
         /// <param name="i_deviceName">deviceName.</param>
-        private async void DeviceReName(string i_deviceName,bool closeForm)
+        private async void DeviceReName(string i_deviceName, bool closeForm)
         {
             //寮�鍚繘搴︽潯
             this.ShowProgressBar();
@@ -621,7 +888,7 @@
             {
                 menuCount = 2;
             }
-            var frame = new TopRightMenuControl(this, menuCount);
+            var frame = new TopRightMenuControl(menuCount);
             if (canTest == true)
             {
                 //瀹氫綅
@@ -653,23 +920,14 @@
         /// </summary>
         private async void DoDeleteDevice()
         {
-            //寮�鍚繘搴︽潯
-            this.ShowProgressBar();
             //鍒犻櫎璁惧
             bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
-
-            this.CloseProgressBar();
-
             if (result == false)
             {
                 return;
             }
-
-            Application.RunOnMainThread(() =>
-            {
-                //鍏抽棴鐣岄潰
-                this.CloseForm();
-            });
+            //鍏抽棴鐣岄潰
+            this.CloseForm();
         }
         #endregion
 
@@ -678,12 +936,13 @@
         /// <summary>
         /// 鐢婚潰鍏抽棴
         /// </summary>
-        public override void CloseForm()
+        public override void CloseFormBefore()
         {
+            HdlGatewayReceiveLogic.Current.RemoveEvent("HandPullControl");
             //绉婚櫎鑾峰彇璁惧纭欢淇℃伅鐨勭洃鍚嚎绋�
             HdlDeviceHardInfoLogic.Current.RemoveDeviceHardInfoThread(listNewDevice[0]);
 
-            base.CloseForm();
+            base.CloseFormBefore();
         }
 
         #endregion

--
Gitblit v1.8.0