From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs | 262 ++++++++++++++++++++++-----------------------------
1 files changed, 113 insertions(+), 149 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
index 0b5d4d8..25bdf6f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
@@ -9,122 +9,92 @@
/// <summary>
/// 闂ㄩ攣绠$悊
/// </summary>
- public class UserManagement : DoorLockCommonLayout, ZigBee.Common.IStatus
+ public class UserManagement : DoorLockCommonLayout
{
- /// <summary>
- /// 鎸夐敭妯″紡鎺ユ敹
- /// </summary>
- /// <param name="common">Common.</param>
- public void Changed(CommonDevice common)
- {
- //if (common.Type != ZigBee.Device.DeviceType.OnOffSwitch)
- //{
- // return;
- //}
-
- Shared.Application.RunOnMainThread(() =>
- {
- //var dev = common as Panel;
- });
- }
- //浠庨棬閿佽淇℃伅
- void ReadDoorLockDeviceUserInfo()
- {
- System.Threading.Tasks.Task.Run(async () =>
- {
- Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
- try
- {
- var getDoorLockInfo = await doorLock.GetDoorlockUserInfoAsync();
- if (getDoorLockInfo != null && getDoorLockInfo.doorLockUserDetailData != null)
- {
- var dataList = getDoorLockInfo.doorLockUserDetailData.UserObjList;
- foreach (var doorData in dataList)
- {
- var localDoorLockObj1 = new ZigBee.Device.DoorLock.LocaDoorLockObj()
- {
- UserID = doorData.UserId,
- UnlockType = doorData.UserType
- };
- if ((doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj1.UserID)) == false)
- {
- doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1);
- }
- }
- }
- }
- catch { }
- finally
- {
- Application.RunOnMainThread(() =>
- {
- CommonPage.Loading.Hide();
- });
- }
- });
- }
- //浠庢湇鍔″櫒璇讳俊鎭�
- void ReadDoorLockServerUserInfo(Shared.Phone.UserCenter.MemberInfoRes curAccountObj)
- {
- System.Threading.Tasks.Task.Run(async () =>
- {
- Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
- try
- {
- // 璇诲彇浜戠闂ㄩ攣璁惧涓殑淇℃伅
- var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { };
-
- localDoorLockObj.CloudAccountId = curAccountObj.SubAccountDistributedMark;
- if (doorLock.DeviceAddr != null)
- {
- localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
- }
-
- var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("App/GetDoorLockPager", localDoorLockObj);
- if (getDoorLockInfoList != null)
- {
- foreach (var curDoorLockUser in getDoorLockInfoList.PageData)
- {
- if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId)))
- {
- doorLock.localDoorLockUserList.Remove(int.Parse(curDoorLockUser.DoorLockLocalUserId));
- }
- var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
- doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId);
- doorLockObj.UnlockType = curDoorLockUser.OpenLockMode;
- doorLockObj.PrimaryId = curDoorLockUser.Id;
- doorLockObj.EntryTime = curDoorLockUser.EntryTime;
- doorLockObj.UserName = curDoorLockUser.UserIdRemarks;
- doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId;
- doorLock.localDoorLockUserList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId), doorLockObj);
- }
- }
- }
- catch { }
- finally
- {
- Application.RunOnMainThread(() =>
- {
- CommonPage.Loading.Hide();
- });
- }
- });
- }
-
-
/// 鏋勯�犲嚱鏁�
/// </summary>
/// <param name="doorLock"></param>
public UserManagement(ZigBee.Device.DoorLock doorLock)
{
this.doorLock = doorLock;
+ localAllAccountListTemp = doorLock.localAllAccountList;
+ localDoorLockUserListTemp = doorLock.localDoorLockUserList;
}
#region 鈼� 鍙橀噺鐢虫槑__________________________
ZigBee.Device.DoorLock doorLock;
- List<Shared.Phone.UserCenter.MemberInfoRes> localAccountList = new List<Shared.Phone.UserCenter.MemberInfoRes> { };
+ 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));
@@ -139,7 +109,7 @@
var btnAddFrameLayout = new FrameLayout
{
- X = Application.GetRealWidth(829),
+ X = Application.GetRealWidth(829 - 116),
Height = Application.GetRealHeight(72),
Width = Application.GetRealWidth(190),
};
@@ -156,17 +126,24 @@
var btnUndistributeText = new Button
{
Height = Application.GetRealHeight(72),
- Width = Application.GetRealWidth(121),
+ Width = Application.GetRealWidth(150),
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, localAccountList);
+ 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();
@@ -174,42 +151,48 @@
btnAddFrameLayout.MouseDownEventHandler += eHandler;
btnUndistributeText.MouseDownEventHandler += eHandler;
btnUndistributeIcon.MouseDownEventHandler += eHandler;
+ midVerticalScrolViewLayout = new VerticalRefreshLayout() { };
+ this.midFrameLayout.AddChidren(midVerticalScrolViewLayout);
- MidFrameLayoutContent();
+ if (localAllAccountListTemp.Count == 0)
+ {
+ CommonPage.Loading.Start("Loading...");
+ ReadAccountDoorLockInfoList();
+ }
+ else
+ {
+ MidFrameLayoutContent();
+ }
+
+ midVerticalScrolViewLayout.BeginHeaderRefreshingAction += () =>
+ {
+ midVerticalScrolViewLayout.BeginHeaderRefreshing();
+ ReadAccountDoorLockInfoList();
+ };
}
+ /// <summary>
+ /// 涓儴甯冨眬鏄剧ず
+ /// </summary>
async void MidFrameLayoutContent()
{
- var SubAccounList = await ZigBee.Device.DoorLock.GetSubAccountByDistributedMark();
- var masterAccount = new Shared.Phone.UserCenter.MemberInfoRes();
- masterAccount.Account = Shared.Common.Config.Instance.Account;
- masterAccount.AccountType = Shared.Common.Config.Instance.AccountType;
- masterAccount.SubAccountDistributedMark = Shared.Common.Config.Instance.Guid;
- masterAccount.UserName = UserCenterResourse.UserInfo.UserName;
- localAccountList.Add(masterAccount);
- localAccountList.AddRange(SubAccounList);
- var bodyView = new VerticalScrolViewLayout()
+ midVerticalScrolViewLayout.RemoveAll();
+ for (int i = 0; i < doorLock.localAllAccountList.Count; i++)
{
- };
- this.midFrameLayout.AddChidren(bodyView);
-
- doorLock.localAllAccountList = localAccountList;
- for (int i = 0; i < localAccountList.Count; i++)
- {
- var currentAccount = localAccountList[i];
+ var currentAccount = doorLock.localAllAccountList[i];
var RowView = new FrameLayout()
{
- Height = Application.GetRealHeight(161),
- BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout,
+ Height = Application.GetRealHeight(127 + 23),
+ BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
};
- bodyView.AddChidren(RowView);
+ midVerticalScrolViewLayout.AddChidren(RowView);
var btnText = new Button()
{
X = Application.GetRealWidth(58),
Width = Application.GetRealWidth(300),
TextAlignment = TextAlignment.CenterLeft,
- TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText,
+ TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
Gravity = Gravity.CenterVertical,
TextSize = 14,
};
@@ -243,12 +226,12 @@
};
RowView.AddChidren(line2);
int currentIndex = i;
- if (currentIndex == localAccountList.Count - 1)
+ if (currentIndex == doorLock.localAllAccountList.Count - 1)
{
line2.Visible = false;
}
- if (currentAccount.UserName != null)
+ if (!string.IsNullOrEmpty(currentAccount.UserName))
{
btnText.Text = currentAccount.UserName;
}
@@ -266,13 +249,6 @@
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
masterManagementPage.Show();
}
- else if (currentIndex == 1)
- {
- var userDoorLockPage = new UserDoorLockPage(doorLock, currentAccount);
- Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage);
- Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
- userDoorLockPage.Show();
- }
else
{
var memberFrozenPage = new Shared.Phone.UserCenter.DoorLock.MemberFrozenPage(doorLock, currentAccount);
@@ -285,18 +261,6 @@
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)
- {
}
}
}
--
Gitblit v1.8.0