From 4230f40556c36ac1d9f1aae1d80f6cb81754e708 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 08 七月 2020 14:59:20 +0800
Subject: [PATCH] 2020-07-08-01
---
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs | 357 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 232 insertions(+), 125 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
index 991b648..5080f98 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
@@ -1,80 +1,116 @@
-锘縰sing System;
-using System.Collections.Generic;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Device
-{
- /// <summary>
- /// 缃戝叧鎴愬姛娣诲姞璁惧鐨勬樉绀虹敾闈�
- /// </summary>
- public class DeviceAddSuccessForm : EditorCommonForm
+锘縰sing System;
+using System.Collections.Generic;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Device
+{
+ /// <summary>
+ /// 缃戝叧鎴愬姛娣诲姞璁惧鐨勬樉绀虹敾闈�
+ /// </summary>
+ public class DeviceAddSuccessForm : EditorCommonForm
{
#region 鈻� 鍙橀噺澹版槑___________________________
- /// <summary>
- /// 鏂颁笂鎶ョ殑璁惧
- /// </summary>
+ /// <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
+ #endregion
- #region 鈻� 鍒濆鍖朹____________________________
+ #region 鈻� 鍒濆鍖朹____________________________
- /// <summary>
- /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
- /// </summary>
- /// <param name="deviceMac">璁惧Mac鍦板潃</param>
- public void ShowForm(string deviceMac)
- {
- this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
-
- //璁剧疆鏍囬淇℃伅
- base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
-
- //鍒濆鍖栦腑閮ㄦ帶浠�
+ /// <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));
+ }
+
+ //娣诲姞鏂拌澶囩殑璇�,涓婚〉闇�瑕侀噸鏂板埛鏂�
+ UserView.UserPage.Instance.RefreshForm = true;
+
+ //璁剧疆鏍囬淇℃伅
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
+
+ //鍒濆鍖栦腑閮ㄦ帶浠�
this.InitMiddleFrame();
//璁剧疆鍏ㄩ儴鍥炶矾鐨勯粯璁ゅ悕瀛�
this.SetAllEpointName();
- }
-
- /// <summary>
- /// 鍒濆鍖栦腑閮ㄦ帶浠�
- /// </summary>
- private void InitMiddleFrame()
- {
- //娓呯┖bodyFrame
- this.ClearBodyFrame();
-
- //鍒濆鍖栨甯�
- this.InitFrameTable();
-
- //璁惧鍥剧墖
- var btnpictrue = new PicViewControl(855, 570);
- btnpictrue.Gravity = Gravity.CenterHorizontal;
- btnpictrue.Y = Application.GetRealHeight(58);
- Common.LocalDevice.Current.SetRealDeviceIconToControl(btnpictrue, listNewDevice);
- bodyFrameLayout.AddChidren(btnpictrue);
+ // 璁剧疆缃戝叧鎵�鍦ㄧ殑鏃跺尯鐨勬椂闂寸粰闂ㄩ攣鏃堕棿
+ this.SetDoorTime();
+ //鏂板叆缃戠殑璁惧,娓呯┖鎺夊畠鐨勬埧闂�
+ this.ClearDeviceFromRoom();
+ }
+
+ /// <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]);
- var btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2);
- listview.AddChidren(btnNote);
- btnNote.InitControl();
- //鍒掔嚎
- btnNote.AddBottomLine();
+ 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)
@@ -84,17 +120,60 @@
}
//淇敼鍚嶅瓧
this.DeviceReName(btnNote.Text.Trim());
- };
-
- //璁惧绫诲瀷
- caption = Language.StringByID(R.MyInternationalizationString.uDeviceType);
- deviceName = Common.LocalDevice.Current.GetDeviceObjectText(listNewDevice);
+ };
+
+ //璁惧绫诲瀷
+ 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);
+ 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);
@@ -105,17 +184,24 @@
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(12);
+ 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);
+ bodyFrameLayout.AddChidren(btnLine);
}
/// <summary>
@@ -126,16 +212,16 @@
//寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
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;
+ 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;
+ detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
bodyFrameLayout.AddChidren(detailBackFrame);
//璁惧缂栬緫
@@ -152,83 +238,104 @@
detailBackFrame.AddChidren(listview);
//瀹屾垚
- var btnFinish = new BottomClickButton();
- btnFinish.Y = Application.GetRealHeight(736);
- btnFinish.TextID = R.MyInternationalizationString.uFinish;
- detailBackFrame.AddChidren(btnFinish);
- btnFinish.MouseUpEventHandler += (sender, e) =>
- {
- //鍏抽棴鑷韩
- this.CloseForm();
+ var btnFinish = new BottomClickButton();
+ btnFinish.Y = Application.GetRealHeight(736);
+ btnFinish.TextID = R.MyInternationalizationString.uFinish;
+ detailBackFrame.AddChidren(btnFinish);
+ btnFinish.MouseUpEventHandler += (sender, e) =>
+ {
+ //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
+ this.saveDefultName = string.Empty;
+ //鏀瑰悕瀛�
+ btnNote.txtInput.FinishInputEvent();
+ //鍏抽棴鑷韩
+ this.CloseForm();
};
}
- #endregion
-
+ #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)
+ /// <summary>
+ /// 璁惧閲嶅懡鍚嶇劧鍚庢墦寮�鏂扮殑鐢婚潰
+ /// </summary>
+ /// <param name="i_deviceName">deviceName.</param>
+ /// <param name="mode">鏄惁鏄剧ず閿欒</param>
+ private void DeviceReName(string i_deviceName, ShowErrorMode mode = ShowErrorMode.YES)
+ {
+ //淇敼MAC鍚�
+ string deviceName = i_deviceName.Trim();
+ var result = Common.LocalDevice.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;
- }
- }
+ }
+ //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
+ this.saveDefultName = string.Empty;
}
/// <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();
-
foreach (var device in this.listNewDevice)
{
- if (Common.LocalDevice.Current.GetSimpleEpointName(device) != string.Empty)
+ if ((device is OTADevice) || Common.LocalDevice.Current.GetSimpleEpointName(device) != string.Empty)
{
+ //鏈夊悕瀛椾笉澶勭悊
continue;
}
- var epointName = objName;
- if (this.listNewDevice.Count > 1)
- {
- //XXXXX(N鍥炶矾)
- epointName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
- }
- await Common.LocalDevice.Current.ReName(device, epointName, ShowErrorMode.NO);
+ //鑾峰彇绔偣鍚嶅瓧
+ var epointName = Common.LocalDevice.Current.GetDeviceEpointName(device);
+ Common.LocalDevice.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));
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鏂板叆缃戠殑璁惧,娓呯┖鎺夊畠鐨勬埧闂�
+ /// </summary>
+ private void ClearDeviceFromRoom()
+ {
+ foreach (var device in this.listNewDevice)
+ {
+ HdlRoomLogic.Current.DeleteDevice(device);
+ HdlRoomLogic.Current.DeleteLoveDevice(device);
+ }
+ Common.LocalDevice.Current.DeleteRealDeviceFromRoom(this.listNewDevice[0]);
+ }
+
+ #endregion
#region 鈻� 鐢婚潰鍏抽棴___________________________
/// <summary>
/// 鐢婚潰鍏抽棴
/// </summary>
- public override void CloseForm()
+ public override void CloseFormBefore()
{
if (this.saveDefultName != string.Empty)
{
@@ -237,9 +344,9 @@
}
//娣诲姞璁惧鍒板垪琛�
this.LoadFormMethodByName("DeviceListMainForm", "AddDeviceToFormTable", listNewDevice[0].DeviceAddr);
-
- base.CloseForm();
+
+ base.CloseFormBefore();
}
#endregion
- }
-}
+ }
+}
--
Gitblit v1.8.0