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