From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs |   65 ++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 12 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
index 7727d38..f224f74 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
@@ -27,18 +27,26 @@
         public UserManagement(ZigBee.Device.DoorLock doorLock)
         {
             this.doorLock = doorLock;
+            localAllAccountListTemp = doorLock.localAllAccountList;
+            localDoorLockUserListTemp = doorLock.localDoorLockUserList;
         }
 
         #region 鈼� 鍙橀噺鐢虫槑__________________________
         ZigBee.Device.DoorLock doorLock;
-        VerticalScrolViewLayout midVerticalScrolViewLayout;
+        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
 
-        void ReadAccountList()
+        /// <summary>
+        /// 鏁版嵁鍒锋柊
+        /// </summary>
+        void ReadAccountDoorLockInfoList()
         {
             System.Threading.Tasks.Task.Run(async () =>
             {
-                Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
                 try
                 {
                     var localAccountListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.LocalAccountList();
@@ -46,9 +54,11 @@
                     {
                         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);
@@ -62,13 +72,20 @@
                                 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.Up, CloseTime = 1 }.Show(this.btnTip);
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                         });
                     }
                 }
@@ -79,11 +96,15 @@
                     {
                         MidFrameLayoutContent();
                         CommonPage.Loading.Hide();
+                        midVerticalScrolViewLayout.EndHeaderRefreshing();
                     });
                 }
             });
         }
 
+        /// <summary>
+        /// 鏄剧ず鐣岄潰
+        /// </summary>
         public void Show()
         {
             this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.UserManagement));
@@ -115,10 +136,12 @@
             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);
@@ -137,13 +160,31 @@
             btnAddFrameLayout.MouseDownEventHandler += eHandler;
             btnUndistributeText.MouseDownEventHandler += eHandler;
             btnUndistributeIcon.MouseDownEventHandler += eHandler;
-            midVerticalScrolViewLayout = new VerticalScrolViewLayout()
+            midVerticalScrolViewLayout = new VerticalRefreshLayout()
             {
             };
             this.midFrameLayout.AddChidren(midVerticalScrolViewLayout);
-            ReadAccountList();
+
+            if (localAllAccountListTemp.Count == 0)
+            {
+                CommonPage.Loading.Start("Loading...");
+                ReadAccountDoorLockInfoList();
+            }
+            else
+            {
+                MidFrameLayoutContent();
+            }
+
+            midVerticalScrolViewLayout.BeginHeaderRefreshingAction += () =>
+            {
+                midVerticalScrolViewLayout.BeginHeaderRefreshing();
+                ReadAccountDoorLockInfoList();
+            };
         }
 
+        /// <summary>
+        /// 涓儴甯冨眬鏄剧ず
+        /// </summary>
         async void MidFrameLayoutContent()
         {
             midVerticalScrolViewLayout.RemoveAll();
@@ -152,8 +193,8 @@
                 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,
                 };
                 midVerticalScrolViewLayout.AddChidren(RowView);
 
@@ -162,7 +203,7 @@
                     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,
                 };
@@ -201,7 +242,7 @@
                     line2.Visible = false;
                 }
 
-                if (currentAccount.UserName != null)
+                if (!string.IsNullOrEmpty(currentAccount.UserName))
                 {
                     btnText.Text = currentAccount.UserName;
                 }

--
Gitblit v1.8.0