From f71e74b5f0d2716fbf05da016cdaa18d64e09f80 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 31 十二月 2020 17:01:18 +0800 Subject: [PATCH] 又换完成最新门锁。空气质量传感器完成数据和基本配置功能。开发图表和自动化的同事可下载此代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs | 499 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 263 insertions(+), 236 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs old mode 100755 new mode 100644 index 7727d38..64ece7c --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs @@ -6,243 +6,270 @@ namespace Shared.Phone.UserCenter.DoorLock { - /// <summary> - /// 闂ㄩ攣绠$悊 + /// <summary> + /// 闂ㄩ攣绠$悊 + /// </summary> + public class UserManagement : DoorLockCommonLayout + { + /// 鏋勯�犲嚱鏁� /// </summary> - public class UserManagement : DoorLockCommonLayout, ZigBee.Common.IStatus + /// <param name="doorLock"></param> + public UserManagement(ZigBee.Device.DoorLock doorLock) { - /// <summary> - /// 鎸夐敭妯″紡鎺ユ敹 - /// </summary> - /// <param name="common">Common.</param> - public void Changed(CommonDevice common) - { - Shared.Application.RunOnMainThread(() => - { - }); - } - /// 鏋勯�犲嚱鏁� - /// </summary> - /// <param name="doorLock"></param> - public UserManagement(ZigBee.Device.DoorLock doorLock) - { - this.doorLock = doorLock; - } - - #region 鈼� 鍙橀噺鐢虫槑__________________________ - ZigBee.Device.DoorLock doorLock; - VerticalScrolViewLayout midVerticalScrolViewLayout; - #endregion - - void ReadAccountList() - { - System.Threading.Tasks.Task.Run(async () => - { - Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); - try - { - var localAccountListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.LocalAccountList(); - if (localAccountListTemp != null) - { - doorLock.localAllAccountList.Clear(); - doorLock.localAllAccountList = localAccountListTemp; - foreach (var sub in localAccountListTemp) - { - //鍒濆鍖栨潈闄愪俊鎭� - if (doorLock.IsFreezeAccount.ContainsKey(sub.SubAccountDistributedMark) == false) - { - doorLock.IsFreezeAccount.Add(sub.SubAccountDistributedMark, false); - } - if (doorLock.HasRemoteUnlockAccess.ContainsKey(sub.SubAccountDistributedMark) == false) - { - doorLock.HasRemoteUnlockAccess.Add(sub.SubAccountDistributedMark, false); - } - if (doorLock.IsFailedToGetDoorLockInfo.ContainsKey(sub.SubAccountDistributedMark) == false) - { - doorLock.IsFailedToGetDoorLockInfo.Add(sub.SubAccountDistributedMark, false); - } - } - doorLock.ReSave(); - } - else - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); - }); - } - } - catch { } - finally - { - Application.RunOnMainThread(() => - { - MidFrameLayoutContent(); - CommonPage.Loading.Hide(); - }); - } - }); - } - - public void Show() - { - this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.UserManagement)); - - EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => - { - RemoveFromParent(); - }; - this.btnBack.MouseUpEventHandler += eHandlerBack; - this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; - this.MidFrameLayout(this); - - var btnAddFrameLayout = new FrameLayout - { - X = Application.GetRealWidth(829 - 116), - Height = Application.GetRealHeight(72), - Width = Application.GetRealWidth(190), - }; - this.titleFrameLayout.AddChidren(btnAddFrameLayout); - - var btnUndistributeIcon = new Button - { - Height = Application.GetRealHeight(69), - Width = Application.GetRealWidth(69), - UnSelectedImagePath = "DoorLock/UndistributeIcon.png", - }; - btnAddFrameLayout.AddChidren(btnUndistributeIcon); - - var btnUndistributeText = new Button - { - Height = Application.GetRealHeight(72), - Width = Application.GetRealWidth(121), - TextID = R.MyInternationalizationString.Undistributed, - TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, - X = btnUndistributeIcon.Right, - TextAlignment = TextAlignment.CenterLeft, - }; - btnAddFrameLayout.AddChidren(btnUndistributeText); - if (UserCenterResourse.UserInfo.AuthorityNo != 1) - { - btnUndistributeIcon.Width = 0; - btnUndistributeText.Width = 0; - } - EventHandler<MouseEventArgs> eHandler = (sender, e) => - { - var undistributeDoorlockUserPage = new Shared.Phone.UserCenter.DoorLock.UndistributeDoorlockUserPage(doorLock, doorLock.localAllAccountList); - Shared.Phone.UserView.HomePage.Instance.AddChidren(undistributeDoorlockUserPage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - undistributeDoorlockUserPage.Show(); - }; - btnAddFrameLayout.MouseDownEventHandler += eHandler; - btnUndistributeText.MouseDownEventHandler += eHandler; - btnUndistributeIcon.MouseDownEventHandler += eHandler; - midVerticalScrolViewLayout = new VerticalScrolViewLayout() - { - }; - this.midFrameLayout.AddChidren(midVerticalScrolViewLayout); - ReadAccountList(); - } - - async void MidFrameLayoutContent() - { - midVerticalScrolViewLayout.RemoveAll(); - for (int i = 0; i < doorLock.localAllAccountList.Count; i++) - { - var currentAccount = doorLock.localAllAccountList[i]; - var RowView = new FrameLayout() - { - Height = Application.GetRealHeight(161), - BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout, - }; - midVerticalScrolViewLayout.AddChidren(RowView); - - var btnText = new Button() - { - X = Application.GetRealWidth(58), - Width = Application.GetRealWidth(300), - TextAlignment = TextAlignment.CenterLeft, - TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, - Gravity = Gravity.CenterVertical, - TextSize = 14, - }; - RowView.AddChidren(btnText); - - var btnRightFrameLayout = new FrameLayout() - { - Height = Application.GetRealHeight(110), - Width = Application.GetRealWidth(110), - X = Application.CurrentWidth - Application.GetRealWidth(150), - Y = Application.GetRealHeight(25), - }; - RowView.AddChidren(btnRightFrameLayout); - - var btnRight = new Button() - { - Height = Application.GetRealHeight(58), - Width = Application.GetRealWidth(58), - UnSelectedImagePath = "DoorLock/RightIcon.png", - Gravity = Gravity.Center, - }; - btnRightFrameLayout.AddChidren(btnRight); - - var line2 = new Button() - { - Y = RowView.Height - 1, - X = Application.GetRealWidth(58), - Width = Application.GetRealWidth(965), - Height = 1, - BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, - }; - RowView.AddChidren(line2); - int currentIndex = i; - if (currentIndex == doorLock.localAllAccountList.Count - 1) - { - line2.Visible = false; - } - - if (currentAccount.UserName != null) - { - btnText.Text = currentAccount.UserName; - } - else - { - btnText.Text = currentAccount.Account; - } - - EventHandler<MouseEventArgs> eHandler = (sender, e) => - { - if (currentIndex == 0) - { - var masterManagementPage = new Shared.Phone.UserCenter.DoorLock.MasterManagementPage(doorLock, currentAccount); - Shared.Phone.UserView.HomePage.Instance.AddChidren(masterManagementPage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - masterManagementPage.Show(); - } - else - { - var memberFrozenPage = new Shared.Phone.UserCenter.DoorLock.MemberFrozenPage(doorLock, currentAccount); - Shared.Phone.UserView.HomePage.Instance.AddChidren(memberFrozenPage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - memberFrozenPage.Show(); - } - }; - btnRight.MouseUpEventHandler += eHandler; - RowView.MouseUpEventHandler += eHandler; - btnText.MouseUpEventHandler += eHandler; - } - } - - public void DeviceInfoChange(CommonDevice common, string typeTag) - { - } - - public void ChangedILogicStatus(ZigBee.Device.Logic logic) - { - } - - public void ChangedISceneStatus(Scene scene) - { - } + this.doorLock = doorLock; + localAllAccountListTemp = doorLock.localAllAccountList; + localDoorLockUserListTemp = doorLock.localDoorLockUserList; } + + #region 鈼� 鍙橀噺鐢虫槑__________________________ + ZigBee.Device.DoorLock doorLock; + VerticalRefreshLayout midVerticalScrolViewLayout; + public List<Shared.Phone.UserCenter.MemberInfoRes> localAllAccountListTemp = new List<Shared.Phone.UserCenter.MemberInfoRes> { }; + public Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj> localDoorLockUserListTemp = new Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj>(); + + #endregion + + /// <summary> + /// 鏁版嵁鍒锋柊 + /// </summary> + void ReadAccountDoorLockInfoList() + { + System.Threading.Tasks.Task.Run(async () => + { + try + { + var localAccountListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.LocalAccountList(); + if (localAccountListTemp != null) + { + doorLock.localAllAccountList.Clear(); + doorLock.localAllAccountList = localAccountListTemp; + localAllAccountListTemp = doorLock.localAllAccountList; + + //鍒濆鍖栨潈闄愪俊鎭� + foreach (var sub in localAccountListTemp) + { + if (doorLock.IsFreezeAccount.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.IsFreezeAccount.Add(sub.SubAccountDistributedMark, false); + } + if (doorLock.HasRemoteUnlockAccess.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.HasRemoteUnlockAccess.Add(sub.SubAccountDistributedMark, false); + } + if (doorLock.IsFailedToGetDoorLockInfo.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.IsFailedToGetDoorLockInfo.Add(sub.SubAccountDistributedMark, false); + } + } + + //鑾峰彇鏈湴闂ㄩ攣鍒楄〃 + if (localDoorLockUserListTemp.Count == 0) + { + var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock); + localDoorLockUserListTemp = doorLock.localDoorLockUserList; + } + doorLock.ReSave(); + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + MidFrameLayoutContent(); + CommonPage.Loading.Hide(); + midVerticalScrolViewLayout.EndHeaderRefreshing(); + }); + } + }); + } + + /// <summary> + /// 鏄剧ず鐣岄潰 + /// </summary> + public void Show() + { + this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.UserManagement)); + + EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => + { + RemoveFromParent(); + }; + this.btnBack.MouseUpEventHandler += eHandlerBack; + this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; + this.MidFrameLayout(this); + + var btnAddFrameLayout = new FrameLayout + { + X = Application.GetRealWidth(829 - 116), + Height = Application.GetRealHeight(72), + Width = Application.GetRealWidth(190), + }; + this.titleFrameLayout.AddChidren(btnAddFrameLayout); + + var btnUndistributeIcon = new Button + { + Height = Application.GetRealHeight(69), + Width = Application.GetRealWidth(69), + UnSelectedImagePath = "DoorLock/UndistributeIcon.png", + }; + btnAddFrameLayout.AddChidren(btnUndistributeIcon); + + btnAddFrameLayout.Width = Application.GetRealWidth(190 + 50); + var btnUndistributeText = new Button + { + Height = Application.GetRealHeight(72), + Width = Application.GetRealWidth(200), + TextID = R.MyInternationalizationString.Undistributed, + TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, + X = btnUndistributeIcon.Right, + IsBold = true, + TextSize = 13, + TextAlignment = TextAlignment.CenterLeft, + }; + btnAddFrameLayout.AddChidren(btnUndistributeText); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + btnAddFrameLayout.Width = 0; + btnUndistributeIcon.Width = 0; + btnUndistributeText.Width = 0; + } + EventHandler<MouseEventArgs> eHandler = (sender, e) => + { + var undistributeDoorlockUserPage = new Shared.Phone.UserCenter.DoorLock.UndistributeDoorlockUserPage(doorLock, doorLock.localAllAccountList); + Shared.Phone.UserView.HomePage.Instance.AddChidren(undistributeDoorlockUserPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + undistributeDoorlockUserPage.Show(); + }; + btnAddFrameLayout.MouseDownEventHandler += eHandler; + btnUndistributeText.MouseDownEventHandler += eHandler; + btnUndistributeIcon.MouseDownEventHandler += eHandler; + midVerticalScrolViewLayout = new VerticalRefreshLayout() { }; + this.midFrameLayout.AddChidren(midVerticalScrolViewLayout); + + if (localAllAccountListTemp.Count == 0) + { + CommonPage.Loading.Start("Loading..."); + ReadAccountDoorLockInfoList(); + } + else + { + //鍒囨崲璐︽埛鐨勬儏鍐碉細 + if (localAllAccountListTemp[0].SubAccountDistributedMark != Shared.Common.Config.Instance.Guid) + { + CommonPage.Loading.Start("Loading..."); + ReadAccountDoorLockInfoList(); + } + else + { + MidFrameLayoutContent(); + } + } + + midVerticalScrolViewLayout.BeginHeaderRefreshingAction += () => + { + midVerticalScrolViewLayout.BeginHeaderRefreshing(); + ReadAccountDoorLockInfoList(); + }; + } + + /// <summary> + /// 涓儴甯冨眬鏄剧ず + /// </summary> + async void MidFrameLayoutContent() + { + midVerticalScrolViewLayout.RemoveAll(); + for (int i = 0; i < doorLock.localAllAccountList.Count; i++) + { + var currentAccount = doorLock.localAllAccountList[i]; + var RowView = new FrameLayout() + { + Height = Application.GetRealHeight(127 + 23), + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, + }; + midVerticalScrolViewLayout.AddChidren(RowView); + + var btnText = new Button() + { + X = Application.GetRealWidth(58), + Width = Application.GetRealWidth(300), + TextAlignment = TextAlignment.CenterLeft, + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, + Gravity = Gravity.CenterVertical, + TextSize = 14, + }; + RowView.AddChidren(btnText); + + var btnRightFrameLayout = new FrameLayout() + { + Height = Application.GetRealHeight(110), + Width = Application.GetRealWidth(110), + X = Application.CurrentWidth - Application.GetRealWidth(150), + Y = Application.GetRealHeight(25), + }; + RowView.AddChidren(btnRightFrameLayout); + + var btnRight = new Button() + { + Height = Application.GetRealHeight(58), + Width = Application.GetRealWidth(58), + UnSelectedImagePath = "DoorLock/RightIcon.png", + Gravity = Gravity.Center, + }; + btnRightFrameLayout.AddChidren(btnRight); + + var line2 = new Button() + { + Y = RowView.Height - 1, + X = Application.GetRealWidth(58), + Width = Application.GetRealWidth(965), + Height = 1, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + }; + RowView.AddChidren(line2); + int currentIndex = i; + if (currentIndex == doorLock.localAllAccountList.Count - 1) + { + line2.Visible = false; + } + + if (!string.IsNullOrEmpty(currentAccount.UserName)) + { + btnText.Text = currentAccount.UserName; + } + else + { + btnText.Text = currentAccount.Account; + } + + EventHandler<MouseEventArgs> eHandler = (sender, e) => + { + if (currentIndex == 0) + { + var masterManagementPage = new Shared.Phone.UserCenter.DoorLock.MasterManagementPage(doorLock, currentAccount); + Shared.Phone.UserView.HomePage.Instance.AddChidren(masterManagementPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + masterManagementPage.Show(); + } + else + { + var memberFrozenPage = new Shared.Phone.UserCenter.DoorLock.MemberFrozenPage(doorLock, currentAccount); + Shared.Phone.UserView.HomePage.Instance.AddChidren(memberFrozenPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + memberFrozenPage.Show(); + } + }; + btnRight.MouseUpEventHandler += eHandler; + RowView.MouseUpEventHandler += eHandler; + btnText.MouseUpEventHandler += eHandler; + } + } + } } -- Gitblit v1.8.0