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