From 18b93d511dc764b469d7c4a7e755f7274f89cdb4 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 27 四月 2020 17:55:14 +0800
Subject: [PATCH] 2020-4-27-1

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |  130 +++++++++++++++++++++++++++---------------
 1 files changed, 83 insertions(+), 47 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 083edd8..59fbecb 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -20,7 +20,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalListControl listview = null;
+        private FrameListControl listview = null;
         /// <summary>
         /// 璁惧鐨勮澶囩被鍨�
         /// </summary>
@@ -81,15 +81,19 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            var listBackControl = new VerticalFrameControl();
+            listBackControl.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listBackControl);
+
             //鍒濆鍖栨甯�
             var tableContr = new InformationEditorControl();
-            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 369, 1368);
+            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1368);
 
             //鍥剧墖
             var btnPic = new DeviceInfoIconControl();
             btnPic.Y = Application.GetRealHeight(92);
             btnPic.Gravity = Gravity.CenterHorizontal;
-            bodyFrameLayout.AddChidren(btnPic);
+            listBackControl.frameTable.AddChidren(btnPic);
             btnPic.InitControl(listNewDevice[0]);
 
             //璁惧澶囨敞
@@ -124,21 +128,29 @@
             //鍒掔嚎
             btnType.AddBottomLine();
 
-            //鎵�灞炲尯鍩�
+            //瀹夎浣嶇疆
             var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
             listview.AddChidren(rowBeloneArea);
-            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), this.listNewDevice);
+            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.listNewDevice);
             //搴曠嚎
             rowBeloneArea.AddBottomLine();
 
             var listCheck = new List<string>();
             rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
+                //閫夋嫨鏈垎閰嶆椂,娓呯┖
+                if (roomKeys == string.Empty) { listCheck = new List<string>(); }
                 foreach (var device in this.listNewDevice)
                 {
                     if (device is OTADevice)
                     {
                         //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶�
+                        continue;
+                    }
+                    if (roomKeys == string.Empty)
+                    {
+                        //濡傛灉閫夋嫨鐨勬槸鏈垎閰嶏紝鍒欏畠鐨勫叏閮ㄥ洖璺棤鏉′欢鍏ㄩ儴娓呯┖鎴块棿
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                         continue;
                     }
                     var room = HdlRoomLogic.Current.GetRoomByDevice(device);
@@ -147,6 +159,12 @@
                     {
                         //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃�
                         listCheck.Add(mainKeys);
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+                    }
+                    else if (this.deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir
+                      && device.Type == DeviceType.FreshAir)
+                    {
+                        //鏂伴闈㈡澘鐨勬柊椋庤澶囷紝鍒欏尯鍩熻窡鐫�妯″潡涓�璧�
                         HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                     }
                     else if (listCheck.Contains(mainKeys) == true)
@@ -163,7 +181,7 @@
             this.AddAllMenuRow();
 
             //鍒濆鍖栨甯冨畬鎴�
-            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
+            tableContr.FinishInitControl();
             tableContr = null;
 
             //淇濆瓨
@@ -188,6 +206,19 @@
                     this.CloseForm();
                 }
             };
+            //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮
+            if (Common.Config.Instance.Home.IsVirtually == true)
+            {
+                for (int i = 0; i < listview.ChildrenCount; i++)
+                {
+                    var myRow = listview.GetChildren(i) as FrameRowControl;
+                    if (myRow != null)
+                    {
+                        myRow.UseClickStatu = false;
+                        myRow.CanClick = false;
+                    }
+                }
+            }
         }
 
         #endregion
@@ -233,8 +264,8 @@
                     //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
                     this.AddPanelSettionRow();
                 }
-
-                if (this.IsFangyueFreshaAirPanel() == false)
+                //鏂规偊鏂伴闈㈡澘娌℃湁鍔熻兘璁剧疆
+                if (deviceEnumInfo.ConcreteType != DeviceConcreteType.ButtonPanel_FangyueFreshAir)
                 {
                     //娣诲姞銆愬姛鑳借缃�戣
                     this.AddFunctionSettionRow();
@@ -295,7 +326,7 @@
                          };
                          actionNone = () =>
                          {
-                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock);
                          };
                          HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
                      }
@@ -316,7 +347,7 @@
                              };
                              actionNone = () =>
                              {
-                                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+                                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock);
                              };
                              HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
 
@@ -358,6 +389,11 @@
                 if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false)
                 {
                     btnswitch.IsSelected = true;
+                }
+                //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    btnswitch.CanClick = false;
                 }
 
                 btnswitch.ButtonClickEvent += async (sender, e) =>
@@ -533,22 +569,6 @@
                         form.AddForm(listNewDevice[0]);
                     }
                 };
-                return true;
-            }
-            return false;
-        }
-
-        #endregion
-
-        #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________
-
-        /// <summary>
-        /// 鏄惁鏄柟鎮︽柊椋庨潰鏉�
-        /// </summary>
-        private bool IsFangyueFreshaAirPanel()
-        {
-            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
-            {
                 return true;
             }
             return false;
@@ -791,6 +811,11 @@
             btnFunction.AddLeftCaption(caption, 600);
             //寮�鍏冲浘鏍�
             var btnSwitch = btnFunction.AddMostRightSwitchIcon();
+            //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮
+            if (Common.Config.Instance.Home.IsVirtually == true)
+            {
+                btnSwitch.CanClick = false;
+            }
             //搴曠嚎
             btnFunction.AddBottomLine();
             btnSwitch.ButtonClickEvent += async (sender, e) =>
@@ -920,10 +945,19 @@
                 var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
 
                 var form = new BottomItemSelectForm();
+                form.CancelCallEvent = true;//鍏佽鍙栨秷
                 form.AddForm(title, listText, nowSelectNo);
                 form.FinishSelectEvent += (selectNo) =>
                 {
-                    btnFunction.Text = listText[selectNo];
+                    if (selectNo == -1)
+                    {
+                        //閫夋嫨鍙栨秷
+                        btnFunction.Text = string.Empty;
+                    }
+                    else
+                    {
+                        btnFunction.Text = listText[selectNo];
+                    }
                     nowSelectNo = selectNo;
                     //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
                     if (selectNo == 0)
@@ -944,13 +978,22 @@
                             this.listNewDevice[0].IconPath = "Device/Light.png";
                         }
                     }
-                    else
+                    else if (selectNo == 2)
                     {
                         this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鎻掑骇;
                         if (this.listNewDevice[0].IsCustomizeImage == false)
                         {
                             //閲嶆柊璁剧疆鍥剧墖
                             this.listNewDevice[0].IconPath = "Device/Socket1.png";
+                        }
+                    }
+                    else
+                    {
+                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鏈畾涔�;
+                        if (this.listNewDevice[0].IsCustomizeImage == false)
+                        {
+                            //閲嶆柊璁剧疆鍥剧墖
+                            this.listNewDevice[0].IconPath = "Device/Switch.png";
                         }
                     }
                     this.listNewDevice[0].ReSave();
@@ -1061,8 +1104,12 @@
                 btnNewVersion.Visible = false;
             };
 
-            //璁剧疆璁惧鐨勭増鏈俊鎭�
-            this.SetDeviceVersionInfo(btnNewVersion, oTADevice);
+            //濡傛灉褰撳墠浣忓畢涓嶆槸铏氭嫙浣忓畢
+            if (Common.Config.Instance.Home.IsVirtually == false)
+            {
+                //璁剧疆璁惧鐨勭増鏈俊鎭�
+                this.SetDeviceVersionInfo(btnNewVersion, oTADevice);
+            }
         }
 
         /// <summary>
@@ -1123,15 +1170,9 @@
         /// <param name="i_deviceName">deviceName.</param>
         private async void DeviceReName(string i_deviceName, bool closeForm)
         {
-            //寮�鍚繘搴︽潯
-            this.ShowProgressBar();
-
             //淇敼MAC鍚�
             string deviceName = i_deviceName.Trim();
             var result = await Common.LocalDevice.Current.ReMacName(this.listNewDevice, deviceName);
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
-
             if (result == false)
             {
                 return;
@@ -1176,18 +1217,8 @@
         {
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�)
             bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]);
-            if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣)
-            {
-                canTest = false;
-            }
-            else if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A浼犳劅鍣�
-                && this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir)
-            {
-                //浼犳劅鍣ㄩ櫎浜哖ir閮芥病鏈夊畾浣嶅姛鑳�
-                canTest = false;
-            }
-            var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
 
+            var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
             string deviceMenu = string.Empty;
             if (canTest == true)
             {
@@ -1204,6 +1235,11 @@
             deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
             frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
             {
+                //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�,姝ゅ姛鑳芥棤鏁�
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    return;
+                }
                 //纭鍒犻櫎璇ヨ澶囧強鍔熻兘锛�
                 string msg = Language.StringByID(R.MyInternationalizationString.uDeleteDeviceMsg);
                 this.ShowMassage(ShowMsgType.Confirm, msg, () =>

--
Gitblit v1.8.0