From e379994f2754481fa5c9ac4affbd64908b0918bd Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 09 十二月 2019 15:01:48 +0800
Subject: [PATCH] 2019-12-09-3
---
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs | 349 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 251 insertions(+), 98 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
index c3cd244..0fbe09b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
@@ -1,4 +1,5 @@
锘縰sing System;
+using System.Collections.Generic;
using Shared.Common;
using ZigBee.Device;
@@ -19,6 +20,27 @@
#region 鈼� 鍙橀噺鐢虫槑__________________________
ZigBee.Device.DoorLock doorLock;
+ /// <summary>
+ /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧
+ /// </summary>
+ private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勮澶�
+ /// </summary>
+ private CommonDevice nowSelectDevice = null;
+ /// <summary>
+ /// 璁惧澶囨敞鐨勬帶浠�
+ /// </summary>
+ private FrameCaptionInputControl btnDeviceName = null;
+ /// <summary>
+ /// 璁惧鐨勬煇涓�鍥炶矾
+ /// </summary>
+ private CommonDevice deviceObj = null;
+ Action action;
+ Action actionNone;
+ string modifyDeviceName = "";
+ bool IsModifyName = true;
+ public Action<string> devicNameAction;
#endregion
/// <summary>
@@ -26,7 +48,7 @@
/// </summary>
public void Show()
{
- this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.FunctionSetting));
+ this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.DoorLockFunctionSetting));
EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
{
@@ -42,7 +64,6 @@
public void MidFrameLayoutContent()
{
-
var MidTopFrameLayout = new FrameLayout()
{
X = Application.GetRealWidth(449),
@@ -77,7 +98,7 @@
var bottomFrameLayout2 = new FrameLayout()
{
- Height = Application.GetRealHeight(1319),
+ Height = Application.GetRealHeight(1000),
Y = Application.GetRealHeight(418),
};
this.midFrameLayout.AddChidren(bottomFrameLayout2);
@@ -90,22 +111,28 @@
Text = Language.StringByID(R.MyInternationalizationString.InformationEdit),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextAlignment = TextAlignment.CenterLeft,
- TextSize = 12,
+ TextSize = 15,
};
bottomFrameLayout2.AddChidren(informationEdit);
- for (int i = 0; i < 7; i++)
+ for (int i = 0; i < 6; i++)
{
+ var bottomRowLayout = new FrameLayout()
+ {
+ Height = Application.GetRealHeight(58),
+ };
+ bottomFrameLayout2.AddChidren(bottomRowLayout);
+
var btnName = new Button()
{
Width = Application.GetRealWidth(233),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(58),
- TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+ TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText,
TextAlignment = TextAlignment.CenterLeft,
- TextSize = 12,
+ TextSize = 14,
};
- bottomFrameLayout2.AddChidren(btnName);
+ bottomRowLayout.AddChidren(btnName);
var btnNextFrameLayout = new FrameLayout()
{
@@ -113,19 +140,20 @@
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(861 + 58),
};
- bottomFrameLayout2.AddChidren(btnNextFrameLayout);
+ bottomRowLayout.AddChidren(btnNextFrameLayout);
var btnNext = new Button()
{
- Width = Application.GetRealWidth(60),
- Height = Application.GetRealHeight(60),
+ Width = Application.GetRealWidth(58),
+ Height = Application.GetRealHeight(58),
+ X = Application.GetRealWidth(46)
};
btnNextFrameLayout.AddChidren(btnNext);
var btnLine = new FrameLayout()
{
Width = Application.GetRealWidth(965),
- Height = Application.GetRealHeight(5),
+ Height = 1,
X = Application.GetRealWidth(58),
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
Visible = false,
@@ -134,76 +162,116 @@
if (i == 0)
{
- btnName.Y = Application.GetRealHeight(204);
- btnName.Text = Language.StringByID(R.MyInternationalizationString.DeviceName) + ":";
+ bottomRowLayout.Y = Application.GetRealHeight(220);
+ btnName.Text = Language.StringByID(R.MyInternationalizationString.DeviceRemarkXm);
btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58);
- btnNextFrameLayout.Y = btnName.Y;
- btnNextFrameLayout.X = btnName.Right;
- btnNext.TextAlignment = TextAlignment.CenterLeft;
- btnNext.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
- btnNext.Text = "鏅鸿兘闂ㄩ攣";
+ btnNextFrameLayout.X = Application.GetRealWidth(233);
+ btnNext.Text = doorLock.DeviceName;
+ var btnDeviceNameEditText = new EditText()
+ {
+ X = Application.GetRealWidth(46),
+ Width = Application.GetRealWidth(731),
+ Height = Application.GetRealHeight(58),
+ TextColor = ZigbeeColor.Current.XMGray3,
+ PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor2,
+ TextAlignment = TextAlignment.CenterLeft,
+ Text = string.IsNullOrEmpty(doorLock.DeviceName) ? Language.StringByID(R.MyInternationalizationString.UNKnown) : doorLock.DeviceName,
+ };
+ btnNextFrameLayout.AddChidren(btnDeviceNameEditText);
+
+ btnDeviceNameEditText.TextChangeEventHandler += (sender, e) =>
+ {
+ modifyDeviceName = btnDeviceNameEditText.Text;
+ };
+ Action<Shared.View> actionEdit = async (obj) =>
+ {
+ try
+ {
+ Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
+ var doorLockDeviceList = new List<CommonDevice> { };
+ doorLockDeviceList.Add(doorLock);
+ var result = await Common.LocalDevice.Current.ReMacName(doorLockDeviceList, btnDeviceNameEditText.Text);
+ if (result)
+ {
+ IsModifyName = false;
+ }
+ else
+ {
+ IsModifyName = true;
+ }
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ });
+ }
+ };
+ btnDeviceNameEditText.EditorEnterAction += actionEdit;
+
btnLine.Visible = true;
- btnLine.Y = Application.GetRealHeight(308);
+ btnLine.Y = Application.GetRealHeight(303);
+
}
else if (i == 1)
{
- btnName.Y = Application.GetRealHeight(343);
- btnName.Text = Language.StringByID(R.MyInternationalizationString.BelongZone) + ":";
- var btnArea = new Button()
+ bottomRowLayout.Y = Application.GetRealHeight(312);
+ bottomRowLayout.Height = Application.GetRealHeight(127);
+ btnName.Width = Application.GetRealWidth(0);
+ btnNextFrameLayout.Width = Application.GetRealWidth(0);
+ //鎵�灞炲尯鍩�
+ var rowBeloneArea = new BelongAreaControl(0);
+ bottomRowLayout.AddChidren(rowBeloneArea);
+
+ rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), doorLock);
+ //搴曠嚎
+ rowBeloneArea.AddBottomLine();
+ rowBeloneArea.SelectRoomEvent += (roomKeys) =>
{
- Width = Application.GetRealWidth(789 - 109 - 58),
- Height = Application.GetRealHeight(58),
- X = btnName.Right,
- Y = btnName.Y,
- TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
- Text = "涓�妤硷紝瀹㈠巺",
- TextAlignment = TextAlignment.CenterLeft,
+ //鍙樻洿鎴块棿
+ Common.Room.CurrentRoom.ChangedRoom(doorLock, roomKeys);
};
- bottomFrameLayout2.AddChidren(btnArea);
- btnNextFrameLayout.Y = btnName.Y;
- btnNext.UnSelectedImagePath = "DoorLock/RightIcon.png";
- btnLine.Visible = true;
- btnLine.Y = Application.GetRealHeight(446);
+ btnLine.Visible = false;
}
else if (i == 2)
{
- btnName.Y = Application.GetRealHeight(481);
+ bottomRowLayout.Y = Application.GetRealHeight(481);
btnName.Text = Language.StringByID(R.MyInternationalizationString.BelongModel) + ":";
btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58);
- btnNextFrameLayout.Y = btnName.Y;
- btnNextFrameLayout.X = btnName.Right;
+ btnNextFrameLayout.X = Application.GetRealWidth(233);
btnNext.TextAlignment = TextAlignment.CenterLeft;
btnNext.Height = Application.GetRealHeight(58);
- btnNext.Text = "HDL-Doorlock";
- btnNext.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ btnNext.Text = doorLock.DeviceName;
+ btnNext.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
btnLine.Visible = true;
- btnLine.Y = Application.GetRealHeight(1025 - 449);
+ btnLine.Y = Application.GetRealHeight(575);
}
else if (i == 3)
{
- btnName.Y = Application.GetRealHeight(585 + 35);
+ bottomRowLayout.Y = Application.GetRealHeight(585 + 35);
btnName.Text = Language.StringByID(R.MyInternationalizationString.TemporaryPassword);
- btnNextFrameLayout.Y = btnName.Y;
btnNext.UnSelectedImagePath = "DoorLock/RightIcon.png";
btnLine.Visible = true;
- btnLine.Y = Application.GetRealHeight(619 + 58 + 35);
+ btnLine.Y = Application.GetRealHeight(714);
}
else if (i == 4)
{
- btnName.Y = Application.GetRealHeight(723 + 35);
+ bottomRowLayout.Y = Application.GetRealHeight(723 + 35);
+ btnNext.X = Application.GetRealWidth(0);
btnName.Text = Language.StringByID(R.MyInternationalizationString.RemotelyUnlock);
- btnNextFrameLayout.Y = btnName.Y;
btnNext.Width = Application.GetRealWidth(104);
btnNext.Height = Application.GetRealHeight(63);
btnNext.UnSelectedImagePath = "DoorLock/Switch.png";
btnNext.SelectedImagePath = "DoorLock/SwitchOn.png";
btnLine.Visible = true;
- btnLine.Y = Application.GetRealHeight(723 + 127);
- if (ZigBee.Device.DoorLock.RemoteUnlockPassword == "")
+ btnLine.Y = Application.GetRealHeight(853);
+ if (doorLock.RemoteUnlockPassword == "")
{
btnNext.IsSelected = false;
}
@@ -214,66 +282,151 @@
}
else if (i == 5)
{
- btnName.Y = Application.GetRealHeight(861 + 35);
+ bottomRowLayout.Y = Application.GetRealHeight(861 + 35);
btnName.Text = Language.StringByID(R.MyInternationalizationString.DoorLockTime);
btnNextFrameLayout.Y = btnName.Y;
btnNext.UnSelectedImagePath = "DoorLock/RightIcon.png";
- btnLine.Visible = true;
- btnLine.Y = Application.GetRealHeight(861 + 127);
- }
- else if (i == 6)
- {
- btnName.Y = Application.GetRealHeight(999 + 35);
- btnName.Text = Language.StringByID(R.MyInternationalizationString.Shared);
- btnNextFrameLayout.Y = btnName.Y;
- btnNext.UnSelectedImagePath = "DoorLock/RightIcon.png";
- btnLine.Visible = true;
- btnLine.Y = Application.GetRealHeight(999 + 127);
+ btnLine.Visible = false;
+ btnLine.Y = Application.GetRealHeight(992);
}
int currentIndex = i;
- EventHandler<MouseEventArgs> eHandler = (sender, e) =>
- {
- if (currentIndex == 1)
- {
- }
- else if (currentIndex == 3)
- {
- var temporaryPassword = new Shared.Phone.UserCenter.DoorLock.TemporaryPassword(doorLock);
- Shared.Phone.UserView.HomePage.Instance.AddChidren(temporaryPassword);
- Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
- temporaryPassword.Show();
- }
- else if (currentIndex == 4)
- {
- btnNext.IsSelected = !btnNext.IsSelected;
- if (btnNext.IsSelected)
- {
- if (ZigBee.Device.DoorLock.RemoteUnlockPassword == "")
- {
- RemotePasswordDialog(doorLock, btnNext);
- }
- }
- else
- {
- ZigBee.Device.DoorLock.RemoteUnlockPassword = "";
- }
- }
- else if (currentIndex == 5)
- {
- var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "DoorLockTime");
- Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
- Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
- tempPage.Show();
- }
- else if (currentIndex == 6)
- {
- }
- };
+ EventHandler<MouseEventArgs> eHandler = async (sender, e) =>
+ {
+ if (currentIndex == 3)
+ {
+ action = async () =>
+ {
+ var temporaryPassword = new Shared.Phone.UserCenter.DoorLock.TemporaryPassword(doorLock);
+ Shared.Phone.UserView.HomePage.Instance.AddChidren(temporaryPassword);
+ Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+ temporaryPassword.Show();
+ };
+ actionNone = async () =>
+ {
+ Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+ };
+ HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
+ }
+ else if (currentIndex == 4)
+ {
+ if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+ {
+ var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+ if (result == false)
+ {
+ var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
+ if (result1 == true)
+ {
+ btnNext.IsSelected = !btnNext.IsSelected;
+ if (btnNext.IsSelected)
+ {
+ if (doorLock.RemoteUnlockPassword == "")
+ {
+ RemotePasswordDialog(doorLock, btnNext);
+ }
+ }
+ else
+ {
+ doorLock.RemoteUnlockPassword = "";
+ }
+ }
+ else
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.NoAccess), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+ }
+ }
+ else
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+ }
+ }
+ else
+ {
+ btnNext.IsSelected = !btnNext.IsSelected;
+ if (btnNext.IsSelected)
+ {
+ if (doorLock.RemoteUnlockPassword == "")
+ {
+ RemotePasswordDialog(doorLock, btnNext);
+ }
+ }
+ else
+ {
+ doorLock.RemoteUnlockPassword = "";
+ }
+ }
+ }
+ else if (currentIndex == 5)
+ {
+ var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+ if (result == false)
+ {
+ var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "DoorLockTime");
+ Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
+ Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+ tempPage.Show();
+ }
+ else
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+ }
+ }
+ };
+ bottomRowLayout.MouseDownEventHandler += eHandler;
btnNext.MouseDownEventHandler += eHandler;
btnName.MouseDownEventHandler += eHandler;
btnNextFrameLayout.MouseDownEventHandler += eHandler;
#endregion
}
+
+ //淇濆瓨
+ var btnFinifh = new Button()
+ {
+ Width = Application.GetRealWidth(907),
+ Height = Application.GetRealHeight(127),
+ Y = Application.GetRealHeight(1472),
+ Gravity = Gravity.CenterHorizontal,
+ Radius = (uint)Application.GetRealHeight(127) / 2,
+ TextID = R.MyInternationalizationString.Save,
+ BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+ TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+ TextSize = 16,
+ };
+ this.midFrameLayout.AddChidren(btnFinifh);
+ btnFinifh.MouseUpEventHandler += (sender, e) =>
+ {
+ System.Threading.Tasks.Task.Run(async () =>
+ {
+ Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
+ try
+ {
+ if (IsModifyName)
+ {
+ var doorLockDeviceList = new List<CommonDevice> { };
+ doorLockDeviceList.Add(doorLock);
+ var result = await Common.LocalDevice.Current.ReMacName(doorLockDeviceList, modifyDeviceName);
+ if (result)
+ {
+ if (devicNameAction != null)
+ {
+ devicNameAction(modifyDeviceName);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ var mess = ex.Message;
+ }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ });
+ }
+ });
+ };
}
#region 鈼� 鎺ュ彛瀹炵幇__________________________
--
Gitblit v1.8.0