From ddbf195df596cf94bf77b7e38a659cb5d14b3f95 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期五, 22 十一月 2019 17:48:08 +0800
Subject: [PATCH] 优化门锁类型查找方式(请合并最新代码)
---
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs | 217 +++++++---------
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs | 482 +++++++++---------------------------
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml | 37 +-
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide | 0
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs | 1
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs | 1
6 files changed, 230 insertions(+), 508 deletions(-)
diff --git a/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml b/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
index 9538497..8d8ad9d 100644
--- a/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
+++ b/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -2,18 +2,15 @@
<MonoDevelop.Ide.ItemProperties.GateWay.Droid PreferredExecutionTarget="Android.5c86e4357d63" />
<MonoDevelop.Ide.ItemProperties.GateWay.Ios PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget.B2DE3886-169F-4A06-8F62-51254112D190" />
<MonoDevelop.Ide.ItemProperties.ShardLib PreferredExecutionTarget="Android.M7BBB18B19152766" />
- <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs">
+ <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/ZigBee/Device/ZbGateway.cs">
<Files>
- <File FileName="Shared/Phone/UserCenter/DoorLock/UserManagement.cs" Line="153" Column="15" />
- <File FileName="Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs" Line="130" Column="15" />
- <File FileName="Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs" Line="87" Column="1" />
- <File FileName="Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs" Line="9" Column="6" />
- <File FileName="Shared/Phone/ZigBee/Device/ZbGateway.cs" Line="3424" Column="41" />
- <File FileName="Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs" Line="59" Column="9" />
- <File FileName="Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs" Line="34" Column="87" />
- <File FileName="Shared/Phone/ZigBee/Device/DoorLock.cs" Line="2054" Column="1" />
- <File FileName="Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs" Line="54" Column="15" />
- <File FileName="Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" Line="74" Column="15" />
+ <File FileName="Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs" Line="189" Column="41" />
+ <File FileName="Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs" Line="64" Column="10" />
+ <File FileName="Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs" Line="69" Column="24" />
+ <File FileName="Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs" Line="169" Column="42" />
+ <File FileName="Shared/Phone/Device/Category/Category.cs" Line="1466" Column="1" />
+ <File FileName="Shared/Phone/Device/Category/Category.cs" Line="1468" Column="26" />
+ <File FileName="Shared/Phone/ZigBee/Device/ZbGateway.cs" Line="3347" Column="16" />
</Files>
<Pads>
<Pad Id="ProjectPad">
@@ -21,13 +18,12 @@
<Node name="GateWay" expanded="True">
<Node name="Shared" expanded="True">
<Node name="Phone" expanded="True">
- <Node name="UserCenter" expanded="True">
- <Node name="DoorLock" expanded="True">
- <Node name="MemberFrozenPage.cs" selected="True" />
- </Node>
- </Node>
+ <Node name="Device" expanded="True" />
+ <Node name="UserCenter" expanded="True" />
<Node name="ZigBee" expanded="True">
- <Node name="Device" expanded="True" />
+ <Node name="Device" expanded="True">
+ <Node name="ZbGateway.cs" selected="True" />
+ </Node>
</Node>
</Node>
</Node>
@@ -45,10 +41,9 @@
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhoneSimulator" />
<MonoDevelop.Ide.DebuggingService.Breakpoints>
<BreakpointStore>
- <Breakpoint file="/Users/hdl/Desktop/git/HomeApp20191118/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" relfile="Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" line="282" column="14" />
- <Breakpoint file="/Users/hdl/Desktop/git/HomeApp20191118/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" relfile="Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" line="283" column="14" />
- <Breakpoint file="/Users/hdl/Desktop/git/HomeApp20191118/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" relfile="Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" line="438" column="1" />
- <Breakpoint file="/Users/hdl/Desktop/git/HomeApp20191118/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" relfile="Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs" line="439" column="1" />
+ <Breakpoint file="/Users/hdl/Desktop/git/HomeApp20191118/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs" relfile="Shared/Phone/ZigBee/Device/ZbGateway.cs" line="3352" column="1" />
+ <Breakpoint file="/Users/hdl/Desktop/git/HomeApp20191118/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs" relfile="Shared/Phone/ZigBee/Device/ZbGateway.cs" line="3350" column="1" />
+ <Breakpoint file="/Users/hdl/Desktop/git/HomeApp20191118/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs" relfile="Shared/Phone/ZigBee/Device/ZbGateway.cs" line="3292" column="1" />
</BreakpointStore>
</MonoDevelop.Ide.DebuggingService.Breakpoints>
<MultiItemStartupConfigurations />
diff --git a/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide b/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
index d4142da..e1e206c 100644
--- a/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
+++ b/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
Binary files differ
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs
old mode 100755
new mode 100644
index 0a1e075..d8c9401
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs
@@ -267,6 +267,7 @@
if (form is UnLockMethod)
{
+ doorLock.currentUserDisplayMethod = "";
((UnLockMethod)form).RefreshList();
break;
}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
old mode 100755
new mode 100644
index cef7875..c29c406
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
@@ -62,7 +62,6 @@
public void MidFrameLayoutContent()
{
-
var MidTopFrameLayout = new FrameLayout()
{
X = Application.GetRealWidth(449),
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
index 76083c2..2ee625c 100644
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
@@ -89,6 +89,7 @@
/// </summary>
public void Show()
{
+ doorLock.currentUserDisplayMethod = "";
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.LockMethod));
this.btnTitleLine.Visible = false;
EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
@@ -170,11 +171,31 @@
Y = Application.GetRealHeight(35),
X = Application.GetRealWidth(812 - 100),
TextAlignment = TextAlignment.CenterRight,
- Text = Language.StringByID(R.MyInternationalizationString.AllMethod),
TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText,
TextSize = 12,
};
midTopFrameLayout.AddChidren(btnAllMethod);
+ // 绫诲瀷鍖哄垎
+ if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod))
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod);
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock))
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock);
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock))
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock);
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock))
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock);
+ }
+ else
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod);
+ }
var btnNext = new Button()
{
@@ -251,7 +272,7 @@
/// </summary>
/// <param name="gateway"></param>
/// <param name="key"></param>
- public void RefreshList()
+ public void RefreshList(int unlockMethod = -1)
{
this.midFrameLayout.RemoveAll();
MidFrameLayoutContent();
@@ -302,6 +323,30 @@
foreach (var curUserId in curAccountDoorLockUserList.Keys)
{
var curDoorLockUser = curAccountDoorLockUserList[curUserId];
+ switch (unlockMethod)
+ {
+ case 0:
+ if (curDoorLockUser.UnlockType != unlockMethod)
+ {
+ continue;
+ }
+ break;
+ case 3:
+ if (curDoorLockUser.UnlockType != unlockMethod)
+ {
+ continue;
+ }
+ break;
+ case 15:
+ if (curDoorLockUser.UnlockType != unlockMethod)
+ {
+ continue;
+ }
+ break;
+ default:
+ break;
+ }
+
#region UI
var rowFrameLayout = new RowLayout()
{
@@ -367,6 +412,7 @@
};
rowFrameLayout.AddRightView(btnDel);
#endregion
+
#region 鏁版嵁澶勭悊
int currentIndex = i;
if (currentIndex == curAccountDoorLockUserList.Keys.Count - 1)
@@ -472,56 +518,14 @@
{
if (e1)
{
- var passData = doorLock.SetUserAccessData(curDoorLockUser.UserID, ZigBee.Device.DoorLock.AccessType.DelCurrentUser);
- var resultData = await doorLock.DefaultControlAsync(passData);
- if (resultData != null && resultData.defaultControlResponseData != null)
+ try
{
- if (resultData.defaultControlResponseData.status == 0 || resultData.defaultControlResponseData.status == 2)
+ CommonPage.Loading.Start("");
+ var passData = doorLock.SetUserAccessData(curDoorLockUser.UserID, ZigBee.Device.DoorLock.AccessType.DelCurrentUser);
+ var resultData = await doorLock.DefaultControlAsync(passData);
+ if (resultData != null && resultData.defaultControlResponseData != null)
{
- var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
- if (UserCenterResourse.UserInfo.AuthorityNo != 1)
- {
- deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
- deleteDoorLockData.IsOtherAccountCtrl = true;
- }
- if (doorLock.DeviceAddr != null)
- {
- deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
- }
- deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
- deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
- deleteDoorLockData.DelDoorLockDelType = 2;
- var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
- if (result != null)
- {
- if (result.StateCode == "Success")
- {
- isSecondDel = false;
- if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
- {
- doorLock.localDoorLockAccountList.Remove(curDoorLockUser.ConnectedAccount);
- var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
- localDoorLockObj.UserID = curDoorLockUser.UserID;
- doorLock.localDoorLockUserList.Remove(curUserId);
- doorLock.ReSave();
- RefreshList();
- }
- }
- else
- {
- //寮�鍏冲浘鏍�
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
- }
- }
- else
- {
- isSecondDel = true;
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
- }
- }
- else
- {
- if (isSecondDel)
+ if (resultData.defaultControlResponseData.status == 0 || resultData.defaultControlResponseData.status == 2)
{
var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
if (UserCenterResourse.UserInfo.AuthorityNo != 1)
@@ -544,15 +548,17 @@
isSecondDel = false;
if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
{
- doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID);
+ doorLock.localDoorLockAccountList.Remove(curDoorLockUser.ConnectedAccount);
var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
localDoorLockObj.UserID = curDoorLockUser.UserID;
doorLock.localDoorLockUserList.Remove(curUserId);
+ doorLock.ReSave();
RefreshList();
}
}
else
{
+ //寮�鍏冲浘鏍�
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
}
}
@@ -564,20 +570,69 @@
}
else
{
- if (curDoorLockUser.UserID < 10)
+ if (isSecondDel)
{
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.OnlyBeDeletedOnTheDevice), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
+ var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
+ if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+ {
+ deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+ deleteDoorLockData.IsOtherAccountCtrl = true;
+ }
+ if (doorLock.DeviceAddr != null)
+ {
+ deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+ }
+ deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
+ deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
+ deleteDoorLockData.DelDoorLockDelType = 2;
+ var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
+ if (result != null)
+ {
+ if (result.StateCode == "Success")
+ {
+ isSecondDel = false;
+ if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
+ {
+ doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID);
+ var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
+ localDoorLockObj.UserID = curDoorLockUser.UserID;
+ doorLock.localDoorLockUserList.Remove(curUserId);
+ RefreshList();
+ }
+ }
+ else
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
+ }
+ }
+ else
+ {
+ isSecondDel = true;
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
+ }
}
else
{
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
+ if (curDoorLockUser.UserID < 10)
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.OnlyBeDeletedOnTheDevice), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
+ }
+ else
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
+ }
}
}
}
+ else
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+ }
}
- else
+ catch { }
+ finally
{
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+ CommonPage.Loading.Hide();
}
}
};
@@ -666,6 +721,7 @@
oldbutton = btnAllMethod;
oldbuttonText = btnMethodText;
doorLock.currentUserDisplayMethod = btnMethodText.Text;
+ doorLock.ReSave();
btnAllMethod.IsSelected = true;
oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
@@ -676,15 +732,15 @@
}
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock))
{
- DisplayByType(0);
+ RefreshList(0);
}
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock))
{
- DisplayByType(15);
+ RefreshList(15);
}
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock))
{
- DisplayByType(3);
+ RefreshList(3);
}
}
dialog.Close();
@@ -717,6 +773,13 @@
break;
}
+ if (doorLock.currentUserDisplayMethod == "" && i == 0)
+ {
+ btnAllMethod.IsSelected = true;
+ btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ oldbutton = btnAllMethod;
+ oldbuttonText = btnMethodText;
+ }
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod) && i == 0)
{
btnAllMethod.IsSelected = true;
@@ -749,305 +812,6 @@
}
/// <summary>
- /// 閫氳繃绫诲瀷绛涢�夋樉绀�
- /// </summary>
- public void DisplayByType(int unlockMethod)
- {
- bodyView.RemoveAll();
- var curAccountDoorLockUserList = new Dictionary<int, ZigBee.Device.DoorLock.LocaDoorLockObj>();
-
- foreach (var curUserId in doorLock.localDoorLockUserList.Keys)
- {
- var curDoorLockUser = doorLock.localDoorLockUserList[curUserId];
-
- if (curDoorLockUser.ConnectedAccount == "" || curDoorLockUser.ConnectedAccount != curAccountObj.SubAccountDistributedMark)
- {
- continue;
- }
- else
- {
- curAccountDoorLockUserList.Add(curDoorLockUser.UserID, curDoorLockUser);
- }
- }
-
- if (curAccountDoorLockUserList.Count == 0)
- {
- bodyView.Height = Application.GetRealHeight(0);
- entryStatusPic.Visible = true;
- btnPicTip.Visible = true;
- btnPicTip1.Visible = true;
- entryStatusPic.Height = Application.GetRealHeight(435);
- entryStatusPic.Width = Application.GetRealHeight(757);
- btnPicTip.Height = Application.GetRealHeight(98 / 2);
- btnPicTip1.Height = Application.GetRealHeight(98 / 2);
- }
- else
- {
- entryStatusPic.Visible = false;
- btnPicTip.Visible = false;
- btnPicTip1.Visible = false;
- entryStatusPic.Height = Application.GetRealHeight(0);
- entryStatusPic.Width = Application.GetRealHeight(0);
- btnPicTip.Height = Application.GetRealHeight(0);
- btnPicTip1.Height = Application.GetRealHeight(0);
- bodyView.Height = Application.GetRealHeight(1921 - 184 - 116);
-
- var frameLayoutRow = new FrameLayout()
- {
- Height = Application.GetMinRealAverage(0),
- BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
- };
- bodyView.AddChidren(frameLayoutRow);
- int i = 0;
- foreach (var curUserId in curAccountDoorLockUserList.Keys)
- {
- var curDoorLockUser = curAccountDoorLockUserList[curUserId];
- if (curDoorLockUser.UnlockType != unlockMethod)
- {
- continue;
- }
- #region UI
- var rowFrameLayout = new RowLayout()
- {
- Height = Application.GetRealHeight(127 + 23),
- X = Application.GetRealWidth(58),
- Y = i * Application.GetRealHeight(150),
- Width = Application.GetRealWidth(965),
- LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
- };
- frameLayoutRow.AddChidren(rowFrameLayout);
-
- var btnPicFrameLayout = new FrameLayout()
- {
- Width = Application.GetRealWidth(81),
- Height = Application.GetRealHeight(81),
- X = Application.GetRealWidth(40),
- Y = Application.GetRealHeight(49),
- };
- rowFrameLayout.AddChidren(btnPicFrameLayout);
-
- var btnPic = new Button()
- {
- Width = Application.GetRealWidth(84),
- Height = Application.GetRealHeight(84),
- UnSelectedImagePath = "DoorLock/DoorLockUserPic.png",
- };
- btnPicFrameLayout.AddChidren(btnPic);
-
- var btnDoorlockUser = new EditText()
- {
- Width = Application.GetRealWidth(1080 - 173),
- Height = Application.GetRealHeight(60),
- X = Application.GetRealWidth(173),
- Y = Application.GetRealHeight(35),
- TextSize = 14,
- PlaceholderTextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
- TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
- TextAlignment = TextAlignment.CenterLeft,
- };
- rowFrameLayout.AddChidren(btnDoorlockUser);
-
- var btnMember = new Button()
- {
- Width = Application.GetRealWidth(1080 - 173),
- Height = Application.GetRealHeight(49),
- X = Application.GetRealWidth(173),
- Y = Application.GetRealHeight(95),
- TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
- TextSize = 14,
- TextAlignment = TextAlignment.CenterLeft,
- };
- rowFrameLayout.AddChidren(btnMember);
-
- var btnDel = new Button()
- {
- Width = Application.GetRealWidth(1080 - 173),
- Height = Application.GetRealHeight(49),
- X = Application.GetRealWidth(173),
- Y = Application.GetRealHeight(95),
- Text = Language.StringByID(R.MyInternationalizationString.DelBindDevice),
- TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
- TextSize = 12,
- TextAlignment = TextAlignment.Center,
- BackgroundColor = Shared.Common.ZigbeeColor.Current.XMDel,
- };
- rowFrameLayout.AddRightView(btnDel);
- #endregion
- #region 鏁版嵁澶勭悊
- int currentIndex = i;
- if (currentIndex == curAccountDoorLockUserList.Keys.Count - 1)
- {
- rowFrameLayout.LineColor = Shared.Common.ZigbeeColor.Current.XMWhite;
- }
- switch (curDoorLockUser.UnlockType)
- {
- case 0:
- if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
- {
- btnDoorlockUser.Text = curDoorLockUser.UserName;
- }
- else
- {
- btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID;
- }
- break;
- case 3:
- if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
- {
- btnDoorlockUser.Text = curDoorLockUser.UserName;
- }
- else
- {
- btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID;
- }
- break;
- case 15:
- if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
- {
- btnDoorlockUser.Text = curDoorLockUser.UserName;
- }
- else
- {
- btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID;
- }
- break;
- }
-
- if (curAccountObj.UserName == "" || curAccountObj.UserName == null)
- {
- btnMember.Text = curAccountObj.Account;
- }
- else
- {
- btnMember.Text = curAccountObj.UserName;
- }
-
- Action<Shared.View> action = async (obj) =>
- {
- var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
- if (UserCenterResourse.UserInfo.AuthorityNo != 1)
- {
- refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
- refreshDoorLockData.IsOtherAccountCtrl = true;
- }
- if (doorLock.DeviceAddr != null)
- {
- refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
- }
- refreshDoorLockData.OpenLockMode = curDoorLockUser.UnlockType;
- refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
- refreshDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
- refreshDoorLockData.UserIdRemarks = btnDoorlockUser.Text;
- var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
- if (result != null)
- {
- if (result.StateCode == "Success")
- {
- if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
- {
- doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID);
- var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
- localDoorLockObj.UserID = curDoorLockUser.UserID;
- localDoorLockObj.UnlockType = curDoorLockUser.UnlockType;
- localDoorLockObj.EntryTime = curDoorLockUser.EntryTime;
- localDoorLockObj.UserName = refreshDoorLockData.UserIdRemarks;
- localDoorLockObj.ConnectedAccount = curAccountObj.SubAccountDistributedMark;
- doorLock.localDoorLockUserList.Add(curDoorLockUser.UserID, localDoorLockObj);
- RefreshList();
- }
- }
- else
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ModigfyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
- }
- }
- else
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
- }
- };
- btnDoorlockUser.EditorEnterAction += action;
-
- btnDel.MouseUpEventHandler += (sender, e) =>
- {
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureToDelUnlockMethod),
- Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += async (sender1, e1) =>
- {
- if (e1)
- {
- var passData = doorLock.SetUserAccessData(curDoorLockUser.UserID, ZigBee.Device.DoorLock.AccessType.DelCurrentUser);
- var resultData = await doorLock.DefaultControlAsync(passData);
- if (resultData != null && resultData.defaultControlResponseData != null)
- {
- if (resultData.defaultControlResponseData.status == 0)
- {
- var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
- if (UserCenterResourse.UserInfo.AuthorityNo != 1)
- {
- deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
- deleteDoorLockData.IsOtherAccountCtrl = true;
- }
- if (doorLock.DeviceAddr != null)
- {
- deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
- }
- deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
- deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
- deleteDoorLockData.DelDoorLockDelType = 2;
- var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
- if (result != null)
- {
- if (result.StateCode == "Success")
- {
- if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
- {
- doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID);
- var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
- localDoorLockObj.UserID = curDoorLockUser.UserID;
- doorLock.localDoorLockUserList.Remove(curUserId);
- RefreshList();
- }
- }
- else
- {
- if (curDoorLockUser.UserID < 10)
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.OnlyBeDeletedOnTheDevice), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
- }
- else
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
- }
- }
- }
- else
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
- }
- }
- else
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
- }
-
- }
- else
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
- }
- }
- };
- };
- #endregion
- i++;
- }
- frameLayoutRow.Height = i * Application.GetRealHeight(127 + 23);
- }
- }
-
- /// <summary>
/// 閲嶅啓绉婚櫎鏂规硶
/// </summary>
public override void RemoveFromParent()
@@ -1055,8 +819,6 @@
ZbGateway.StatusList.Remove(this);
base.RemoveFromParent();
}
-
-
public void Changed(CommonDevice common)
{
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
index 699da40..5ea8018 100644
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
@@ -23,6 +23,7 @@
string currentType = string.Empty;
List<Shared.Phone.UserCenter.MemberInfoRes> localAccountList;
VerticalRefreshLayout bodyView;
+ Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj> oldLocalDoorLockUserList = new Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj>();
#endregion
void ReadDoorLockUserInfo()
@@ -32,6 +33,16 @@
try
{
var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock);
+ if (oldLocalDoorLockUserList.Count != 0)
+ {
+ if (list.Count == 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+ });
+ }
+ }
}
catch { }
finally
@@ -50,6 +61,7 @@
/// </summary>
public void Show()
{
+ doorLock.currentUserDisplayMethod = "";
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.UndistributedUnlockMethod));
this.btnTitleLine.Visible = false;
EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
@@ -87,11 +99,31 @@
Y = Application.GetRealHeight(35),
X = Application.GetRealWidth(812 - 100),
TextAlignment = TextAlignment.CenterRight,
- Text = Language.StringByID(R.MyInternationalizationString.AllMethod),
TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText,
TextSize = 12,
};
midTopFrameLayout.AddChidren(btnAllMethod);
+ // 绫诲瀷鍖哄垎
+ if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod))
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod);
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock))
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock);
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock))
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock);
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock))
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock);
+ }
+ else
+ {
+ btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod);
+ }
var btnNext = new Button()
{
@@ -130,8 +162,10 @@
};
}
- void RefreshList()
+ void RefreshList(int unlockMethod = -1)
{
+ this.midFrameLayout.RemoveAll();
+ MidFrameLayoutContent();
bodyView.RemoveAll();
var curLocalDoorLockUserList = new Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj>();
@@ -152,7 +186,31 @@
int i = 0;
foreach (var curUserId in curLocalDoorLockUserList.Keys)
{
+ oldLocalDoorLockUserList = curLocalDoorLockUserList;
var curDoorLockUser = curLocalDoorLockUserList[curUserId];
+ switch (unlockMethod)
+ {
+ case 0:
+ if (curDoorLockUser.UnlockType != unlockMethod)
+ {
+ continue;
+ }
+ break;
+ case 3:
+ if (curDoorLockUser.UnlockType != unlockMethod)
+ {
+ continue;
+ }
+ break;
+ case 15:
+ if (curDoorLockUser.UnlockType != unlockMethod)
+ {
+ continue;
+ }
+ break;
+ default:
+ break;
+ }
var rowFrameLayout = new FrameLayout()
{
Height = Application.GetRealHeight(127 + 23),
@@ -522,7 +580,27 @@
var d = uList.Find((value) => { return value == curDoorLockUser.UserID; });
if (d != null)
{
- RefreshList();
+ // 绫诲瀷鍖哄垎
+ if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod))
+ {
+ RefreshList();
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock))
+ {
+ RefreshList(0);
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock))
+ {
+ RefreshList(15);
+ }
+ else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock))
+ {
+ RefreshList(3);
+ }
+ else if (doorLock.currentUserDisplayMethod == "")
+ {
+ RefreshList();
+ }
flMain.RemoveFromParent();
bottomFrameLayout.RemoveAll();
}
@@ -635,15 +713,15 @@
}
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock))
{
- DisplayByType(0);
+ RefreshList(0);
}
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock))
{
- DisplayByType(15);
+ RefreshList(15);
}
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock))
{
- DisplayByType(3);
+ RefreshList(3);
}
}
dialog.Close();
@@ -676,6 +754,13 @@
break;
}
+ if (doorLock.currentUserDisplayMethod == "" && i == 0)
+ {
+ btnAllMethod.IsSelected = true;
+ btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ oldbutton = btnAllMethod;
+ oldbuttonText = btnMethodText;
+ }
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod) && i == 0)
{
btnAllMethod.IsSelected = true;
@@ -707,126 +792,6 @@
}
}
- // 閫氳繃绫诲瀷绛涢�夋樉绀�
- void DisplayByType(int unlockMethod)
- {
- bodyView.RemoveAll();
-
- var curLocalDoorLockUserList = new Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj>();
-
- foreach (var curUserId in doorLock.localDoorLockUserList.Keys)
- {
- var curDoorLockUser = doorLock.localDoorLockUserList[curUserId];
- if (curDoorLockUser.ConnectedAccount != "" || curDoorLockUser.UnlockType != unlockMethod)
- {
- continue;
- }
- curLocalDoorLockUserList.Add(curUserId, curDoorLockUser);
- }
-
- int i = 0;
- foreach (var curUserId in curLocalDoorLockUserList.Keys)
- {
- var curDoorLockUser = curLocalDoorLockUserList[curUserId];
-
- var rowFrameLayout = new FrameLayout()
- {
- Height = Application.GetRealHeight(150),
- BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
- };
- bodyView.AddChidren(rowFrameLayout);
-
- var btnDistributeUnlockIconFrameLayout = new FrameLayout()
- {
- Height = Application.GetRealHeight(84),
- Width = Application.GetRealWidth(84),
- X = Application.GetRealWidth(58),
- Y = Application.GetRealHeight(43),
- };
- rowFrameLayout.AddChidren(btnDistributeUnlockIconFrameLayout);
-
- var btnDistributeUnlockIcon = new Button()
- {
- Height = Application.GetRealHeight(84),
- Width = Application.GetRealWidth(84),
- UnSelectedImagePath = "DoorLock/DistributeUnlockIcon.png",
- };
- btnDistributeUnlockIconFrameLayout.AddChidren(btnDistributeUnlockIcon);
-
- var btnText = new Button()
- {
- X = Application.GetRealWidth(176),
- Width = Application.GetRealWidth(300),
- Height = Application.GetRealHeight(300),
- TextAlignment = TextAlignment.CenterLeft,
- TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
- Gravity = Gravity.CenterVertical,
- };
- rowFrameLayout.AddChidren(btnText);
-
- var line2 = new Button()
- {
- Y = rowFrameLayout.Height - 1,
- X = Application.GetRealWidth(58),
- Width = Application.GetRealWidth(965),
- Height = 1,
- BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
- };
- rowFrameLayout.AddChidren(line2);
-
- #region 鏁版嵁澶勭悊
- int currentIndex = i;
- if (currentIndex == curLocalDoorLockUserList.Keys.Count - 1)
- {
- line2.Visible = false;
- }
-
- switch (curDoorLockUser.UnlockType)
- {
- case 0:
- if (curDoorLockUser.UserName != "")
- {
- btnText.Text = curDoorLockUser.UserName;
- }
- else
- {
- btnText.Text = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID;
- }
- break;
- case 3:
- if (curDoorLockUser.UserName != "")
- {
- btnText.Text = curDoorLockUser.UserName;
- }
- else
- {
- btnText.Text = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID;
- }
- break;
- case 15:
- if (curDoorLockUser.UserName != "")
- {
- btnText.Text = curDoorLockUser.UserName;
- }
- else
- {
- btnText.Text = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID;
- }
- break;
- }
-
- EventHandler<MouseEventArgs> eHandler = (sender, e) =>
- {
- MatchUsersFrameLayout(curDoorLockUser);
- };
- btnDistributeUnlockIcon.MouseUpEventHandler += eHandler;
- btnDistributeUnlockIconFrameLayout.MouseUpEventHandler += eHandler;
- rowFrameLayout.MouseUpEventHandler += eHandler;
- btnText.MouseUpEventHandler += eHandler;
- #endregion
- i++;
- }
- }
#region 鈼� 鎺ュ彛瀹炵幇__________________________
/// <summary>
/// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
--
Gitblit v1.8.0