From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 09:07:13 +0800
Subject: [PATCH] 新云端Ver1.3

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs |  164 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 107 insertions(+), 57 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
index d6dd689..83a522d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
@@ -20,6 +20,10 @@
         /// </summary>
         private VerticalListControl listview = null;
         /// <summary>
+        /// 璁惧澶囨敞鎺т欢
+        /// </summary>
+        private FrameCaptionInputControl btnNote = null;
+        /// <summary>
         /// 淇濆瓨榛樿鍚嶅瓧(涓昏閽堝娌℃湁淇敼鍚嶅瓧鐨勬椂鍊欙紝蹇呴』瑕佺粰涓�涓粯璁ゅ悕瀛楃粰缃戝叧)
         /// </summary>
         private string saveDefultName = string.Empty;
@@ -34,7 +38,15 @@
         /// <param name="deviceMac">璁惧Mac鍦板潃</param>
         public void ShowForm(string deviceMac)
         {
-            this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
+            this.listNewDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac);
+            if (listNewDevice.Count == 0)
+            {
+                //瀵瑰簲鍗曠函鍙湁200鍥炶矾鐨勮澶�
+                listNewDevice.Add(HdlDeviceCommonLogic.Current.GetOTADevice(deviceMac));
+            }
+
+            //娣诲姞鏂拌澶囩殑璇�,涓婚〉闇�瑕侀噸鏂板埛鏂�
+            UserView.UserPage.Instance.RefreshAllForm = true;
 
             //璁剧疆鏍囬淇℃伅
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
@@ -44,6 +56,12 @@
 
             //璁剧疆鍏ㄩ儴鍥炶矾鐨勯粯璁ゅ悕瀛�
             this.SetAllEpointName();
+            // 璁剧疆缃戝叧鎵�鍦ㄧ殑鏃跺尯鐨勬椂闂寸粰闂ㄩ攣鏃堕棿
+            this.SetDoorTime();
+            //鏂板叆缃戠殑璁惧,娓呯┖鎺夊畠鐨勬埧闂�
+            this.ClearDeviceFromRoom();
+            //娣诲姞璁惧鐨勬椂鍊�,鍏抽棴宸﹀垝鑿滃崟鐨勬湭鍒嗛厤鐣岄潰
+            MainPage.LeftListRoomViewFrom.Instance?.CloseUnallocatedRoomForm();
         }
 
         /// <summary>
@@ -64,7 +82,7 @@
             framePic.Y = Application.GetRealHeight(58);
             bodyFrameLayout.AddChidren(framePic);
 
-            var imageFile = Common.LocalDevice.Current.GetRealDeviceIcon(listNewDevice);
+            var imageFile = HdlDeviceCommonLogic.Current.GetRealDeviceIcon(listNewDevice);
             string fullName = IO.FileUtils.GetImageFilePath(imageFile);
 
 #if Android
@@ -84,13 +102,14 @@
             btnpictrue.UnSelectedImagePath = imageFile;
             framePic.AddChidren(btnpictrue);
 
-            string nameValue = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
+            string nameValue = HdlDeviceCommonLogic.Current.GetDeviceMacName(listNewDevice[0]);
             this.saveDefultName = nameValue;
 
             //璁惧澶囨敞
             string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote);
-            string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
-            var btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2);
+            string deviceName = HdlDeviceCommonLogic.Current.GetDeviceMacName(listNewDevice[0]);
+            this.btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2);
+            this.btnNote.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺�
             listview.AddChidren(btnNote);
             btnNote.InitControl();
             //鍒掔嚎
@@ -99,7 +118,7 @@
             {
                 if (btnNote.Text.Trim() == string.Empty)
                 {
-                    btnNote.Text = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
+                    btnNote.Text = HdlDeviceCommonLogic.Current.GetDeviceMacName(listNewDevice[0]);
                     return;
                 }
                 //淇敼鍚嶅瓧
@@ -108,7 +127,7 @@
 
             //璁惧绫诲瀷
             caption = Language.StringByID(R.MyInternationalizationString.uDeviceType);
-            deviceName = Common.LocalDevice.Current.GetDeviceObjectText(listNewDevice);
+            deviceName = HdlDeviceCommonLogic.Current.GetDeviceObjectText(listNewDevice);
             var btnType = new FrameCaptionViewControl(caption, deviceName, listview.rowSpace / 2);
             btnType.UseClickStatu = false;
             listview.AddChidren(btnType);
@@ -116,34 +135,47 @@
             //鍒掔嚎
             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)
                 {
-                    var room = Common.Room.CurrentRoom.GetRoomByDevice(device);
-                    string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
+                    if (device is OTADevice)
+                    {
+                        continue;
+                    }
+                    if (roomKeys == string.Empty)
+                    {
+                        //濡傛灉閫夋嫨鐨勬槸鏈垎閰嶏紝鍒欏畠鐨勫叏閮ㄥ洖璺棤鏉′欢鍏ㄩ儴娓呯┖鎴块棿
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+                        continue;
+                    }
+
+                    var room = HdlRoomLogic.Current.GetRoomByDevice(device);
+                    string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device);
                     if (room == null)
                     {
                         //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃�
                         listCheck.Add(mainKeys);
-                        Common.Room.CurrentRoom.ChangedRoom(device, roomKeys);
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                     }
                     else if (listCheck.Contains(mainKeys) == true)
                     {
                         //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇�
-                        Common.Room.CurrentRoom.ChangedRoom(device, roomKeys);
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                     }
                 }
                 //淇濆瓨璁惧鎴块棿绱㈠紩
-                Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys);
+                HdlRoomLogic.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys);
             };
 
             //鏇村閰嶇疆
@@ -155,13 +187,20 @@
             btnHelp.Text = Language.StringByID(R.MyInternationalizationString.uMoreSettion);
             btnHelp.ButtonClickEvent += (sender, e) =>
             {
+                //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
+                this.saveDefultName = string.Empty;
+                //鏀瑰悕瀛�
+                btnNote.txtInput.FinishInputEvent();
+
+                this.CloseForm();
+
                 var form = new DeviceMacInfoEditorForm();
                 form.AddForm(this.listNewDevice[0].DeviceAddr);
             };
             bodyFrameLayout.AddChidren(btnHelp);
             //搴曠嚎
             int lineWidth = btnHelp.GetRealWidthByText();
-            var btnLine = new NormalViewControl(lineWidth, ControlCommonResourse.BottomLineHeight, false);
+            var btnLine = new NormalViewControl(lineWidth, HdlControlResourse.BottomLineHeight, false);
             btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
             btnLine.Gravity = Gravity.CenterHorizontal;
             btnLine.Y = btnHelp.Bottom - Application.GetRealHeight(8);
@@ -190,7 +229,7 @@
 
             //璁惧缂栬緫
             var btnTile = new NormalViewControl(800, 60, true);
-            btnTile.X = ControlCommonResourse.XXLeft;
+            btnTile.X = HdlControlResourse.XXLeft;
             btnTile.TextSize = 15;
             btnTile.TextColor = UserCenterColor.Current.TextColor2;
             btnTile.TextID = R.MyInternationalizationString.uDeviceEditor;
@@ -208,82 +247,93 @@
             detailBackFrame.AddChidren(btnFinish);
             btnFinish.MouseUpEventHandler += (sender, e) =>
             {
+                //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
+                this.saveDefultName = string.Empty;
+                //鏀瑰悕瀛�
+                btnNote.txtInput.FinishInputEvent();
                 //鍏抽棴鑷韩
                 this.CloseForm();
             };
         }
 
-#endregion
+        #endregion
 
-#region 鈻� 淇敼鍚嶅瓧___________________________
+        #region 鈻� 淇敼鍚嶅瓧___________________________
 
         /// <summary>
         /// 璁惧閲嶅懡鍚嶇劧鍚庢墦寮�鏂扮殑鐢婚潰
         /// </summary>
         /// <param name="i_deviceName">deviceName.</param>
         /// <param name="mode">鏄惁鏄剧ず閿欒</param>
-        private async void DeviceReName(string i_deviceName, ShowErrorMode mode = ShowErrorMode.YES)
+        private void DeviceReName(string i_deviceName, ShowErrorMode mode = ShowErrorMode.YES)
         {
             //淇敼MAC鍚�
             string deviceName = i_deviceName.Trim();
-            var result = await Common.LocalDevice.Current.ReMacName(this.listNewDevice, deviceName, mode);
+            var result = HdlDeviceCommonLogic.Current.ReMacName(this.listNewDevice, deviceName, mode);
             if (result == false)
             {
                 return;
             }
             //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
             this.saveDefultName = string.Empty;
-
-            //濡傛灉瀹冪殑鍥炶矾鍙湁涓�涓殑璇濓紝鍒欏湪璁惧涓婃姤鐨勬椂鍊欙紝淇敼MAC鍚嶅瓧涔嬪悗锛岃繛鍚岀鐐瑰悕瀛椾篃涓�璧蜂慨鏀�
-            if (this.listNewDevice.Count == 1)
-            {
-                //淇敼绔偣鍚嶅瓧
-                result = await Common.LocalDevice.Current.ReName(this.listNewDevice[0], deviceName, mode);
-                if (result == false)
-                {
-                    return;
-                }
-            }
         }
 
         /// <summary>
         /// 璁剧疆鍏ㄩ儴鍥炶矾鐨勯粯璁ゅ悕瀛�
         /// </summary>
-        private async void SetAllEpointName()
+        private void SetAllEpointName()
         {
-            var tempValue = Common.LocalDevice.Current.GetDeviceObjectText(this.listNewDevice);
-            var arry = tempValue.Split(new string[] { "(" }, StringSplitOptions.RemoveEmptyEntries);
-            var objName = arry[0].Trim();
-
-            //鑾峰彇璁惧绫诲瀷
-            var deviceInfoType = Common.LocalDevice.Current.GetMyDeviceEnumInfo(this.listNewDevice);
             foreach (var device in this.listNewDevice)
             {
-                if (Common.LocalDevice.Current.GetSimpleEpointName(device) != string.Empty)
+                if ((device is OTADevice) || HdlDeviceCommonLogic.Current.GetSimpleEpointName(device) != string.Empty)
                 {
+                    //鏈夊悕瀛椾笉澶勭悊
                     continue;
                 }
-                var epointName = objName;
-                if (this.listNewDevice.Count > 1)
-                {
-                    if (deviceInfoType.BeloneType == Common.DeviceBeloneType.A鎸夐敭闈㈡澘 && device.Type == DeviceType.TemperatureSensor)
-                    {
-                        //闈㈡澘鐨勬渶鍚庝竴涓洖璺槸娓╁害浼犳劅鍣�
-                        epointName += Language.StringByID(R.MyInternationalizationString.uDeviceBelongId11);
-                    }
-                    else
-                    {
-                        //XXXXX(N鍥炶矾)
-                        epointName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
-                    }
-                }
-                await Common.LocalDevice.Current.ReName(device, epointName, ShowErrorMode.NO);
+                //鑾峰彇绔偣鍚嶅瓧
+                var epointName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
+                HdlDeviceCommonLogic.Current.ReName(device, epointName, ShowErrorMode.NO);
             }
         }
 
-#endregion
+        /// <summary>
+        /// 璁剧疆缃戝叧鎵�鍦ㄧ殑鏃跺尯鐨勬椂闂寸粰闂ㄩ攣鏃堕棿
+        /// </summary>
+        private async void SetDoorTime()
+        {
+            //濡傛灉鏄棬閿�
+            if (this.listNewDevice[0].Type == DeviceType.DoorLock)
+            {
+                var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock;
+                //1銆佸叆缃戝悗鍏堣幏鍙栭棬閿佸湪缃戝叧涓殑鏃跺尯鏃堕棿
+                var curDateTime = DoorLock.DoorLockCommonInfo.GetDoorLockZoneTime();
+                //2銆佸皢鏃堕棿璁剧疆鍒扮綉鍏充腑
+                var dateTime = new DateTime(curDateTime.Year, curDateTime.Month, curDateTime.Day, curDateTime.Hour, curDateTime.Minute, curDateTime.Second);
+                var setTimestamp = DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(dateTime);
+                await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
+            }
+        }
 
-#region 鈻� 鐢婚潰鍏抽棴___________________________
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鏂板叆缃戠殑璁惧,娓呯┖鎺夊畠鐨勬埧闂�
+        /// </summary>
+        private void ClearDeviceFromRoom()
+        {
+            foreach (var device in this.listNewDevice)
+            {
+                HdlRoomLogic.Current.DeleteDevice(device);
+                HdlRoomLogic.Current.DeleteLoveDevice(device);
+            }
+            HdlRoomLogic.Current.DeleteRealDeviceFromRoom(this.listNewDevice[0]);
+        }
+
+        #endregion
+
+        #region 鈻� 鐢婚潰鍏抽棴___________________________
 
         /// <summary>
         /// 鐢婚潰鍏抽棴
@@ -300,6 +350,6 @@
 
             base.CloseFormBefore();
         }
-#endregion
+        #endregion
     }
 }

--
Gitblit v1.8.0