From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码
---
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs | 341 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 305 insertions(+), 36 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
index ec57ceb..891aeeb 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
@@ -27,7 +27,7 @@
/// <summary>
/// 璁惧澶囨敞鐨勬帶浠�
/// </summary>
- private FrameCaptionInputControl btnDeviceName = null;
+ private FrameCaptionInputControl frameDeviceName = null;
/// <summary>
/// 璁惧鐨勬煇涓�鍥炶矾
/// </summary>
@@ -88,7 +88,24 @@
{
this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
}
- else
+ else if (this.deviceObj.Type == DeviceType.Airer)
+ {
+ //鏅捐。鏋惰澶囧彧瀛樺彇鍥炶矾1锛屽鏋滄槸鏅捐。鏋讹紝榛樿绔偣閮芥槸1锛�
+ this.deviceObj.DeviceEpoint = 1;
+ this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1342);
+ }
+ else if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+ {
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ //鑾峰彇璁惧绫诲瀷
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+ {
+ this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1368);
+ }
+ }
+ if (this.listview == null)
{
this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1128);
}
@@ -103,7 +120,7 @@
btnFinish.ButtonClickEvent += (sender, e) =>
{
//璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧
- dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
+ dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
foreach (var epoint in dicDeviceSaveName.Keys)
{
var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
@@ -124,9 +141,25 @@
}
}
}
+
+ //濡傛灉鏄櫨琛f灦銆屾椂闂村厛涓嶅鐞嗐��
+ //if (deviceObj.Type == DeviceType.Airer)
+ //{
+ // var airer = deviceObj as Airer;
+ // SetAirerFunTimeDevice(airer);
+ //}
+ //else
+ //{
//鍏抽棴鑷韩
this.CloseForm();
+ //}
+
};
+ //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈�
+ if (Common.Config.Instance.Home.IsShowTemplate == true)
+ {
+ btnFinish.CanClick = false;
+ }
}
/// <summary>
@@ -139,36 +172,42 @@
//鍥炶矾澶囨敞
string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote);
string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
+
if (dicDeviceSaveName.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
{
nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint];
}
- this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2);
- listview.AddChidren(btnDeviceName);
- btnDeviceName.InitControl();
- btnDeviceName.AddBottomLine();
- btnDeviceName.txtInput.FinishInputEvent += () =>
+ this.frameDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2);
+ this.frameDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺�
+ listview.AddChidren(frameDeviceName);
+ frameDeviceName.InitControl();
+ frameDeviceName.AddBottomLine();
+ //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欓渶瑕佸鐞�
+ if (Common.Config.Instance.Home.IsShowTemplate == false)
{
- string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
- if (btnDeviceName.Text.Trim() == string.Empty)
+ frameDeviceName.txtInput.FinishInputEvent += () =>
{
- //灏嗗悕瀛楄繕鍘�
- btnDeviceName.Text = oldName;
- }
- if (oldName != btnDeviceName.Text.Trim())
- {
- //璁惧鍚嶇О淇敼
- var result = Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim());
- if (result == false)
+ string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
+ if (frameDeviceName.Text.Trim() == string.Empty)
{
- return;
+ //灏嗗悕瀛楄繕鍘�
+ frameDeviceName.Text = oldName;
}
- //鍥炶矾澶囨敞淇敼鎴愬姛!
- string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess);
- this.ShowMassage(ShowMsgType.Tip, msg);
- }
- };
+ if (oldName != frameDeviceName.Text.Trim())
+ {
+ //璁惧鍚嶇О淇敼
+ var result = Common.LocalDevice.Current.ReName(nowSelectDevice, frameDeviceName.Text.Trim());
+ if (result == false)
+ {
+ return;
+ }
+ //鍥炶矾澶囨敞淇敼鎴愬姛!
+ string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess);
+ this.ShowMassage(ShowMsgType.Tip, msg);
+ }
+ };
+ }
//鎵�灞炲尯鍩�
var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
@@ -182,8 +221,32 @@
HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
};
+ if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+ {
+ //鑾峰彇璁惧绫诲瀷
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+ {
+ //璁惧绫诲瀷
+ this.AddDeviceTypeRow();
+ }
+ }
+
//娣诲姞鍔熻兘绫诲瀷琛�
this.AddFunctionTypeRow();
+
+ if (this.deviceObj.Type == DeviceType.Airer)
+ {
+ var airer = this.deviceObj as Airer;
+ //娣诲姞鐑樺共鏃堕棿琛�
+ this.AddAirerDryTimeRow(airer);
+ //娣诲姞椋庡共鏃堕棿琛�
+ this.AddAirerWindTimeRow(airer);
+ //娣诲姞娑堟瘨鏃堕棿琛�
+ this.AddAirerDisinfectTimeRow(airer);
+ }
+
//鍒濆鍖栨甯冨畬鎴�
tableContr.FinishInitControl();
}
@@ -198,7 +261,8 @@
private void InitTopRightMenu()
{
//妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
- if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false)
+ if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false
+ || Common.Config.Instance.Home.IsShowTemplate == true)
{
return;
}
@@ -265,7 +329,171 @@
//搴曠嚎
rowFunction.AddBottomLine();
}
+ #endregion
+ #region 鈻� 璁惧绫诲瀷___________________________
+
+ /// <summary>
+ /// 娣诲姞鍔熻兘绫诲瀷琛�
+ /// </summary>
+ private void AddDeviceTypeRow()
+ {
+ var caption = Language.StringByID(R.MyInternationalizationString.uDeviceType);
+ var listNewDevice = new List<CommonDevice>();
+ listNewDevice.Add(deviceObj);
+ var 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();
+ }
+ #endregion
+
+ #region 鈻� 鏅捐。鏋朵笓鐢╛________________________
+ #region 鈻� 鐑樺共鏃堕棿_________________________
+ /// <summary>
+ /// 鐑樺共鏃堕棿琛�
+ /// </summary>
+ private void AddAirerDryTimeRow(Airer airer)
+ {
+ var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+ listview.AddChidren(rowAirer);
+ var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ if (airer.DryTime != 0)
+ {
+ double result = airer.DryTime / 60.0;
+ var hour = Math.Round(result, 2);
+ text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ }
+ rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+ //搴曠嚎
+ rowAirer.AddBottomLine();
+ rowAirer.SelectTimeEvent += (v1, v2) =>
+ {
+ //double result = second / 3600.0;
+ //var hour = Math.Round(result, 1);
+ //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+ };
+
+ }
+ #endregion
+
+ #region 鈻� 椋庡共鏃堕棿_________________________
+ /// <summary>
+ /// 椋庡共鏃堕棿琛�
+ /// </summary>
+ private void AddAirerWindTimeRow(Airer airer)
+ {
+ var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+ listview.AddChidren(rowAirer);
+ var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ if (airer.WindTime != 0)
+ {
+ double result = airer.WindTime / 60.0;
+ var hour = Math.Round(result, 1);
+ text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ }
+ rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerWindTime), text, 2);
+ //搴曠嚎
+ rowAirer.AddBottomLine();
+ rowAirer.SelectTimeEvent += (v1, v2) =>
+ {
+ //double result = second / 3600.0;
+ //var hour = Math.Round(result, 1);
+ //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+ };
+ }
+ #endregion
+
+ #region 鈻� 娑堟瘨鏃堕棿_________________________
+ /// <summary>
+ /// 娑堟瘨鏃堕棿琛�
+ /// </summary>
+ private void AddAirerDisinfectTimeRow(Airer airer)
+ {
+ var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+ listview.AddChidren(rowAirer);
+ var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 30 + Language.StringByID(R.MyInternationalizationString.AirerMin);
+ if (airer.DisinfectTime != 0)
+ {
+ text = airer.DisinfectTime + Language.StringByID(R.MyInternationalizationString.AirerMin);
+ }
+ rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDisinfectTime), text, 3);
+ //搴曠嚎
+ rowAirer.AddBottomLine();
+ rowAirer.SelectTimeEvent += (v1, v2) =>
+ {
+
+ };
+ }
+ #endregion
+
+ #region 鈻� 璇诲彇鏃堕棿鍛戒护___________________
+
+ /// <summary>
+ /// 璇诲彇鏃堕棿鍛戒护
+ /// </summary>
+ public void ReadAirerFunTimeDevice()
+ {
+
+ }
+
+ #endregion
+
+ /// <summary>
+ /// 璁惧鏃堕棿璁剧疆
+ /// </summary>
+ private void SetAirerFunTimeDevice(Airer airer)
+ {
+ HdlThreadLogic.Current.RunThread(async () =>
+ {
+ //鎵撳紑杩涘害鏉�
+ this.ShowProgressBar();
+
+ //鍒欒璁剧疆瀵瑰簲鐨勫姛鑳芥椂闂�
+ List<CommonDevice> listdevice = new List<CommonDevice>();
+
+ for (int i = 3; i < 6; i++)
+ {
+ int time = 0;
+ listdevice.Add(deviceObj);
+ switch (i)
+ {
+ case 3:
+ time = airer.WindTime;
+ break;
+ case 4:
+ time = airer.DryTime;
+ break;
+ case 5:
+ time = airer.DisinfectTime;
+ break;
+ }
+ bool result = await Common.LocalDevice.Current.SetAirerTimeDevice(listdevice, airer, time, i);
+ if (result == false)
+ {
+ airer.WindTime = airer.WindRemainTime = 0;
+ airer.DryTime = airer.DryRemainTime = 0;
+ airer.DisinfectTime = airer.DisinfectTime = 0;
+ HdlThreadLogic.Current.RunMainInThread(() =>
+ {
+ this.InitMiddleFrame();
+ });
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+ return;
+ }
+ }
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+ //鍏抽棴鑷韩
+ this.CloseForm();
+ });
+ }
#endregion
#region 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________
@@ -343,6 +571,39 @@
frameBack.Y = Application.GetRealHeight(153);
frameBack.Gravity = Gravity.Center;
}
+
+ //濡傛灉鏄櫨琛f灦
+ if (deviceObj.Type == DeviceType.Airer)
+ {
+ frame.RemoveFromParent();
+ frameBorder.Y = Application.GetRealHeight(0);
+ frameBorder.Height = Application.GetRealHeight(299);
+ frameBack.BackgroundImagePath = "Airer/Airer216.png";
+ frameBack.Width = this.GetPictrueRealSize(207);
+ frameBack.Height = this.GetPictrueRealSize(207);
+ frameBack.Y = Application.GetRealHeight(92);
+ frameBack.Gravity = Gravity.CenterHorizontal;
+ }
+
+ //濡傛灉鏄┖姘旇川閲忎紶鎰熷櫒
+ if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+ {//绌烘皵璐ㄩ噺浼犳劅鍣�
+ //鑾峰彇璁惧绫诲瀷
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+ {
+ frame.RemoveFromParent();
+ frameBorder.Y = Application.GetRealHeight(0);
+ frameBorder.Height = Application.GetRealHeight(299);
+ //鍔犺浇鍥炬爣鎺т欢
+ var btnPic = new DeviceInfoIconControl();
+ btnPic.Y = Application.GetRealHeight(104);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ listBackControl.frameTable.AddChidren(btnPic);
+ btnPic.InitControl(deviceObj);
+ }
+ }
}
else
{
@@ -350,16 +611,20 @@
}
}
- if (listIcon.Count > 2)
+ //濡傛灉鏄櫨琛f灦,鏈�5涓洖璺紝浣嗘槸5涓洖璺彧鏄唬琛ㄤ笉鍚屽姛鑳戒娇鐢紝涓嶆槸鐪熷疄鐨勫搴旇澶囷紝鎵�浠ラ粯璁ゅ彧鏄剧ず绗竴鍥炶矾
+ if (deviceObj.Type != DeviceType.Airer)
{
- //璁$畻鐪熷疄楂樺害
- int realHeight = this.GetPictrueRealSize(58 + 58);//涓婁笅闂磋窛
- realHeight += frameBack.ChildrenCount * this.GetPictrueRealSize(124);//鍦嗗湀楂樺害
- realHeight += (frameBack.ChildrenCount - 1) * this.GetPictrueRealSize(60);//鍦嗗湀闂磋窛
- if (realHeight > frameBack.Height)
+ if (listIcon.Count > 2)
{
- //鍙樻洿楂樺害
- frameBack.Height = realHeight;
+ //璁$畻鐪熷疄楂樺害
+ int realHeight = this.GetPictrueRealSize(58 + 58);//涓婁笅闂磋窛
+ realHeight += frameBack.ChildrenCount * this.GetPictrueRealSize(124);//鍦嗗湀楂樺害
+ realHeight += (frameBack.ChildrenCount - 1) * this.GetPictrueRealSize(60);//鍦嗗湀闂磋窛
+ if (realHeight > frameBack.Height)
+ {
+ //鍙樻洿楂樺害
+ frameBack.Height = realHeight;
+ }
}
}
}
@@ -494,16 +759,20 @@
if (nowSelectControl != null)
{
//鍚屼竴涓笢瑗�,涓嶉笩浠�
- if (nowSelectControl.Name == nowContr.Name)
+ if (this.deviceObj.Type != DeviceType.Airer)
{
- return;
+ if (nowSelectControl.Name == nowContr.Name)
+ {
+ return;
+ }
}
+
//涓嶉�夋嫨鐘舵��
nowSelectControl.BorderColor = 0xff979797;
nowSelectControl.TextSize = 13;
nowSelectControl.TextColor = UserCenterColor.Current.TextGrayColor3;
//璁板綍瀹冪殑鍚嶅瓧
- dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
+ dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
}
//閫夋嫨鐘舵��
nowContr.BorderColor = 0xfffb744a;
--
Gitblit v1.8.0