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