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/UserDoorLockPage.cs | 2320 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,163 insertions(+), 1,157 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
old mode 100755
new mode 100644
index 9856a3c..a543f11
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -6,1219 +6,1225 @@
 
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class UserDoorLockPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+  public class UserDoorLockPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+  {
+    #region 鐣岄潰
+    /// <summary>
+    ///  鏋勯�犲嚱鏁�
+    /// </summary>
+    /// <param name="room"></param>
+    /// <param name="doorLock"></param>
+    public UserDoorLockPage(Room room, CommonDevice doorLock)
     {
-        #region 鐣岄潰
-        /// <summary>
-        ///  鏋勯�犲嚱鏁�
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="doorLock"></param>
-        public UserDoorLockPage(Room room, CommonDevice doorLock)
-        {
-            //寰愭鐨勯棬閿佺晫闈㈡墦寮�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
-            //ControlCommonResourse.IsDoorLockPageOpen = true; 
-            this.doorLock = doorLock as ZigBee.Device.DoorLock;
-            currentRoom = room;
-            deviceUI = doorLock;
-            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor;
-            ZbGateway.StatusList.Add(this);
-            Application.RunOnMainThread(() =>
-            {
-                UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) =>
+      //寰愭鐨勯棬閿佺晫闈㈡墦寮�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
+      //ControlCommonResourse.IsDoorLockPageOpen = true; 
+      this.doorLock = doorLock as ZigBee.Device.DoorLock;
+      currentRoom = room;
+      deviceUI = doorLock;
+      BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor;
+      ZbGateway.StatusList.Add(this);
+      Application.RunOnMainThread(() =>
+      {
+        UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) =>
+              {
+                var key = doorLock.DeviceAddr;
+                if (DoorlockKey == key)
                 {
-                    var key = doorLock.DeviceAddr;
-                    if (DoorlockKey == key)
-                    {
-                        DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status);
-                        UpdateNomallyOpenStatus();
-                    }
-                };
-            });
-        }
+                  DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status);
+                  UpdateNomallyOpenStatus();
+                }
+              };
+      });
+    }
 
-        #region  鍙橀噺鐢虫槑
-        /// <summary>
-        /// 褰撳墠闂ㄩ攣
-        /// </summary>
-        ZigBee.Device.DoorLock doorLock;
-        /// <summary>
-        /// 闊抽噺鏁版嵁
-        /// </summary>
-        ZigBee.Device.DoorLock.VolumeResponseData volumeData = null;
-        /// <summary>
-        /// 绛夊緟鑾峰彇鐢甸噺鐨勭瓑寰呮椂闂�
-        /// </summary>
-        DateTime waitGetDoorLockPower = DateTime.MaxValue;
-        /// <summary>
-        /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
-        /// </summary>
-        private bool haveLogicNormallyOpenMode = false;
+    #region  鍙橀噺鐢虫槑
+    /// <summary>
+    /// 褰撳墠闂ㄩ攣
+    /// </summary>
+    ZigBee.Device.DoorLock doorLock;
+    /// <summary>
+    /// 闊抽噺鏁版嵁
+    /// </summary>
+    ZigBee.Device.DoorLock.VolumeResponseData volumeData = null;
+    /// <summary>
+    /// 绛夊緟鑾峰彇鐢甸噺鐨勭瓑寰呮椂闂�
+    /// </summary>
+    DateTime waitGetDoorLockPower = DateTime.MaxValue;
+    /// <summary>
+    /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
+    /// </summary>
+    private bool haveLogicNormallyOpenMode = false;
 
-        /// <summary>
-        /// 褰撳墠鐢甸噺
-        /// </summary>
-        bool canVolume = false;
-        /// <summary>
-        /// 鏄惁鏀寔甯稿紑
-        /// </summary>
-        bool canOpenNormallyMode = false;
-        /// <summary>
-        /// IsDrawerLockMode[涓婚〉宸︽粦]
-        /// </summary>
-        public bool IsDrawerLockMode;
-        /// <summary>
-        /// 褰撳墠鐢甸噺
-        /// </summary>
-        int currentPower = 0;
-        /// <summary>
-        /// 淇濈暀涓婁竴娆¢煶閲�
-        /// </summary>
-        int oldVolume = -1;
-        /// <summary>
-        /// 褰撳墠鎴块棿
-        /// </summary>
-        Room currentRoom;
-        /// <summary>
-        /// 璁惧UI瀵硅薄
-        /// </summary>
-        CommonDevice deviceUI;
-        /// <summary>
-        /// 璁剧疆浜屾楠岃瘉Action
-        /// </summary>
-        Action action;
-        /// <summary>
-        /// 涓儴甯冨眬涓棬閿佸悕绉版樉绀�
-        /// </summary>
-        NormalViewControl btnDoorLockTitle;
-        /// <summary>
-        /// 鍒嗕韩
-        /// </summary>
-        Button btnShare;
-        /// <summary>
-        /// 璁剧疆
-        /// </summary>
-        Button btnFuncSet;
-        /// <summary>
-        /// 璁剧疆FrameLayout
-        /// </summary>
-        FrameLayout btnFuncSetFrameLayout;
-        FrameLayout progressFrameLayoutMatch;
-        /// <summary>
-        /// 鐐瑰嚮寮�甯冨眬
-        /// </summary>
-        private FrameLayout openFrameLayout;
-        /// <summary>
-        /// 鐐瑰嚮鍏冲竷灞�
-        /// </summary>
-        private FrameLayout closeFrameLayout;
-        /// <summary>
-        /// 鎵撳紑鍥剧墖
-        /// </summary>
-        Button btnDoorOpenPic;
-        /// <summary>
-        /// 鎼滆棌UI
-        /// </summary>
-        FrameLayout btnCollectFrameLayout;
-        /// <summary>
-        /// 鎼滆棌
-        /// </summary>
-        Button btnCollect;
-        /// <summary>
-        /// 璁板綍UI
-        /// </summary>
-        FrameLayout btnRecordFrameLayout;
-        /// <summary>
-        /// 璁板綍鎸夐挳
-        /// </summary>
-        Button btnRecord;
-        /// <summary>
-        /// 褰撳墠鐘舵��
-        /// </summary>
-        Button btnStatus;
-        /// <summary>
-        /// 褰撳墠鐢甸噺鏂囨湰
-        /// </summary>
-        Button btnCurrentPowerText;
-        /// <summary>
-        /// 杩涘害鎸夐挳
-        /// </summary>
-        Button progressButton;
-        /// <summary>
-        /// 杩涘害
-        /// </summary>
-        DiyImageVerticalSeekBar diyImageVerticalSeekBar;
-        /// <summary>
-        /// 杩涘害鏂囨湰
-        /// </summary>
-        Button progressText;
-        /// <summary>
-        /// 闂ㄩ攣鍏冲浘鐗�
-        /// </summary>
-        Button btnDoorClosePic;
-        /// <summary>
-        /// 闂ㄩ攣寮�/鍏冲浘鐗�
-        /// </summary>
-        Button btnDoorLockPic;
-        /// <summary>
-        /// 鐢甸噺
-        /// </summary>
-        Button btnPower;
-        /// <summary>
-        /// 甯稿紑
-        /// </summary>
-        Button btnNormallyOpen;
-        /// <summary>
-        /// 闊抽噺
-        /// </summary>
-        Button btnVolume;
-        /// <summary>
-        /// 甯稿紑FrameLayout
-        /// </summary>
-        FrameLayout btnNormallyOpenFrameLayout;
-        /// <summary>
-        /// 闊抽噺FrameLayout
-        /// </summary>
-        FrameLayout btnVolumeFrameLayout;
-        /// <summary>
-        /// 聽褰撳墠闊抽噺
-        /// </summary>
-        int currentVolume = -1;
-        /// <summary>
-        /// waitClickTime
-        /// </summary>
-        DateTime waitClickTime = DateTime.MaxValue;
-        /// <summary>
-        /// IsClick
-        /// </summary>
-        bool IsClick = true;
-        #endregion
+    /// <summary>
+    /// 褰撳墠鐢甸噺
+    /// </summary>
+    bool canVolume = false;
+    /// <summary>
+    /// 鏄惁鏀寔甯稿紑
+    /// </summary>
+    bool canOpenNormallyMode = false;
+    /// <summary>
+    /// IsDrawerLockMode[涓婚〉宸︽粦]
+    /// </summary>
+    public bool IsDrawerLockMode;
+    /// <summary>
+    /// 褰撳墠鐢甸噺
+    /// </summary>
+    int currentPower = 0;
+    /// <summary>
+    /// 淇濈暀涓婁竴娆¢煶閲�
+    /// </summary>
+    int oldVolume = -1;
+    /// <summary>
+    /// 褰撳墠鎴块棿
+    /// </summary>
+    Room currentRoom;
+    /// <summary>
+    /// 璁惧UI瀵硅薄
+    /// </summary>
+    CommonDevice deviceUI;
+    /// <summary>
+    /// 璁剧疆浜屾楠岃瘉Action
+    /// </summary>
+    Action action;
+    /// <summary>
+    /// 涓儴甯冨眬涓棬閿佸悕绉版樉绀�
+    /// </summary>
+    NormalViewControl btnDoorLockTitle;
+    /// <summary>
+    /// 鍒嗕韩
+    /// </summary>
+    Button btnShare;
+    /// <summary>
+    /// 璁剧疆
+    /// </summary>
+    Button btnFuncSet;
+    /// <summary>
+    /// 璁剧疆FrameLayout
+    /// </summary>
+    FrameLayout btnFuncSetFrameLayout;
+    FrameLayout progressFrameLayoutMatch;
+    /// <summary>
+    /// 鐐瑰嚮寮�甯冨眬
+    /// </summary>
+    private FrameLayout openFrameLayout;
+    /// <summary>
+    /// 鐐瑰嚮鍏冲竷灞�
+    /// </summary>
+    private FrameLayout closeFrameLayout;
+    /// <summary>
+    /// 鎵撳紑鍥剧墖
+    /// </summary>
+    Button btnDoorOpenPic;
+    /// <summary>
+    /// 鎼滆棌UI
+    /// </summary>
+    FrameLayout btnCollectFrameLayout;
+    /// <summary>
+    /// 鎼滆棌
+    /// </summary>
+    Button btnCollect;
+    /// <summary>
+    /// 璁板綍UI
+    /// </summary>
+    FrameLayout btnRecordFrameLayout;
+    /// <summary>
+    /// 璁板綍鎸夐挳
+    /// </summary>
+    Button btnRecord;
+    /// <summary>
+    /// 褰撳墠鐘舵��
+    /// </summary>
+    Button btnStatus;
+    /// <summary>
+    /// 褰撳墠鐢甸噺鏂囨湰
+    /// </summary>
+    Button btnCurrentPowerText;
+    /// <summary>
+    /// 杩涘害鎸夐挳
+    /// </summary>
+    Button progressButton;
+    /// <summary>
+    /// 杩涘害
+    /// </summary>
+    DiyImageVerticalSeekBar diyImageVerticalSeekBar;
+    /// <summary>
+    /// 杩涘害鏂囨湰
+    /// </summary>
+    Button progressText;
+    /// <summary>
+    /// 闂ㄩ攣鍏冲浘鐗�
+    /// </summary>
+    Button btnDoorClosePic;
+    /// <summary>
+    /// 闂ㄩ攣寮�/鍏冲浘鐗�
+    /// </summary>
+    Button btnDoorLockPic;
+    /// <summary>
+    /// 鐢甸噺
+    /// </summary>
+    Button btnPower;
+    /// <summary>
+    /// 甯稿紑
+    /// </summary>
+    Button btnNormallyOpen;
+    /// <summary>
+    /// 闊抽噺
+    /// </summary>
+    Button btnVolume;
+    /// <summary>
+    /// 甯稿紑FrameLayout
+    /// </summary>
+    FrameLayout btnNormallyOpenFrameLayout;
+    /// <summary>
+    /// 闊抽噺FrameLayout
+    /// </summary>
+    FrameLayout btnVolumeFrameLayout;
+    /// <summary>
+    /// 聽褰撳墠闊抽噺
+    /// </summary>
+    int currentVolume = -1;
+    /// <summary>
+    /// waitClickTime
+    /// </summary>
+    DateTime waitClickTime = DateTime.MaxValue;
+    /// <summary>
+    /// IsClick
+    /// </summary>
+    bool IsClick = true;
+    #endregion
 
-        /// <summary>
-        /// UI鏄剧ず 
-        /// </summary>
-        public void Show()
-        {
-            this.TopFrameLayout(this, "");
-            this.MidFrameLayout(this);
+    /// <summary>
+    /// UI鏄剧ず 
+    /// </summary>
+    public void Show()
+    {
+      this.TopFrameLayout(this, "");
+      this.MidFrameLayout(this);
 
-            btnShare = new Button
-            {
-                X = Application.GetRealWidth(850 - 116),
-                Height = Application.GetRealHeight(69),
-                Width = Application.GetRealWidth(0),
-            };
-            this.titleFrameLayout.AddChidren(btnShare);
+      btnShare = new Button
+      {
+        X = Application.GetRealWidth(850 - 116),
+        Height = Application.GetRealHeight(69),
+        Width = Application.GetRealWidth(0),
+      };
+      this.titleFrameLayout.AddChidren(btnShare);
 
-            btnFuncSetFrameLayout = new FrameLayout
-            {
-                X = Application.GetRealWidth(850 - 116),
-                Height = Application.GetRealHeight(69),
-                Width = Application.GetRealWidth(69 * 2 + 58),
-            };
-            this.titleFrameLayout.AddChidren(btnFuncSetFrameLayout);
+      btnFuncSetFrameLayout = new FrameLayout
+      {
+        X = Application.GetRealWidth(850 - 116),
+        Height = Application.GetRealHeight(69),
+        Width = Application.GetRealWidth(69 * 2 + 58),
+      };
+      this.titleFrameLayout.AddChidren(btnFuncSetFrameLayout);
 
-            btnFuncSet = new Button
-            {
-                X = Application.GetRealWidth(103),
-                Height = Application.GetMinReal(69),
-                Width = Application.GetMinReal(69),
-                UnSelectedImagePath = "DoorLock/SettingIcon.png",
-            };
-            btnFuncSetFrameLayout.AddChidren(btnFuncSet);
+      btnFuncSet = new Button
+      {
+        X = Application.GetRealWidth(103),
+        Height = Application.GetMinReal(69),
+        Width = Application.GetMinReal(69),
+        UnSelectedImagePath = "DoorLock/SettingIcon.png",
+      };
+      btnFuncSetFrameLayout.AddChidren(btnFuncSet);
 
-            MidFrameLayoutUI();
+      MidFrameLayoutUI();
 
-            ClickHandle();
+      ClickHandle();
 
-            if (Common.LocalDevice.Current.CheckDeviceIsOnline(doorLock) == true)
-            {
-                ReadDoorLockUserInfo();
-            }
-            else
-            {
-                string msg1 = Language.StringByID(R.MyInternationalizationString.DoorLockOffLine);
-                this.ShowTipMsg(msg1);
-                return;
-            }
-        }
+      if (Common.LocalDevice.Current.CheckDeviceIsOnline(doorLock) == true)
+      {
+        ReadDoorLockUserInfo();
+      }
+      else
+      {
+        string msg1 = Language.StringByID(R.MyInternationalizationString.DoorLockOffLine);
+        this.ShowTipMsg(msg1);
+        return;
+      }
+    }
 
-        /// <summary>
-        /// 涓儴甯冨眬
-        /// </summary>
-        public void MidFrameLayoutUI()
-        {
-            var midTopFrameLayout = new FrameLayout()
-            {
-                X = Application.GetRealWidth(58),
-                Y = Application.GetRealHeight(115),
-                Height = Application.GetRealHeight(1238),
-                Width = Application.GetRealWidth(965),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
-                Radius = 6,
-            };
-            this.midFrameLayout.AddChidren(midTopFrameLayout);
+    /// <summary>
+    /// 涓儴甯冨眬
+    /// </summary>
+    public void MidFrameLayoutUI()
+    {
+      var midTopFrameLayout = new FrameLayout()
+      {
+        X = Application.GetRealWidth(58),
+        Y = Application.GetRealHeight(115),
+        Height = Application.GetRealHeight(1238),
+        Width = Application.GetRealWidth(965),
+        BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+        Radius = (uint)Application.GetRealHeight(17),
+      };
+      this.midFrameLayout.AddChidren(midTopFrameLayout);
 
-            //璁惧鍚嶇О
-            btnDoorLockTitle = new NormalViewControl(100, 60, true);
-            btnDoorLockTitle.Y = Application.GetRealHeight(46);
-            btnDoorLockTitle.TextSize = 15;
-            btnDoorLockTitle.IsBold = true;
-            btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
-            btnDoorLockTitle.Width = btnDoorLockTitle.GetRealWidthByText();
-            btnDoorLockTitle.TextAlignment = TextAlignment.Center;
-            btnDoorLockTitle.Gravity = Gravity.CenterHorizontal;
-            midTopFrameLayout.AddChidren(btnDoorLockTitle);
+      //璁惧鍚嶇О
+      btnDoorLockTitle = new NormalViewControl(100, 60, true);
+      btnDoorLockTitle.Y = Application.GetRealHeight(46);
+      btnDoorLockTitle.TextSize = 15;
+      btnDoorLockTitle.IsBold = true;
+      btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
+      btnDoorLockTitle.Width = btnDoorLockTitle.GetRealWidthByText();
+      if (btnDoorLockTitle.Width > 664)
+      {
+        btnDoorLockTitle.Width = 664;
+      }
+      btnDoorLockTitle.TextAlignment = TextAlignment.Center;
+      btnDoorLockTitle.Gravity = Gravity.CenterHorizontal;
+      midTopFrameLayout.AddChidren(btnDoorLockTitle);
 
-            //璁板綍
-            btnRecordFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(69 + 15 + 46),
-                Height = Application.GetRealHeight(69 + 46 * 2),
-                X = Application.GetRealWidth(752 - 46),
-            };
-            midTopFrameLayout.AddChidren(btnRecordFrameLayout);
-            btnRecord = new Button()
-            {
-                Width = Application.GetMinReal(69),
-                Height = Application.GetMinReal(69),
-                X = Application.GetRealWidth(46),
-                Y = Application.GetRealHeight(46),
-                UnSelectedImagePath = "DoorLock/RecordIcon.png",
-            };
-            btnRecordFrameLayout.AddChidren(btnRecord);
+      //璁板綍
+      btnRecordFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(69 + 15 + 46),
+        Height = Application.GetRealHeight(69 + 46 * 2),
+        X = Application.GetRealWidth(752 - 46),
+      };
+      midTopFrameLayout.AddChidren(btnRecordFrameLayout);
+      btnRecord = new Button()
+      {
+        Width = Application.GetMinReal(69),
+        Height = Application.GetMinReal(69),
+        X = Application.GetRealWidth(46),
+        Y = Application.GetRealHeight(46),
+        UnSelectedImagePath = "DoorLock/RecordIcon.png",
+      };
+      btnRecordFrameLayout.AddChidren(btnRecord);
 
-            //鎼滆棌UI
-            btnCollectFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(69 + 15 + 46),
-                Height = Application.GetRealHeight(69 + 46 * 2),
-                X = Application.GetRealWidth(850 - 15),
-            };
-            midTopFrameLayout.AddChidren(btnCollectFrameLayout);
-            btnCollect = new Button()
-            {
-                Width = Application.GetMinReal(69),
-                Height = Application.GetMinReal(69),
-                X = Application.GetRealWidth(15),
-                Y = Application.GetRealHeight(46),
-                UnSelectedImagePath = "Item/Collection.png",
-                SelectedImagePath = "Item/CollectionSelected.png"
-            };
-            btnCollectFrameLayout.AddChidren(btnCollect);
-
-            //褰撳墠鐘舵��
-            btnStatus = new Button()
-            {
-                Width = Application.GetRealWidth(132 + 351),
-                Height = Application.GetRealHeight(40),
-                Y = Application.GetRealHeight(118),
-                Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                TextSize = 10,
-                TextAlignment = TextAlignment.CenterRight,
-            };
-            midTopFrameLayout.AddChidren(btnStatus);
+      //鎼滆棌UI
+      btnCollectFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(69 + 15 + 46),
+        Height = Application.GetRealHeight(69 + 46 * 2),
+        X = Application.GetRealWidth(850 - 15),
+      };
+      midTopFrameLayout.AddChidren(btnCollectFrameLayout);
+      btnCollect = new Button()
+      {
+        Width = Application.GetMinReal(69),
+        Height = Application.GetMinReal(69),
+        X = Application.GetRealWidth(15),
+        Y = Application.GetRealHeight(46),
+        UnSelectedImagePath = "Item/Collection.png",
+        SelectedImagePath = "Item/CollectionSelected.png"
+      };
+      btnCollectFrameLayout.AddChidren(btnCollect);
 
-            //褰撳墠鐢甸噺
-            btnCurrentPowerText = new Button()
-            {
-                Width = Application.GetRealWidth(133 + 348),
-                Height = Application.GetRealHeight(40),
-                X = btnStatus.Right,
-                Y = Application.GetRealHeight(118),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                Text = Language.StringByID(R.MyInternationalizationString.DoorLockPower) + "%",
-                TextSize = 10,
-                TextAlignment = TextAlignment.CenterLeft,
-            };
-            midTopFrameLayout.AddChidren(btnCurrentPowerText);
-#if Android
-            btnCurrentPowerText.X = btnStatus.Right + Application.GetRealWidth(20);
+      //褰撳墠鐘舵��
+      btnStatus = new Button()
+      {
+        Width = Application.GetRealWidth(132 + 351),
+        Height = Application.GetRealHeight(40),
+        Y = Application.GetRealHeight(118),
+        Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose),
+        TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+        TextSize = 10,
+        TextAlignment = TextAlignment.CenterRight,
+      };
+      midTopFrameLayout.AddChidren(btnStatus);
+
+      //褰撳墠鐢甸噺
+      btnCurrentPowerText = new Button()
+      {
+        Width = Application.GetRealWidth(133 + 348),
+        Height = Application.GetRealHeight(40),
+        X = btnStatus.Right,
+        Y = Application.GetRealHeight(118),
+        TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+        Text = Language.StringByID(R.MyInternationalizationString.DoorLockPower) + "%",
+        TextSize = 10,
+        TextAlignment = TextAlignment.CenterLeft,
+      };
+      midTopFrameLayout.AddChidren(btnCurrentPowerText);
+#if Android
+      btnCurrentPowerText.X = btnStatus.Right + Application.GetRealWidth(20);
 #endif
 
-            //闂ㄩ攣寮�/鍏冲浘鐗�
-            btnDoorLockPic = new Button()
-            {
-                Width = Application.GetMinReal(383),
-                Height = Application.GetMinReal(343),
-                X = Application.GetRealWidth(161),
-                Y = Application.GetRealHeight(415),
-                UnSelectedImagePath = "DoorLock/DoorLockPicClose.png",
-                SelectedImagePath = "DoorLock/DooorLockPicOpen.png",
-            };
-            midTopFrameLayout.AddChidren(btnDoorLockPic);
+      //闂ㄩ攣寮�/鍏冲浘鐗�
+      btnDoorLockPic = new Button()
+      {
+        Width = Application.GetMinReal(383),
+        Height = Application.GetMinReal(343),
+        X = Application.GetRealWidth(161),
+        Y = Application.GetRealHeight(415),
+        UnSelectedImagePath = "DoorLock/DoorLockPicClose.png",
+        SelectedImagePath = "DoorLock/DooorLockPicOpen.png",
+      };
+      midTopFrameLayout.AddChidren(btnDoorLockPic);
 
-            #region 寮�/鍏崇偣鍑诲竷灞�
-            var btnFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(420 - 46),
-                Height = Application.GetRealHeight(446),
-                X = btnDoorLockPic.Right,
-                Y = Application.GetRealHeight(354),
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            midTopFrameLayout.AddChidren(btnFrameLayout);
+      #region 寮�/鍏崇偣鍑诲竷灞�
+      var btnFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(420 - 46),
+        Height = Application.GetRealHeight(446),
+        X = btnDoorLockPic.Right,
+        Y = Application.GetRealHeight(354),
+        BackgroundColor = ZigbeeColor.Current.XMWhite,
+      };
+      midTopFrameLayout.AddChidren(btnFrameLayout);
 
-            openFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(420),//639-35
-                Height = Application.GetRealHeight(446 / 2),
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            btnFrameLayout.AddChidren(openFrameLayout);
+      openFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(420),//639-35
+        Height = Application.GetRealHeight(446 / 2),
+        BackgroundColor = ZigbeeColor.Current.XMWhite,
+      };
+      btnFrameLayout.AddChidren(openFrameLayout);
 
-            closeFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(420),//639-35
-                Height = Application.GetRealHeight(446 / 2),
-                Y = Application.GetRealHeight(446 / 2),
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            btnFrameLayout.AddChidren(closeFrameLayout);
+      closeFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(420),//639-35
+        Height = Application.GetRealHeight(446 / 2),
+        Y = Application.GetRealHeight(446 / 2),
+        BackgroundColor = ZigbeeColor.Current.XMWhite,
+      };
+      btnFrameLayout.AddChidren(closeFrameLayout);
 
-            progressFrameLayoutMatch = new FrameLayout()
-            {
-                Width = Application.GetRealHeight(84),//639-35
-                Height = Application.GetRealHeight(446),
-                X = Application.GetMinReal(51),
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            btnFrameLayout.AddChidren(progressFrameLayoutMatch);
+      progressFrameLayoutMatch = new FrameLayout()
+      {
+        Width = Application.GetRealHeight(84),//639-35
+        Height = Application.GetRealHeight(446 + 30),
+        X = Application.GetMinReal(51),
+        BackgroundColor = ZigbeeColor.Current.XMWhite,
+      };
+      btnFrameLayout.AddChidren(progressFrameLayoutMatch);
 
-            var progressFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealHeight(17),//639-35
-                Gravity = Gravity.CenterHorizontal,
-                BackgroundColor = ZigbeeColor.Current.XMVerticalSeekBar,
-            };
-            progressFrameLayoutMatch.AddChidren(progressFrameLayout);
+      var progressFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealHeight(15),//639-35
+        Height = Application.GetRealHeight(440),
+        Radius = (uint)Application.GetRealHeight(17),
+        Gravity = Gravity.CenterHorizontal,
+        BackgroundColor = ZigbeeColor.Current.XMVerticalSeekBar,
+      };
+      progressFrameLayoutMatch.AddChidren(progressFrameLayout);
 
-            progressButton = new Button()
-            {
-                Width = Application.GetMinReal(84),//639-35
-                Height = Application.GetMinReal(93),
-                Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(347),
-                UnSelectedImagePath = "DoorLock/UnLockButton.png",
-            };
-            progressFrameLayoutMatch.AddChidren(progressButton);
+      progressButton = new Button()
+      {
+        Width = Application.GetMinReal(84),//639-35
+        Height = Application.GetMinReal(93),
+        Gravity = Gravity.CenterHorizontal,
+        Y = Application.GetRealHeight(347),
+        UnSelectedImagePath = "DoorLock/UnLockButton.png",
+      };
+      progressFrameLayoutMatch.AddChidren(progressButton);
 
-            btnDoorOpenPic = new Button()
-            {
-                Width = Application.GetMinReal(81),
-                Height = Application.GetMinReal(81),
-                X = Application.GetRealWidth(164),
-                Y = Application.GetRealHeight(6),
-                UnSelectedImagePath = "DoorLock/DoorLockOpen.png",
-            };
-            openFrameLayout.AddChidren(btnDoorOpenPic);
+      btnDoorOpenPic = new Button()
+      {
+        Width = Application.GetMinReal(81),
+        Height = Application.GetMinReal(81),
+        X = Application.GetRealWidth(164),
+        Y = Application.GetRealHeight(6),
+        UnSelectedImagePath = "DoorLock/DoorLockOpen.png",
+      };
+      openFrameLayout.AddChidren(btnDoorOpenPic);
 
-            btnDoorClosePic = new Button()
-            {
-                Width = Application.GetMinReal(81),
-                Height = Application.GetMinReal(81),
-                X = Application.GetRealWidth(164),
-                Y = Application.GetRealHeight(117),
-                UnSelectedImagePath = "DoorLock/DoorLockClose.png",
-            };
-            closeFrameLayout.AddChidren(btnDoorClosePic);
-            #endregion
+      btnDoorClosePic = new Button()
+      {
+        Width = Application.GetMinReal(81),
+        Height = Application.GetMinReal(81),
+        X = Application.GetRealWidth(164),
+        Y = Application.GetRealHeight(117),
+        UnSelectedImagePath = "DoorLock/DoorLockClose.png",
+      };
+      closeFrameLayout.AddChidren(btnDoorClosePic);
+      #endregion
 
-            //鐢甸噺
-            btnPower = new Button()
-            {
-                Width = Application.GetMinReal(81),
-                Height = Application.GetMinReal(81),
-                X = Application.GetRealWidth(253),
-                Y = Application.GetRealHeight(994),
-                UnSelectedImagePath = "DoorLock/PowerOffline.png",
-            };
-            midTopFrameLayout.AddChidren(btnPower);
+      //鐢甸噺
+      btnPower = new Button()
+      {
+        Width = Application.GetMinReal(81),
+        Height = Application.GetMinReal(81),
+        X = Application.GetRealWidth(253),
+        Y = Application.GetRealHeight(994),
+        UnSelectedImagePath = "DoorLock/PowerOffline.png",
+      };
+      midTopFrameLayout.AddChidren(btnPower);
 
-            //闊抽噺
-            btnVolumeFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(81 + 80),
-                Height = Application.GetRealHeight(81 + 80),
-                X = Application.GetRealWidth(444 - 40),
-                Y = Application.GetRealHeight(994 - 40),
-            };
-            midTopFrameLayout.AddChidren(btnVolumeFrameLayout);
-            btnVolume = new Button()
-            {
-                Width = Application.GetMinReal(81),
-                Height = Application.GetMinReal(81),
-                X = Application.GetRealWidth(40),
-                Y = Application.GetRealHeight(40),
-                UnSelectedImagePath = "DoorLock/VolumeIcon.png",
-                SelectedImagePath = "DoorLock/VolumeIconOn.png",
-            };
-            btnVolumeFrameLayout.AddChidren(btnVolume);
+      //闊抽噺
+      btnVolumeFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(81 + 80),
+        Height = Application.GetRealHeight(81 + 80),
+        X = Application.GetRealWidth(444 - 40),
+        Y = Application.GetRealHeight(994 - 40),
+      };
+      midTopFrameLayout.AddChidren(btnVolumeFrameLayout);
+      btnVolume = new Button()
+      {
+        Width = Application.GetMinReal(81),
+        Height = Application.GetMinReal(81),
+        X = Application.GetRealWidth(40),
+        Y = Application.GetRealHeight(40),
+        UnSelectedImagePath = "DoorLock/VolumeIcon.png",
+        SelectedImagePath = "DoorLock/VolumeIconOn.png",
+      };
+      btnVolumeFrameLayout.AddChidren(btnVolume);
 
-            //甯稿紑
-            btnNormallyOpenFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(81 + 80),
-                Height = Application.GetRealHeight(81 + 80),
-                X = Application.GetRealWidth(631 - 40),
-                Y = Application.GetRealHeight(994 - 40),
-            };
-            midTopFrameLayout.AddChidren(btnNormallyOpenFrameLayout);
-            btnNormallyOpen = new Button()
-            {
-                Width = Application.GetMinReal(81),
-                Height = Application.GetMinReal(81),
-                X = Application.GetRealWidth(40),
-                Y = Application.GetRealHeight(40),
-                UnSelectedImagePath = "DoorLock/NormallyOpen.png",
-                SelectedImagePath = "DoorLock/NormallyOpenOn.png",
-            };
-            btnNormallyOpenFrameLayout.AddChidren(btnNormallyOpen);
+      //甯稿紑
+      btnNormallyOpenFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(81 + 80),
+        Height = Application.GetRealHeight(81 + 80),
+        X = Application.GetRealWidth(631 - 40),
+        Y = Application.GetRealHeight(994 - 40),
+      };
+      midTopFrameLayout.AddChidren(btnNormallyOpenFrameLayout);
+      btnNormallyOpen = new Button()
+      {
+        Width = Application.GetMinReal(81),
+        Height = Application.GetMinReal(81),
+        X = Application.GetRealWidth(40),
+        Y = Application.GetRealHeight(40),
+        UnSelectedImagePath = "DoorLock/NormallyOpen.png",
+        SelectedImagePath = "DoorLock/NormallyOpenOn.png",
+      };
+      btnNormallyOpenFrameLayout.AddChidren(btnNormallyOpen);
 
-            #region 鑳屾櫙鍦嗚璁剧疆
-            var btnCurrentTopFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(50),
-                Width = Application.GetRealWidth(965),
-                BackgroundColor = ZigbeeColor.Current.XMBlack,
-                Y = Application.GetRealHeight(1100),
-            };
-            midTopFrameLayout.AddChidren(btnCurrentTopFrameLayout);
+      #region 鑳屾櫙鍦嗚璁剧疆
+      var btnCurrentTopFrameLayout = new FrameLayout()
+      {
+        Height = Application.GetRealHeight(50),
+        Width = Application.GetRealWidth(965),
+        BackgroundColor = ZigbeeColor.Current.XMBlack,
+        Y = Application.GetRealHeight(1100),
+      };
+      midTopFrameLayout.AddChidren(btnCurrentTopFrameLayout);
 
-            var btnCurrentFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(965),
-                Height = Application.GetRealHeight(138),
-                Y = Application.GetRealHeight(1100),
-                BackgroundColor = ZigbeeColor.Current.XMBlack,
-                Radius = 6,
-            };
-            midTopFrameLayout.AddChidren(btnCurrentFrameLayout);
-            #endregion
+      var btnCurrentFrameLayout = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(965),
+        Height = Application.GetRealHeight(138),
+        Y = Application.GetRealHeight(1100),
+        BackgroundColor = ZigbeeColor.Current.XMBlack,
+        Radius = (uint)Application.GetRealHeight(17),
+      };
+      midTopFrameLayout.AddChidren(btnCurrentFrameLayout);
+      #endregion
 
-            #region 褰撳墠鎴块棿
-            var btnCurrentRoomPic = new Button()
-            {
-                Width = Application.GetMinReal(81),
-                Height = Application.GetMinReal(81),
-                X = Application.GetRealWidth(58),
-                Y = Application.GetRealHeight(29),
-                UnSelectedImagePath = "DoorLock/RoomPic.png",
-            };
-            btnCurrentFrameLayout.AddChidren(btnCurrentRoomPic);
+      #region 褰撳墠鎴块棿
+      var btnCurrentRoomPic = new Button()
+      {
+        Width = Application.GetMinReal(81),
+        Height = Application.GetMinReal(81),
+        X = Application.GetRealWidth(58),
+        Y = Application.GetRealHeight(29),
+        UnSelectedImagePath = "DoorLock/RoomPic.png",
+      };
+      btnCurrentFrameLayout.AddChidren(btnCurrentRoomPic);
 
-            var btnCurrentRoomName = new Button()
-            {
-                Width = Application.GetRealWidth(172),
-                Height = Application.GetRealHeight(49),
-                X = Application.GetRealWidth(150),
-                Y = Application.GetRealHeight(46),
-                Text = currentRoom.Name,
-                TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
-                TextSize = 12,
-                TextAlignment = TextAlignment.CenterLeft,
-            };
-            btnCurrentFrameLayout.AddChidren(btnCurrentRoomName);
-            #endregion 
-        }
+      var btnCurrentRoomName = new Button()
+      {
+        Width = Application.GetRealWidth(172),
+        Height = Application.GetRealHeight(49),
+        X = Application.GetRealWidth(150),
+        Y = Application.GetRealHeight(46),
+        Text = currentRoom.Name,
+        TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+        TextSize = 12,
+        TextAlignment = TextAlignment.CenterLeft,
+      };
+      btnCurrentFrameLayout.AddChidren(btnCurrentRoomName);
+      #endregion
+    }
 
-        #region 闊抽噺寮圭獥
-        /// <summary>
-        /// 杩涘害鏉�
-        /// </summary>
-        private void VolumeDialog(Button progressText, DiyImageVerticalSeekBar diyImageVerticalSeekBar)
+    #region 闊抽噺寮圭獥
+    /// <summary>
+    /// 杩涘害鏉�
+    /// </summary>
+    private void VolumeDialog(Button progressText, DiyImageVerticalSeekBar diyImageVerticalSeekBar)
+    {
+      var dialog = new Dialog { };
+      dialog.Show();
+      var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
+      dialog.AddChidren(flMain);
+      flMain.MouseUpEventHandler += (sender11, e11) =>
+      {
+        dialog.Close();
+
+        //璁剧疆闊抽噺
+        if (currentVolume != oldVolume)
         {
-            var dialog = new Dialog { };
-            dialog.Show();
-            var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
-            dialog.AddChidren(flMain);
-            flMain.MouseUpEventHandler += (sender11, e11) =>
-            {
-                dialog.Close();
-
-                //璁剧疆闊抽噺
-                if (currentVolume != oldVolume)
-                {
-                    SetVolume(currentVolume);
-                }
-            };
-
-            var progressBackground = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(271),
-                Height = Application.GetRealHeight(700),
-                X = Application.GetRealWidth(403),
-                Y = Application.GetRealHeight(582),
-                BackgroundImagePath = "DoorLock/ProgressBackground.png",
-            };
-            flMain.AddChidren(progressBackground);
-
-            //var progressValue = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100;
-            progressText = new Button()
-            {
-                Height = Application.GetRealHeight(58),
-                Y = Application.GetRealHeight(89),
-                TextColor = ZigbeeColor.Current.XMGray2,
-                TextAlignment = TextAlignment.Center,
-                Text = currentVolume.ToString() + "%",
-            };
-
-            diyImageVerticalSeekBar = new DiyImageVerticalSeekBar()
-            {
-                Width = Application.GetRealWidth(271),
-                Height = Application.GetRealHeight(447 + 63),
-                Y = Application.GetRealHeight(155),
-                IsProgressTextShow = false,//鏄剧ず鐧惧垎姣�
-                ProgressBarColor = ZigbeeColor.Current.XMProgressBarColor,//閫変腑杩涘害鏉¢鑹�
-                SeekBarBackgroundColor = ZigbeeColor.Current.XMSeekBarBackgroundColor,//閫変腑杩涘害鏉¢鑹�
-                ThumbImagePath = "DoorLock/UnLockButton.png",//杩涘害鏉℃寜閽浘鏍�
-                ThumbImageHeight = Application.GetRealHeight(81),//杩涘害鏉℃寜閽浘鏍囩殑楂樺害锛堥粯璁ゆ鏂瑰舰锛氬鍜岄珮涓�鏍凤級
-                ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
-                ProgressTextSize = 12,//鏄剧ず鐧惧垎姣斿瓧浣撳ぇ灏� 
-                SeekBarViewHeight = Application.GetRealHeight(17),//杩涘害鏉$殑瀹藉害
-                Progress = currentVolume,
-            };
-            progressBackground.AddChidren(progressText);
-            progressBackground.AddChidren(diyImageVerticalSeekBar);
-            diyImageVerticalSeekBar.OnProgressChangedEvent += (sender, e) =>
-            {
-                int curVolume = -1;
-                curVolume = e;
-                currentVolume = curVolume;
-                progressText.Text = e.ToString() + "%";
-            };
+          SetVolume(currentVolume);
         }
+      };
 
-        #endregion
-        #endregion
+      var progressBackground = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(271),
+        Height = Application.GetRealHeight(700),
+        X = Application.GetRealWidth(403),
+        Y = Application.GetRealHeight(582),
+        BackgroundImagePath = "DoorLock/ProgressBackground.png",
+      };
+      flMain.AddChidren(progressBackground);
 
-        #region 澶勭悊鎺ュ彛鏁版嵁
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice tempDevice, string typeTag)
+      //var progressValue = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100;
+      progressText = new Button()
+      {
+        Height = Application.GetRealHeight(58),
+        Y = Application.GetRealHeight(89),
+        TextColor = ZigbeeColor.Current.XMGray2,
+        TextAlignment = TextAlignment.Center,
+        Text = currentVolume.ToString() + "%",
+      };
+
+      diyImageVerticalSeekBar = new DiyImageVerticalSeekBar()
+      {
+        Width = Application.GetRealWidth(271),
+        Height = Application.GetRealHeight(447 + 63),
+        Y = Application.GetRealHeight(155),
+        IsProgressTextShow = false,//鏄剧ず鐧惧垎姣�
+        ProgressBarColor = ZigbeeColor.Current.XMProgressBarColor,//閫変腑杩涘害鏉¢鑹�
+        SeekBarBackgroundColor = ZigbeeColor.Current.XMSeekBarBackgroundColor,//閫変腑杩涘害鏉¢鑹�
+        ThumbImagePath = "DoorLock/UnLockButton.png",//杩涘害鏉℃寜閽浘鏍�
+        ThumbImageHeight = Application.GetRealHeight(81),//杩涘害鏉℃寜閽浘鏍囩殑楂樺害锛堥粯璁ゆ鏂瑰舰锛氬鍜岄珮涓�鏍凤級
+        ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+        ProgressTextSize = 12,//鏄剧ず鐧惧垎姣斿瓧浣撳ぇ灏� 
+        SeekBarViewHeight = Application.GetRealHeight(17),//杩涘害鏉$殑瀹藉害
+        Progress = currentVolume,
+      };
+      progressBackground.AddChidren(progressText);
+      progressBackground.AddChidren(diyImageVerticalSeekBar);
+      diyImageVerticalSeekBar.OnProgressChangedEvent += (sender, e) =>
+      {
+        int curVolume = -1;
+        curVolume = e;
+        currentVolume = curVolume;
+        progressText.Text = e.ToString() + "%";
+      };
+    }
+
+    #endregion
+    #endregion
+
+    #region 澶勭悊鎺ュ彛鏁版嵁
+    /// <summary>
+    /// 澶勭悊鍙樺寲浜嬩欢
+    /// </summary>
+    /// <param name="common"></param>
+    /// <param name="typeTag"></param>
+    public void DeviceInfoChange(CommonDevice tempDevice, string typeTag)
+    {
+      //鏈烘寮�閿佷笂鎶ャ�傚鐞嗗父寮�鐘舵�侊紝寮�鍏崇姸鎬�
+      if (typeTag == "DoorLockProgrammingEventNotificationCommand" && tempDevice != null)
+      {
+        var tempDoor = (ZigBee.Device.DoorLock)tempDevice;
+        if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
+                             && tempDevice.DeviceAddr == doorLock.DeviceAddr)
         {
-            //鏈烘寮�閿佷笂鎶ャ�傚鐞嗗父寮�鐘舵�侊紝寮�鍏崇姸鎬�
-            if (typeTag == "DoorLockProgrammingEventNotificationCommand" && tempDevice != null)
-            {
-                var tempDoor = (ZigBee.Device.DoorLock)tempDevice;
-                if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
-                                     && tempDevice.DeviceAddr == doorLock.DeviceAddr)
-                {
-                    if (tempDoor.doorLockOperatingEventNotificationCommand != null)
-                    {
-                        //闈炰富浜轰笉寮硅繖涓獥鍙�
-                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                        {
-                            return;
-                        }
-                        if (doorLock.IsDoorLockNormallyMode)
-                        {
-                            if (canOpenNormallyMode)
-                            {
-                                Application.RunOnMainThread(() =>
-                                {
-                                    Action<bool> action = (obj) =>
-                                    {
-                                        UpdateNomallyOpenStatus();
-                                    };
-                                    DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action);
-                                });
-                            }
-                        }
-                    }
-                }
-            }
-
-            if (typeTag == "DeviceStatusReport" && tempDevice != null)
-            {
-                if (tempDevice != null)
-                {
-                    if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
-                                      && tempDevice.DeviceAddr == doorLock.DeviceAddr)
-                    {
-                        if (tempDevice.DeviceStatusReport != null && tempDevice.DeviceStatusReport.AttriBute != null)
-                        {
-                            var dataReport = tempDevice.DeviceStatusReport.AttriBute[0];
-                            if (tempDevice.DeviceStatusReport.CluterID == 1 && dataReport.AttributeId == 33)
-                            {
-                                Application.RunOnMainThread(() =>
-                                {
-                                    currentPower = dataReport.AttriButeData;
-                                    UpdatePower();
-                                });
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栨暟鎹�
-        /// </summary>
-        void ReadDoorLockUserInfo()
-        {
-            System.Threading.Tasks.Task.Run(async () =>
-            {
-                try
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        CommonPage.Loading.Start("");
-                    });
-
-                    //鏄惁鏀寔甯稿紑
-                    canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
-                    if (canOpenNormallyMode)
-                    {
-                        //1銆佽幏鍙栭棬閿佸父寮�妯″紡
-                        var resultRes = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
-                        if (resultRes == null)
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                btnNormallyOpen.UnSelectedImagePath = "DoorLock/NormallyOpenOffline.png";
-                                btnNormallyOpen.Enable = false;
-                                string msg = Language.StringByID(R.MyInternationalizationString.GetNormallyOpenModeFailed);
-                                this.ShowTipMsg(msg);
-                            });
-                        }
-                        else
-                        {
-                            var tempRes = false;
-                            if (resultRes == true)
-                            {
-                                tempRes = true;
-                            }
-                            else
-                            {
-                                tempRes = false;
-                            }
-                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
-
-                            Application.RunOnMainThread(async () =>
-                            {
-                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2, doorLock);
-                                if (resTemp == 0)
-                                {
-                                    haveLogicNormallyOpenMode = false;
-                                }
-                                else
-                                {
-                                    haveLogicNormallyOpenMode = true;
-                                }
-                            });
-                        }
-                    }
-                    else
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0);
-                        });
-                    }
-
-                    //鏄惁鏀寔闊抽噺
-                    canVolume = DoorLockCommonInfo.CanVolume(doorLock);
-                    if (canVolume)
-                    {
-                        //2銆佽鍙栭煶閲� 
-                        var resultRes = await doorLock.GetVolumeAsync();
-                        if (resultRes == null || resultRes.volumeResponseData == null)
-                        {
-                            var listDevice = new List<CommonDevice> { };
-                            listDevice.Add(doorLock);
-                            var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
-                            if (devTemp.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
-                            {
-                                Application.RunOnMainThread(() =>
-                                {
-                                    var volumeMsg = Language.StringByID(R.MyInternationalizationString.GetVolumeFailed);
-                                    this.ShowTipMsg(volumeMsg);
-                                });
-                            }
-                        }
-                        else
-                        {
-                            volumeData = resultRes.volumeResponseData;
-                            Application.RunOnMainThread(() =>
-                            {
-                                UpdateVolume();
-                            });
-                        }
-                    }
-                    else
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            btnVolumeFrameLayout.Width = Application.GetRealWidth(0);
-                            btnPower.X = Application.GetRealWidth(444);
-                        });
-                    }
-
-                    //3銆佽鍙栭棬閿佺數閲忥細绨嘔D锛�1 灞炴�D 33
-                    doorLock.ReadAttri(Cluster_ID.Power, AttriButeId.DoorLockPower);
-                    //涓婃姤鐢甸噺绛�1绉�
-                    System.Threading.Thread.Sleep(1000);
-                }
-                catch (Exception ex)
-                {
-                    var mess = ex.Message;
-                }
-                finally
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                        CommonPage.Loading.Hide();
-                    });
-                }
-            });
-        }
-
-        #endregion
-
-        #region 鍏叡浜嬩欢澶勭悊 
-        /// <summary>
-        /// 浜嬩欢澶勭悊 
-        /// </summary>
-        public void ClickHandle()
-        {
-            //闂ㄩ攣鏍囬
-            btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
-
-            //杩斿洖
-            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
-            {
-                RemoveFromParent();
-            };
-            this.btnBack.MouseUpEventHandler += eHandlerBack;
-            this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
-
-            //璁剧疆
-            EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) =>
-            {
-                var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(currentRoom, doorLock);
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
-                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                functionSetting.Show();
-                //DoorLockCommonInfo.canShowDialog = false;
-                functionSetting.devicNameAction += (deviceRename) =>
-                {
-                    if (!string.IsNullOrEmpty(deviceRename))
-                    {
-                        btnDoorLockTitle.Text = deviceRename;
-                        //鏀规埧闂�
-                        HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
-                        deviceUI.ReSave();
-                    }
-                };
-            };
-            btnFuncSetFrameLayout.MouseDownEventHandler += btnFuncSetHander;
-            btnFuncSet.MouseDownEventHandler += btnFuncSetHander;
-
-            //鎼滆棌鐘舵��
-            if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false)
-            {
-                btnCollect.IsSelected = false;
-            }
-            else
-            {
-                btnCollect.IsSelected = true;
-            }
-
-            //鍘嗗彶璁板綍鐐瑰嚮浜嬩欢
-            EventHandler<MouseEventArgs> handerRecord = (sender, e) =>
-            {
-                //鍘嗗彶璁板綍 ----   stan
-                var form = new DeviceDoorLock.DoorLockHistoryLogForm();
-                form.AddForm(this.doorLock.DeviceAddr);
-                //DoorLockCommonInfo.canShowDialog = false;
-            };
-            btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
-            btnRecord.MouseDownEventHandler += handerRecord;
-
-            //鏀惰棌鐐瑰嚮浜嬩欢
-            EventHandler<MouseEventArgs> handerCollect = (sender, e) =>
-            {
-                btnCollect.IsSelected = !btnCollect.IsSelected;
-                if (btnCollect.IsSelected)
-                {
-                    HdlRoomLogic.Current.AddLoveDevice(deviceUI);//鏀惰棌 
-                }
-                else
-                {
-                    HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//鍙栨秷鏀惰棌 
-                }
-            };
-            btnCollectFrameLayout.MouseDownEventHandler += handerCollect;
-            btnCollect.MouseDownEventHandler += handerCollect;
-
-            //寮�閿佷簨浠�
-            EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
-            {
-                if (doorLock.IsDoorLockNormallyMode)
-                {
-                    if (canOpenNormallyMode)
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            Action<bool> action = (obj) =>
-                            {
-                                UpdateNomallyOpenStatus();
-                            };
-                            DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
-                        });
-                    }
-                    else
-                    {
-                        OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
-                    }
-                }
-                else
-                {
-                    OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
-                }
-            };
-            openFrameLayout.MouseUpEventHandler += hander1;
-            btnDoorOpenPic.MouseUpEventHandler += hander1;
-            if (progressButton.Y == Application.GetRealHeight(10))
-            {
-                progressFrameLayoutMatch.MouseUpEventHandler += hander1;
-            }
-
-            //鍏抽攣浜嬩欢
-            EventHandler<MouseEventArgs> hander2 = (sender, e) =>
-            {
-                if (canOpenNormallyMode)
-                {
-                    if (doorLock.IsDoorLockNormallyMode)
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            Action<bool> action = (obj) =>
-                            {
-                                UpdateNomallyOpenStatus();
-                            };
-                            DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
-                        });
-                    }
-                }
-                else
-                {
-                    btnDoorLockPic.IsSelected = false;
-                    progressButton.Y = Application.GetRealHeight(347);
-                }
-            };
-            closeFrameLayout.MouseUpEventHandler += hander2;
-            btnDoorClosePic.MouseUpEventHandler += hander2;
-
-            //闊抽噺鐐瑰嚮浜嬩欢
-            EventHandler<MouseEventArgs> handerVolume = (sender, e) =>
-            {
-                if (canVolume)
-                {
-                    VolumeDialog(progressText, diyImageVerticalSeekBar);
-                }
-            };
-            btnVolumeFrameLayout.MouseDownEventHandler += handerVolume;
-            btnVolume.MouseDownEventHandler += handerVolume;
-
-
-            //甯稿紑妯″紡鐐瑰嚮浜嬩欢
-            EventHandler<MouseEventArgs> handerNormallyOpen = (sender, e) =>
-            {
-                NomallyOpenDialog();
-            };
-            btnNormallyOpenFrameLayout.MouseUpEventHandler += handerNormallyOpen;
-            btnNormallyOpen.MouseUpEventHandler += handerNormallyOpen;
-        }
-        #endregion
-
-        #region 鐢甸噺鏄剧ず
-        /// <summary>
-        /// 鐢甸噺鏇存柊
-        /// </summary>
-        private void UpdatePower()
-        {
-            btnCurrentPowerText.Text = Language.StringByID(R.MyInternationalizationString.DoorLockPower) + currentPower + "%";
-            if (currentPower <= 20 && currentPower >= 0)
-            {
-                btnPower.UnSelectedImagePath = "DoorLock/LowPower.png";
-            }
-            else if (currentPower <= 40 && currentPower > 20)
-            {
-                btnPower.UnSelectedImagePath = "DoorLock/Power40.png";
-            }
-            else if (currentPower <= 60 && currentPower > 40)
-            {
-                btnPower.UnSelectedImagePath = "DoorLock/Power60.png";
-            }
-            else if (currentPower <= 80 && currentPower > 60)
-            {
-                btnPower.UnSelectedImagePath = "DoorLock/Power80.png";
-            }
-            else if (currentPower <= 100 && currentPower > 80)
-            {
-                btnPower.UnSelectedImagePath = "DoorLock/Power100.png";
-            }
-            else
-            {
-                btnPower.UnSelectedImagePath = "DoorLock/PowerOffline.png";
-            }
-        }
-        #endregion
-
-        #region 闊抽噺 
-        /// <summary>
-        /// 鏇存柊闊抽噺
-        /// </summary>
-        private void UpdateVolume()
-        {
-            if (volumeData != null)
-            {
-                int curVol = 0;
-                btnVolume.IsSelected = true;
-                if (volumeData.command == "eb")
-                {
-                    curVol = 0;
-                }
-                else
-                {
-                    curVol = volumeData.value;
-                }
-                oldVolume = currentVolume = curVol;
-            }
-        }
-
-        /// <summary>
-        /// 璁剧疆闊抽噺
-        /// </summary>
-        private void SetVolume(int volume)
-        {
-            System.Threading.Tasks.Task.Run(async () =>
-            {
-                try
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        CommonPage.Loading.Start("");
-                    });
-                    var resultRes = await doorLock.SetVolumeAsync(volume);
-                    if (resultRes == null || resultRes.defaultControlResponseData == null)
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            var volumeMsg = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
-                            this.ShowTipMsg(volumeMsg);
-                            currentVolume = oldVolume;
-                            CommonPage.Loading.Hide();
-
-                        });
-                        return;
-                    }
-                    if (resultRes.defaultControlResponseData.status != 0)
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            var volumeMsg = Language.StringByID(R.MyInternationalizationString.SetVolumeFailed);
-                            this.ShowTipMsg(volumeMsg);
-                            currentVolume = oldVolume;
-                            CommonPage.Loading.Hide();
-                        });
-                        return;
-                    }
-                    Application.RunOnMainThread(() =>
-                    {
-                        var volumeMsg = Language.StringByID(R.MyInternationalizationString.SetVolumeSuccess);
-                        this.ShowTipMsg(volumeMsg);
-                        oldVolume = currentVolume;
-                        CommonPage.Loading.Hide();
-                    });
-                }
-                catch (Exception ex)
-                {
-                    var mes = ex.Message;
-                }
-            });
-        }
-        #endregion
-
-        #region 甯稿紑妯″紡  
-        /// <summary>
-        /// 甯稿紑妯″紡澶勭悊
-        /// </summary>
-        private async void NomallyOpenDialog()
-        {
+          if (tempDoor.doorLockOperatingEventNotificationCommand != null)
+          {
+            //闈炰富浜轰笉寮硅繖涓獥鍙�
             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
             {
-                this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
-                return;
-            }
-
-            if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
-            {
-                SystemSecondAuthentication();
-                return;
-            }
-
-            action = () =>
-            {
-                //WJC鐨勪唬鐮侊細绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
-                if (doorLock == null)
-                {
-                    ///闃叉鎶涘紓甯�
-                    return;
-                }
-                ///澶囨敞锛歐JC鐨�
-                Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
-                ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
-                Common.Logic.LogicDviceList.Clear();
-                if (Common.Logic.LogicDviceList.Count == 0)
-                {
-                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
-                }
-                var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
-                UserView.HomePage.Instance.AddChidren(addLogicPage);
-                UserView.HomePage.Instance.PageIndex += 1;
-                addLogicPage.Show();
-                addLogicPage.action += async (w) =>
-                 {
-                     DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w);
-                     UpdateNomallyOpenStatus();
-                     //杩斿洖鎸夐敭娓呯┖褰撳墠閫昏緫瀹氫箟鐨凩ogicAction
-                     UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
-                     //鏄惁瀛樺湪甯稿紑妯″紡
-                     var resTemp = Shared.Common.Logic.SoneLogicList;
-                     if (resTemp.Count == 0)
-                     {
-                         haveLogicNormallyOpenMode = false;
-                     }
-                     else
-                     {
-                         haveLogicNormallyOpenMode = true;
-                     }
-
-                     UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction -= addLogicPage.updateCurrentDoorlockActionTemp;
-                 };
-            };
-            HdlCheckLogic.Current.CheckSecondarySecurity(action);
-
-        }
-
-        /// <summary>
-        /// 甯稿紑妯″紡鐘舵�佹洿鏂�
-        /// </summary>
-        private void UpdateNomallyOpenStatus()
-        {
-            if (!canOpenNormallyMode)
-            {
-                btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0);
-                return;
+              return;
             }
             if (doorLock.IsDoorLockNormallyMode)
             {
-                btnNormallyOpen.IsSelected = true;
-                btnDoorLockPic.IsSelected = true;
-                progressButton.Y = Application.GetRealHeight(10);
-                btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
-
+              if (canOpenNormallyMode)
+              {
+                Application.RunOnMainThread(() =>
+                {
+                  Action<bool> action = (obj) =>
+                                  {
+                                    UpdateNomallyOpenStatus();
+                                  };
+                  DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action);
+                });
+              }
             }
-            else if (!doorLock.IsDoorLockNormallyMode)
-            {
-                btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose);
-                btnDoorLockPic.IsSelected = false;
-                btnNormallyOpen.IsSelected = false;
-                progressButton.Y = Application.GetRealHeight(347);
-            }
+          }
         }
-        #endregion
+      }
 
-        #region 寮�閿佸鐞� 
-        /// <summary>
-        /// 寮�閿佸鐞�
-        /// </summary>
-        /// <param name="progressButton">杩涘害鎸夐挳</param>
-        /// <param name="btnDoorLockPic">闂ㄩ攣鍥剧墖</param>
-        /// <param name="btnStatus">鐘舵�佹樉绀�</param>
-        async void OpenDoorLockHandle(Button progressButton, Button btnDoorLockPic, Button btnStatus)
+      if (typeTag == "DeviceStatusReport" && tempDevice != null)
+      {
+        if (tempDevice != null)
         {
-            openFrameLayout.Enable = false;
-            btnDoorOpenPic.Enable = false;
-            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+          if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
+                            && tempDevice.DeviceAddr == doorLock.DeviceAddr)
+          {
+            if (tempDevice.DeviceStatusReport != null && tempDevice.DeviceStatusReport.AttriBute != null)
             {
-                var result = await DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
-                if (result == false)
+              var dataReport = tempDevice.DeviceStatusReport.AttriBute[0];
+              if (tempDevice.DeviceStatusReport.CluterID == 1 && dataReport.AttributeId == 33)
+              {
+                Application.RunOnMainThread(() =>
                 {
-                    var result1 = await DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
-                    if (result1 == true)
-                    {
-                        RemoteUnlockRequest(currentRoom, deviceUI, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
-                        devicNameSecAction += (deviceRename) =>
-                        {
-                            if (!string.IsNullOrEmpty(deviceRename))
-                            {
-                                btnDoorLockTitle.Text = deviceRename;
-                                //鏀规埧闂�
-                                HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
-                                deviceUI.ReSave();
-                            }
-                        };
-                        openFrameLayout.Enable = true;
-                        btnDoorOpenPic.Enable = true;
-                    }
-                    else
-                    {
-                        this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
-                        openFrameLayout.Enable = true;
-                        btnDoorOpenPic.Enable = true;
-                    }
-                }
-                else
+                  currentPower = dataReport.AttriButeData;
+                  UpdatePower();
+                });
+              }
+            }
+          }
+        }
+      }
+    }
+
+    /// <summary>
+    /// 鍒濆鍖栨暟鎹�
+    /// </summary>
+    void ReadDoorLockUserInfo()
+    {
+      System.Threading.Tasks.Task.Run(async () =>
+      {
+        try
+        {
+          Application.RunOnMainThread(() =>
                 {
-                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
-                    openFrameLayout.Enable = true;
-                    btnDoorOpenPic.Enable = true;
-                }
+                  CommonPage.Loading.Start("");
+                });
+
+          //鏄惁鏀寔甯稿紑
+          canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
+          if (canOpenNormallyMode)
+          {
+            //1銆佽幏鍙栭棬閿佸父寮�妯″紡
+            var resultRes = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
+            if (resultRes == null)
+            {
+              Application.RunOnMainThread(() =>
+                    {
+                      btnNormallyOpen.UnSelectedImagePath = "DoorLock/NormallyOpenOffline.png";
+                      btnNormallyOpen.Enable = false;
+                      string msg = Language.StringByID(R.MyInternationalizationString.GetNormallyOpenModeFailed);
+                      this.ShowTipMsg(msg);
+                    });
             }
             else
             {
-                RemoteUnlockRequest(currentRoom, deviceUI, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
-                devicNameSecAction += (deviceRename) =>
-                {
-                    if (!string.IsNullOrEmpty(deviceRename))
-                    {
-                        btnDoorLockTitle.Text = deviceRename;
-                        //鏀规埧闂�
-                        HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
-                        deviceUI.ReSave();
-                    }
-                };
-                openFrameLayout.Enable = true;
-                btnDoorOpenPic.Enable = true;
-            }
-        }
-        #endregion
+              var tempRes = false;
+              if (resultRes == true)
+              {
+                tempRes = true;
+              }
+              else
+              {
+                tempRes = false;
+              }
+              DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
 
-        #region 绉婚櫎鏂规硶
-        /// <summary>
-        /// 閲嶅啓绉婚櫎鏂规硶
-        /// </summary>
-        public override void RemoveFromParent()
-        {
-            UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null;
-            if (IsDrawerLockMode)
-            {
-                CommonPage.Instance.IsDrawerLockMode = false;
+              Application.RunOnMainThread(async () =>
+                    {
+                      var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2, doorLock);
+                      if (resTemp == 0)
+                      {
+                        haveLogicNormallyOpenMode = false;
+                      }
+                      else
+                      {
+                        haveLogicNormallyOpenMode = true;
+                      }
+                    });
             }
-            ZbGateway.StatusList.Remove(this);
-            DoorLockCommonInfo.LogicAction = null;
-            base.RemoveFromParent();
+          }
+          else
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0);
+                  });
+          }
+
+          //鏄惁鏀寔闊抽噺
+          canVolume = DoorLockCommonInfo.CanVolume(doorLock);
+          if (canVolume)
+          {
+            //2銆佽鍙栭煶閲� 
+            var resultRes = await doorLock.GetVolumeAsync();
+            if (resultRes == null || resultRes.volumeResponseData == null)
+            {
+              var listDevice = new List<CommonDevice> { };
+              listDevice.Add(doorLock);
+              var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+              if (devTemp.ConcreteType != DeviceConcreteType.IntelligentLocks_H06C)
+              {
+                Application.RunOnMainThread(() =>
+                      {
+                        var volumeMsg = Language.StringByID(R.MyInternationalizationString.GetVolumeFailed);
+                        this.ShowTipMsg(volumeMsg);
+                      });
+              }
+            }
+            else
+            {
+              volumeData = resultRes.volumeResponseData;
+              Application.RunOnMainThread(() =>
+                    {
+                      UpdateVolume();
+                    });
+            }
+          }
+          else
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    btnVolumeFrameLayout.Width = Application.GetRealWidth(0);
+                    btnPower.X = Application.GetRealWidth(444);
+                  });
+          }
+
+          //3銆佽鍙栭棬閿佺數閲忥細绨嘔D锛�1 灞炴�D 33
+          doorLock.ReadAttri(Cluster_ID.Power, AttriButeId.DoorLockPower);
+          //涓婃姤鐢甸噺绛�1绉�
+          System.Threading.Thread.Sleep(1000);
         }
-        #endregion
+        catch (Exception ex)
+        {
+          var mess = ex.Message;
+        }
+        finally
+        {
+          Application.RunOnMainThread(() =>
+                {
+                  UpdateNomallyOpenStatus();
+                  CommonPage.Loading.Hide();
+                });
+        }
+      });
     }
+
+    #endregion
+
+    #region 鍏叡浜嬩欢澶勭悊 
+    /// <summary>
+    /// 浜嬩欢澶勭悊 
+    /// </summary>
+    public void ClickHandle()
+    {
+      //闂ㄩ攣鏍囬
+      btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
+
+      //杩斿洖
+      EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
+      {
+        RemoveFromParent();
+      };
+      this.btnBack.MouseUpEventHandler += eHandlerBack;
+      this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
+
+      //璁剧疆
+      EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) =>
+      {
+        var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(currentRoom, doorLock);
+        Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
+        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+        functionSetting.Show();
+        //DoorLockCommonInfo.canShowDialog = false;
+        functionSetting.devicNameAction += (deviceRename) =>
+        {
+          if (!string.IsNullOrEmpty(deviceRename))
+          {
+            btnDoorLockTitle.Text = deviceRename;
+            //鏀规埧闂�
+            HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
+            deviceUI.ReSave();
+          }
+        };
+      };
+      btnFuncSetFrameLayout.MouseDownEventHandler += btnFuncSetHander;
+      btnFuncSet.MouseDownEventHandler += btnFuncSetHander;
+
+      //鎼滆棌鐘舵��
+      if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false)
+      {
+        btnCollect.IsSelected = false;
+      }
+      else
+      {
+        btnCollect.IsSelected = true;
+      }
+
+      //鍘嗗彶璁板綍鐐瑰嚮浜嬩欢
+      EventHandler<MouseEventArgs> handerRecord = (sender, e) =>
+      {
+        //鍘嗗彶璁板綍 ----   stan
+        var form = new DeviceDoorLock.DoorLockHistoryLogForm();
+        form.AddForm(this.doorLock.DeviceAddr);
+        //DoorLockCommonInfo.canShowDialog = false;
+      };
+      btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
+      btnRecord.MouseDownEventHandler += handerRecord;
+
+      //鏀惰棌鐐瑰嚮浜嬩欢
+      EventHandler<MouseEventArgs> handerCollect = (sender, e) =>
+      {
+        btnCollect.IsSelected = !btnCollect.IsSelected;
+        if (btnCollect.IsSelected)
+        {
+          HdlRoomLogic.Current.AddLoveDevice(deviceUI);//鏀惰棌 
+        }
+        else
+        {
+          HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//鍙栨秷鏀惰棌 
+        }
+      };
+      btnCollectFrameLayout.MouseDownEventHandler += handerCollect;
+      btnCollect.MouseDownEventHandler += handerCollect;
+
+      //寮�閿佷簨浠�
+      EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
+      {
+        if (doorLock.IsDoorLockNormallyMode)
+        {
+          if (canOpenNormallyMode)
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    Action<bool> action = (obj) =>
+                          {
+                            UpdateNomallyOpenStatus();
+                          };
+                    DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
+                  });
+          }
+          else
+          {
+            OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
+          }
+        }
+        else
+        {
+          OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
+        }
+      };
+      openFrameLayout.MouseUpEventHandler += hander1;
+      btnDoorOpenPic.MouseUpEventHandler += hander1;
+      if (progressButton.Y == Application.GetRealHeight(10))
+      {
+        progressFrameLayoutMatch.MouseUpEventHandler += hander1;
+      }
+
+      //鍏抽攣浜嬩欢
+      EventHandler<MouseEventArgs> hander2 = (sender, e) =>
+      {
+        if (canOpenNormallyMode)
+        {
+          if (doorLock.IsDoorLockNormallyMode)
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    Action<bool> action = (obj) =>
+                          {
+                            UpdateNomallyOpenStatus();
+                          };
+                    DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
+                  });
+          }
+        }
+        else
+        {
+          btnDoorLockPic.IsSelected = false;
+          progressButton.Y = Application.GetRealHeight(347);
+        }
+      };
+      closeFrameLayout.MouseUpEventHandler += hander2;
+      btnDoorClosePic.MouseUpEventHandler += hander2;
+
+      //闊抽噺鐐瑰嚮浜嬩欢
+      EventHandler<MouseEventArgs> handerVolume = (sender, e) =>
+      {
+        if (canVolume)
+        {
+          VolumeDialog(progressText, diyImageVerticalSeekBar);
+        }
+      };
+      btnVolumeFrameLayout.MouseDownEventHandler += handerVolume;
+      btnVolume.MouseDownEventHandler += handerVolume;
+
+
+      //甯稿紑妯″紡鐐瑰嚮浜嬩欢
+      EventHandler<MouseEventArgs> handerNormallyOpen = (sender, e) =>
+      {
+        NomallyOpenDialog();
+      };
+      btnNormallyOpenFrameLayout.MouseUpEventHandler += handerNormallyOpen;
+      btnNormallyOpen.MouseUpEventHandler += handerNormallyOpen;
+    }
+    #endregion
+
+    #region 鐢甸噺鏄剧ず
+    /// <summary>
+    /// 鐢甸噺鏇存柊
+    /// </summary>
+    private void UpdatePower()
+    {
+      btnCurrentPowerText.Text = Language.StringByID(R.MyInternationalizationString.DoorLockPower) + currentPower + "%";
+      if (currentPower <= 20 && currentPower >= 0)
+      {
+        btnPower.UnSelectedImagePath = "DoorLock/LowPower.png";
+      }
+      else if (currentPower <= 40 && currentPower > 20)
+      {
+        btnPower.UnSelectedImagePath = "DoorLock/Power40.png";
+      }
+      else if (currentPower <= 60 && currentPower > 40)
+      {
+        btnPower.UnSelectedImagePath = "DoorLock/Power60.png";
+      }
+      else if (currentPower <= 80 && currentPower > 60)
+      {
+        btnPower.UnSelectedImagePath = "DoorLock/Power80.png";
+      }
+      else if (currentPower <= 100 && currentPower > 80)
+      {
+        btnPower.UnSelectedImagePath = "DoorLock/Power100.png";
+      }
+      else
+      {
+        btnPower.UnSelectedImagePath = "DoorLock/PowerOffline.png";
+      }
+    }
+    #endregion
+
+    #region 闊抽噺 
+    /// <summary>
+    /// 鏇存柊闊抽噺
+    /// </summary>
+    private void UpdateVolume()
+    {
+      if (volumeData != null)
+      {
+        int curVol = 0;
+        btnVolume.IsSelected = true;
+        if (volumeData.command == "eb")
+        {
+          curVol = 0;
+        }
+        else
+        {
+          curVol = volumeData.value;
+        }
+        oldVolume = currentVolume = curVol;
+      }
+    }
+
+    /// <summary>
+    /// 璁剧疆闊抽噺
+    /// </summary>
+    private void SetVolume(int volume)
+    {
+      System.Threading.Tasks.Task.Run(async () =>
+      {
+        try
+        {
+          Application.RunOnMainThread(() =>
+                {
+                  CommonPage.Loading.Start("");
+                });
+          var resultRes = await doorLock.SetVolumeAsync(volume);
+          if (resultRes == null || resultRes.defaultControlResponseData == null)
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    var volumeMsg = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
+                    this.ShowTipMsg(volumeMsg);
+                    currentVolume = oldVolume;
+                    CommonPage.Loading.Hide();
+
+                  });
+            return;
+          }
+          if (resultRes.defaultControlResponseData.status != 0)
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    var volumeMsg = Language.StringByID(R.MyInternationalizationString.SetVolumeFailed);
+                    this.ShowTipMsg(volumeMsg);
+                    currentVolume = oldVolume;
+                    CommonPage.Loading.Hide();
+                  });
+            return;
+          }
+          Application.RunOnMainThread(() =>
+                {
+                  var volumeMsg = Language.StringByID(R.MyInternationalizationString.SetVolumeSuccess);
+                  this.ShowTipMsg(volumeMsg);
+                  oldVolume = currentVolume;
+                  CommonPage.Loading.Hide();
+                });
+        }
+        catch (Exception ex)
+        {
+          var mes = ex.Message;
+        }
+      });
+    }
+    #endregion
+
+    #region 甯稿紑妯″紡  
+    /// <summary>
+    /// 甯稿紑妯″紡澶勭悊
+    /// </summary>
+    private async void NomallyOpenDialog()
+    {
+      if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+      {
+        this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
+        return;
+      }
+
+      if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
+      {
+        SystemSecondAuthentication();
+        return;
+      }
+
+      action = () =>
+      {
+        //WJC鐨勪唬鐮侊細绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
+        if (doorLock == null)
+        {
+          ///闃叉鎶涘紓甯�
+          return;
+        }
+        ///澶囨敞锛歐JC鐨�
+        Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
+        ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
+        Common.Logic.LogicDviceList.Clear();
+        if (Common.Logic.LogicDviceList.Count == 0)
+        {
+          Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
+        }
+        var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
+        UserView.HomePage.Instance.AddChidren(addLogicPage);
+        UserView.HomePage.Instance.PageIndex += 1;
+        addLogicPage.Show();
+        addLogicPage.action += async (w) =>
+               {
+                 DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w);
+                 UpdateNomallyOpenStatus();
+                 //杩斿洖鎸夐敭娓呯┖褰撳墠閫昏緫瀹氫箟鐨凩ogicAction
+                 UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
+                 //鏄惁瀛樺湪甯稿紑妯″紡
+                 var resTemp = Shared.Common.Logic.SoneLogicList;
+                 if (resTemp.Count == 0)
+                 {
+                   haveLogicNormallyOpenMode = false;
+                 }
+                 else
+                 {
+                   haveLogicNormallyOpenMode = true;
+                 }
+
+                 UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction -= addLogicPage.updateCurrentDoorlockActionTemp;
+               };
+      };
+      HdlCheckLogic.Current.CheckSecondarySecurity(action);
+
+    }
+
+    /// <summary>
+    /// 甯稿紑妯″紡鐘舵�佹洿鏂�
+    /// </summary>
+    private void UpdateNomallyOpenStatus()
+    {
+      if (!canOpenNormallyMode)
+      {
+        btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0);
+        return;
+      }
+      if (doorLock.IsDoorLockNormallyMode)
+      {
+        btnNormallyOpen.IsSelected = true;
+        btnDoorLockPic.IsSelected = true;
+        progressButton.Y = Application.GetRealHeight(10);
+        btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
+
+      }
+      else if (!doorLock.IsDoorLockNormallyMode)
+      {
+        btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose);
+        btnDoorLockPic.IsSelected = false;
+        btnNormallyOpen.IsSelected = false;
+        progressButton.Y = Application.GetRealHeight(347);
+      }
+    }
+    #endregion
+
+    #region 寮�閿佸鐞� 
+    /// <summary>
+    /// 寮�閿佸鐞�
+    /// </summary>
+    /// <param name="progressButton">杩涘害鎸夐挳</param>
+    /// <param name="btnDoorLockPic">闂ㄩ攣鍥剧墖</param>
+    /// <param name="btnStatus">鐘舵�佹樉绀�</param>
+    async void OpenDoorLockHandle(Button progressButton, Button btnDoorLockPic, Button btnStatus)
+    {
+      openFrameLayout.Enable = false;
+      btnDoorOpenPic.Enable = false;
+      if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+      {
+        var result = await DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+        if (result == false)
+        {
+          var result1 = await DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
+          if (result1 == true)
+          {
+            RemoteUnlockRequest(currentRoom, deviceUI, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
+            devicNameSecAction += (deviceRename) =>
+            {
+              if (!string.IsNullOrEmpty(deviceRename))
+              {
+                btnDoorLockTitle.Text = deviceRename;
+                //鏀规埧闂�
+                HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
+                deviceUI.ReSave();
+              }
+            };
+            openFrameLayout.Enable = true;
+            btnDoorOpenPic.Enable = true;
+          }
+          else
+          {
+            this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
+            openFrameLayout.Enable = true;
+            btnDoorOpenPic.Enable = true;
+          }
+        }
+        else
+        {
+          this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+          openFrameLayout.Enable = true;
+          btnDoorOpenPic.Enable = true;
+        }
+      }
+      else
+      {
+        RemoteUnlockRequest(currentRoom, deviceUI, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
+        devicNameSecAction += (deviceRename) =>
+        {
+          if (!string.IsNullOrEmpty(deviceRename))
+          {
+            btnDoorLockTitle.Text = deviceRename;
+            //鏀规埧闂�
+            HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
+            deviceUI.ReSave();
+          }
+        };
+        openFrameLayout.Enable = true;
+        btnDoorOpenPic.Enable = true;
+      }
+    }
+    #endregion
+
+    #region 绉婚櫎鏂规硶
+    /// <summary>
+    /// 閲嶅啓绉婚櫎鏂规硶
+    /// </summary>
+    public override void RemoveFromParent()
+    {
+      UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null;
+      if (IsDrawerLockMode)
+      {
+        CommonPage.Instance.IsDrawerLockMode = false;
+      }
+      ZbGateway.StatusList.Remove(this);
+      DoorLockCommonInfo.LogicAction = null;
+      base.RemoveFromParent();
+    }
+    #endregion
+  }
 }

--
Gitblit v1.8.0