From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

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

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
new file mode 100755
index 0000000..a6cb796
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
@@ -0,0 +1,324 @@
+锘縰sing System;
+using System.Collections.Generic;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Device
+{
+    /// <summary>
+    /// 缃戝叧鎴愬姛娣诲姞璁惧鐨勬樉绀虹敾闈�
+    /// </summary>
+    public class DeviceAddSuccessForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鏂颁笂鎶ョ殑璁惧
+        /// </summary>
+        private List<CommonDevice> listNewDevice = null;
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalListControl listview = null;
+        /// <summary>
+        /// 璁惧澶囨敞鎺т欢
+        /// </summary>
+        private FrameCaptionInputControl btnNote = null;
+        /// <summary>
+        /// 淇濆瓨榛樿鍚嶅瓧(涓昏閽堝娌℃湁淇敼鍚嶅瓧鐨勬椂鍊欙紝蹇呴』瑕佺粰涓�涓粯璁ゅ悕瀛楃粰缃戝叧)
+        /// </summary>
+        private string saveDefultName = string.Empty;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="deviceMac">璁惧Mac鍦板潃</param>
+        public void ShowForm(string deviceMac)
+        {
+            this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
+            if (listNewDevice.Count == 0)
+            {
+                //瀵瑰簲鍗曠函鍙湁200鍥炶矾鐨勮澶�
+                listNewDevice.Add(Common.LocalDevice.Current.GetOTADevice(deviceMac));
+            }
+
+            //璁剧疆鏍囬淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
+
+            //鍒濆鍖栦腑閮ㄦ帶浠�
+            this.InitMiddleFrame();
+
+            //璁剧疆鍏ㄩ儴鍥炶矾鐨勯粯璁ゅ悕瀛�
+            this.SetAllEpointName();
+            // 璁剧疆缃戝叧鎵�鍦ㄧ殑鏃跺尯鐨勬椂闂寸粰闂ㄩ攣鏃堕棿
+            this.SetDoorTime();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄦ帶浠�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            //鍒濆鍖栨甯�
+            this.InitFrameTable();
+
+            var framePic = new FrameLayout();
+            framePic.Width = Application.GetRealWidth(855);
+            framePic.Height = Application.GetRealHeight(570);
+            framePic.Gravity = Gravity.CenterHorizontal;
+            framePic.Y = Application.GetRealHeight(58);
+            bodyFrameLayout.AddChidren(framePic);
+
+            var imageFile = Common.LocalDevice.Current.GetRealDeviceIcon(listNewDevice);
+            string fullName = IO.FileUtils.GetImageFilePath(imageFile);
+
+#if Android
+            //璁惧鍥剧墖
+            var bim = Android.Graphics.BitmapFactory.DecodeFile(fullName);
+            var btnpictrue = new PicViewControl(bim.Width, bim.Height);
+#endif
+#if iOS
+            //璁惧鍥剧墖
+            var bim = UIKit.UIImage.FromFile(fullName);
+            var btnpictrue = new PicViewControl((int)bim.Size.Width, (int)bim.Size.Height);
+#endif
+            bim.Dispose();
+            bim = null;
+
+            btnpictrue.Gravity = Gravity.Center;
+            btnpictrue.UnSelectedImagePath = imageFile;
+            framePic.AddChidren(btnpictrue);
+
+            string nameValue = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
+            this.saveDefultName = nameValue;
+
+            //璁惧澶囨敞
+            string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote);
+            string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
+            this.btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2);
+            listview.AddChidren(btnNote);
+            btnNote.InitControl();
+            //鍒掔嚎
+            btnNote.AddBottomLine();
+            btnNote.txtInput.FinishInputEvent += () =>
+            {
+                if (btnNote.Text.Trim() == string.Empty)
+                {
+                    btnNote.Text = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
+                    return;
+                }
+                //淇敼鍚嶅瓧
+                this.DeviceReName(btnNote.Text.Trim());
+            };
+
+            //璁惧绫诲瀷
+            caption = Language.StringByID(R.MyInternationalizationString.uDeviceType);
+            deviceName = Common.LocalDevice.Current.GetDeviceObjectText(listNewDevice);
+            var btnType = new FrameCaptionViewControl(caption, deviceName, listview.rowSpace / 2);
+            btnType.UseClickStatu = false;
+            listview.AddChidren(btnType);
+            btnType.InitControl();
+            //鍒掔嚎
+            btnType.AddBottomLine();
+
+            //瀹夎浣嶇疆
+            var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
+            listview.AddChidren(rowBeloneArea);
+            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)
+                    {
+                        continue;
+                    }
+                    if (roomKeys == string.Empty)
+                    {
+                        //濡傛灉閫夋嫨鐨勬槸鏈垎閰嶏紝鍒欏畠鐨勫叏閮ㄥ洖璺棤鏉′欢鍏ㄩ儴娓呯┖鎴块棿
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+                        continue;
+                    }
+
+                    var room = HdlRoomLogic.Current.GetRoomByDevice(device);
+                    string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
+                    if (room == null)
+                    {
+                        //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃�
+                        listCheck.Add(mainKeys);
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+                    }
+                    else if (listCheck.Contains(mainKeys) == true)
+                    {
+                        //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇�
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+                    }
+                }
+                //淇濆瓨璁惧鎴块棿绱㈠紩
+                Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys);
+            };
+
+            //鏇村閰嶇疆
+            var btnHelp = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(49), false);
+            btnHelp.Y = Application.GetRealHeight(1388);
+            btnHelp.TextSize = 12;
+            btnHelp.TextAlignment = TextAlignment.Center;
+            btnHelp.TextColor = UserCenterColor.Current.TextOrangeColor;
+            btnHelp.Text = Language.StringByID(R.MyInternationalizationString.uMoreSettion);
+            btnHelp.ButtonClickEvent += (sender, e) =>
+            {
+                //鏀瑰悕瀛�
+                btnNote.txtInput.FinishInputEvent();
+
+                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);
+            btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
+            btnLine.Gravity = Gravity.CenterHorizontal;
+            btnLine.Y = btnHelp.Bottom - Application.GetRealHeight(8);
+            bodyFrameLayout.AddChidren(btnLine);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨甯�
+        /// </summary>
+        private void InitFrameTable()
+        {
+            //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
+            int halfRoundHeigth = Application.GetRealHeight(116) / 2;
+            //寮у害鐨勫渾
+            var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false);
+            btnRound.Y = Application.GetRealHeight(708);
+            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(1200);//楂樺害灏辨槸瑕佸畠瓒呰繃
+            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.uDeviceEditor;
+            detailBackFrame.AddChidren(btnTile);
+
+            this.listview = new VerticalListControl(12);
+            listview.Y = btnTile.Bottom + Application.GetRealHeight(17);
+            listview.Height = Application.GetRealHeight(522);
+            detailBackFrame.AddChidren(listview);
+
+            //瀹屾垚
+            var btnFinish = new BottomClickButton();
+            btnFinish.Y = Application.GetRealHeight(736);
+            btnFinish.TextID = R.MyInternationalizationString.uFinish;
+            detailBackFrame.AddChidren(btnFinish);
+            btnFinish.MouseUpEventHandler += (sender, e) =>
+            {
+                //鏀瑰悕瀛�
+                btnNote.txtInput.FinishInputEvent();
+                //鍏抽棴鑷韩
+                this.CloseForm();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 淇敼鍚嶅瓧___________________________
+
+        /// <summary>
+        /// 璁惧閲嶅懡鍚嶇劧鍚庢墦寮�鏂扮殑鐢婚潰
+        /// </summary>
+        /// <param name="i_deviceName">deviceName.</param>
+        /// <param name="mode">鏄惁鏄剧ず閿欒</param>
+        private async 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);
+            if (result == false)
+            {
+                return;
+            }
+            //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
+            this.saveDefultName = string.Empty;
+        }
+
+        /// <summary>
+        /// 璁剧疆鍏ㄩ儴鍥炶矾鐨勯粯璁ゅ悕瀛�
+        /// </summary>
+        private async void SetAllEpointName()
+        {
+            foreach (var device in this.listNewDevice)
+            {
+                if ((device is OTADevice) || Common.LocalDevice.Current.GetSimpleEpointName(device) != string.Empty)
+                {
+                    //鏈夊悕瀛椾笉澶勭悊
+                    continue;
+                }
+                //鑾峰彇绔偣鍚嶅瓧
+                var epointName = Common.LocalDevice.Current.GetDeviceEpointName(device);
+                await Common.LocalDevice.Current.ReName(device, epointName, ShowErrorMode.NO);
+            }
+        }
+
+        /// <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));
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鐢婚潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐢婚潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            if (this.saveDefultName != string.Empty)
+            {
+                //蹇呴』缁欏畠涓�涓粯璁ゅ悕瀛楁墠琛�
+                this.DeviceReName(this.saveDefultName, ShowErrorMode.NO);
+            }
+            //娣诲姞璁惧鍒板垪琛�
+            this.LoadFormMethodByName("DeviceListMainForm", "AddDeviceToFormTable", listNewDevice[0].DeviceAddr);
+
+            base.CloseFormBefore();
+        }
+        #endregion
+    }
+}

--
Gitblit v1.8.0