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/TimeSettignPage.cs | 1972 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 986 insertions(+), 986 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
old mode 100755
new mode 100644
index 5c95989..bb0e9c0
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
@@ -5,477 +5,477 @@
 
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class TimeSettignPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+  public class TimeSettignPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+  {
+    #region 涓婃姤鏁版嵁澶勭悊
+    /// <summary>
+    /// 澶勭悊鍙樺寲浜嬩欢
+    /// </summary>
+    /// <param name="common"></param>
+    /// <param name="typeTag"></param>
+    public void DeviceInfoChange(CommonDevice tempDevice, string typeTag)
     {
-        #region 涓婃姤鏁版嵁澶勭悊
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice tempDevice, string typeTag)
+      if (typeTag == "DeviceStatusReport" && tempDevice != null)
+      {
+        if (tempDevice != null)
         {
-            if (typeTag == "DeviceStatusReport" && tempDevice != null)
+          if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
+                            && tempDevice.DeviceAddr == doorLock.DeviceAddr)
+          {
+            if (tempDevice.DeviceStatusReport != null && tempDevice.DeviceStatusReport.AttriBute != null)
             {
-                if (tempDevice != null)
+              var dataReport = tempDevice.DeviceStatusReport.AttriBute[0];
+              if (tempDevice.DeviceStatusReport.CluterID == 10 && dataReport.AttributeId == 0)
+              {
+                CurentDoorLockTime = DoorLockCommonInfo.GetLocalTime(dataReport.AttriButeData);
+                Application.RunOnMainThread(() =>
                 {
-                    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 == 10 && dataReport.AttributeId == 0)
-                            {
-                                CurentDoorLockTime = DoorLockCommonInfo.GetLocalTime(dataReport.AttriButeData);
-                                Application.RunOnMainThread(() =>
-                                {
-                                    waitGetDoorLockTime = DateTime.MaxValue;
-                                    textDisplayDate.Text = CurentDoorLockTime.Year + Language.StringByID(R.MyInternationalizationString.Year) + CurentDoorLockTime.Month + Language.StringByID(R.MyInternationalizationString.Month) + CurentDoorLockTime.Day + Language.StringByID(R.MyInternationalizationString.Day);
-                                    if (CurentDoorLockTime.Minute < 10)
-                                    {
-                                        textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + "0" + CurentDoorLockTime.Minute;
-                                    }
-                                    else
-                                    {
-                                        textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + CurentDoorLockTime.Minute;
-                                    }
-                                    CommonPage.Loading.Hide();
-                                });
-                            }
-                        }
-                    }
-                }
+                  waitGetDoorLockTime = DateTime.MaxValue;
+                  textDisplayDate.Text = CurentDoorLockTime.Year + Language.StringByID(R.MyInternationalizationString.Year) + CurentDoorLockTime.Month + Language.StringByID(R.MyInternationalizationString.Month) + CurentDoorLockTime.Day + Language.StringByID(R.MyInternationalizationString.Day);
+                  if (CurentDoorLockTime.Minute < 10)
+                  {
+                    textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + "0" + CurentDoorLockTime.Minute;
+                  }
+                  else
+                  {
+                    textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + CurentDoorLockTime.Minute;
+                  }
+                  CommonPage.Loading.Hide();
+                });
+              }
             }
+          }
         }
-        #endregion
+      }
+    }
+    #endregion
 
-        #region 鏋勯�犲嚱鏁�
-        /// <summary>
-        /// 鏋勯�犲嚱鏁�
-        /// </summary>
-        /// <param name="doorLock"></param>
-        public TimeSettignPage(ZigBee.Device.DoorLock doorLock, string timeType)
+    #region 鏋勯�犲嚱鏁�
+    /// <summary>
+    /// 鏋勯�犲嚱鏁�
+    /// </summary>
+    /// <param name="doorLock"></param>
+    public TimeSettignPage(ZigBee.Device.DoorLock doorLock, string timeType)
+    {
+      this.doorLock = doorLock;
+      setTimeType = timeType;
+      BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
+      //璇婚棬閿佹椂鍖烘椂闂�
+      DoorLockCommonInfo.GetDoorLockZoneTime();
+      ZigBee.Device.ZbGateway.StatusList.Add(this);
+    }
+    #endregion
+
+    #region UI鍐呭
+    #region  鍙橀噺鐢虫槑
+    /// <summary>
+    /// 褰撳墠闂ㄩ攣
+    /// </summary>
+    ZigBee.Device.DoorLock doorLock;
+    /// <summary>
+    /// 璁剧疆鏃堕棿绫诲瀷
+    /// </summary>
+    string setTimeType = "";
+    /// <summary>
+    /// 褰撳墠闂ㄩ攣鏃堕棿
+    /// </summary>
+    DateTime CurentDoorLockTime;
+    /// <summary>
+    /// 鏄剧ず鏃ユ湡鐨勬枃鏈�
+    /// </summary>
+    Button textDisplayDate;
+    /// <summary>
+    /// 鏄剧ず鏃堕棿鐨勬枃鏈�
+    /// </summary>
+    Button textDisplayTime;
+    /// <summary>
+    /// 鏈湴鍙橀噺鈥滃勾鈥�
+    /// </summary>
+    int curYear = 0;
+    /// <summary>
+    /// 鏈湴鍙橀噺鈥滄湀鈥�
+    /// </summary>
+    int curMonth = 0;
+    /// <summary>
+    /// 鏈湴鍙橀噺鈥滄棩鈥�
+    /// </summary>
+    int curDay = 0;
+    /// <summary>
+    /// 鏈湴鍙橀噺鈥滄椂鈥�
+    /// </summary>
+    int curHour = 0;
+    /// <summary>
+    /// 鏈湴鍙橀噺鈥滃垎鈥�
+    /// </summary>
+    int curMin = 0;
+    /// <summary>
+    /// 鏈湴鍙橀噺鈥滅鈥�
+    /// </summary>
+    int curSec = 0;
+    /// <summary>
+    /// 璁剧疆鏃堕棿鐨凙ction
+    /// </summary>
+    public Action timeSetAction;
+    /// <summary>
+    /// 绛夊緟鑾峰彇闂ㄩ攣鏃剁殑绛夊緟鏃堕棿
+    /// </summary>
+    DateTime waitGetDoorLockTime = DateTime.MaxValue;
+    #endregion
+
+    /// <summary>
+    /// UI鏄剧ず 
+    /// </summary>
+    public void Show()
+    {
+      if (setTimeType == "ValidTime")
+      {
+        this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.ValidTime));
+      }
+      else if (setTimeType == "InValidTime")
+      {
+        this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.InValidTime));
+      }
+      else
+      {
+        this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.DoorLockTime));
+      }
+
+      EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
+      {
+        this.RemoveFromParent();
+      };
+      this.btnBack.MouseUpEventHandler += eHandlerBack;
+      this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
+      this.MidFrameLayout(this);
+      MidFrameLayoutContent();
+    }
+
+    /// <summary>
+    /// 涓儴甯冨眬
+    /// </summary>
+    public void MidFrameLayoutContent()
+    {
+      if (setTimeType == "DoorLockTime")
+      {
+        ReadDoorlockTime();
+      }
+
+      var zoneFrameLayout = new FrameLayout()
+      {
+        BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+      };
+      this.midFrameLayout.AddChidren(zoneFrameLayout);
+
+      if (setTimeType == "DoorLockTime")
+      {
+        zoneFrameLayout.Height = Application.GetRealHeight(150) + 1;
+        AddDoorLocksTimeRow(zoneFrameLayout);
+      }
+      else
+      {
+        zoneFrameLayout.Height = Application.GetRealHeight(0);
+      }
+
+      var midTopFrameLayout = new FrameLayout()
+      {
+        Y = zoneFrameLayout.Bottom,
+      };
+      this.midFrameLayout.AddChidren(midTopFrameLayout);
+
+      var dtNow = DoorLockCommonInfo.DoorlockZoneTime;// DateTime.Now;
+      for (int i = 0; i < 2; i++)
+      {
+        #region MidTopFrameLayout UI
+        var rowLayout = new FrameLayout()
         {
-            this.doorLock = doorLock;
-            setTimeType = timeType;
-            BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
-            //璇婚棬閿佹椂鍖烘椂闂�
-            DoorLockCommonInfo.GetDoorLockZoneTime();
-            ZigBee.Device.ZbGateway.StatusList.Add(this);
-        }
-        #endregion
+          Height = Application.GetRealHeight(127 + 23),
+          BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+        };
+        midTopFrameLayout.AddChidren(rowLayout);
 
-        #region UI鍐呭
-        #region  鍙橀噺鐢虫槑
-        /// <summary>
-        /// 褰撳墠闂ㄩ攣
-        /// </summary>
-        ZigBee.Device.DoorLock doorLock;
-        /// <summary>
-        /// 璁剧疆鏃堕棿绫诲瀷
-        /// </summary>
-        string setTimeType = "";
-        /// <summary>
-        /// 褰撳墠闂ㄩ攣鏃堕棿
-        /// </summary>
-        DateTime CurentDoorLockTime;
-        /// <summary>
-        /// 鏄剧ず鏃ユ湡鐨勬枃鏈�
-        /// </summary>
-        Button textDisplayDate;
-        /// <summary>
-        /// 鏄剧ず鏃堕棿鐨勬枃鏈�
-        /// </summary>
-        Button textDisplayTime;
-        /// <summary>
-        /// 鏈湴鍙橀噺鈥滃勾鈥�
-        /// </summary>
-        int curYear = 0;
-        /// <summary>
-        /// 鏈湴鍙橀噺鈥滄湀鈥�
-        /// </summary>
-        int curMonth = 0;
-        /// <summary>
-        /// 鏈湴鍙橀噺鈥滄棩鈥�
-        /// </summary>
-        int curDay = 0;
-        /// <summary>
-        /// 鏈湴鍙橀噺鈥滄椂鈥�
-        /// </summary>
-        int curHour = 0;
-        /// <summary>
-        /// 鏈湴鍙橀噺鈥滃垎鈥�
-        /// </summary>
-        int curMin = 0;
-        /// <summary>
-        /// 鏈湴鍙橀噺鈥滅鈥�
-        /// </summary>
-        int curSec = 0;
-        /// <summary>
-        /// 璁剧疆鏃堕棿鐨凙ction
-        /// </summary>
-        public Action timeSetAction;
-        /// <summary>
-        /// 绛夊緟鑾峰彇闂ㄩ攣鏃剁殑绛夊緟鏃堕棿
-        /// </summary>
-        DateTime waitGetDoorLockTime = DateTime.MaxValue;
-        #endregion
-
-        /// <summary>
-        /// UI鏄剧ず 
-        /// </summary>
-        public void Show()
+        var btnDateTime = new Button()
         {
+          Width = Application.GetRealWidth(560),
+          Height = Application.GetRealHeight(58),
+          X = Application.GetRealWidth(58),
+          TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+          TextAlignment = TextAlignment.CenterLeft,
+          TextSize = 12,
+        };
+        rowLayout.AddChidren(btnDateTime);
+
+        var textDisplayDateFrameLayout = new FrameLayout()
+        {
+          Width = Application.GetRealWidth(333),
+          Height = Application.GetRealHeight(58),
+          X = Application.GetRealWidth(620),
+        };
+        rowLayout.AddChidren(textDisplayDateFrameLayout);
+
+        var btnNextFrameLayout = new FrameLayout()
+        {
+          Width = Application.GetRealWidth(116),
+          Height = Application.GetRealHeight(58),
+          X = Application.GetRealWidth(956),
+        };
+        rowLayout.AddChidren(btnNextFrameLayout);
+
+        var btnNext = new Button()
+        {
+          Width = Application.GetRealWidth(58),
+          Height = Application.GetRealHeight(58),
+          UnSelectedImagePath = "Item/RightNext.png",
+          SelectedImagePath = "Item/Down.png",
+        };
+        btnNextFrameLayout.AddChidren(btnNext);
+
+        var btnLine = new FrameLayout()
+        {
+          Width = Application.GetRealWidth(965),
+          Height = 1,
+          X = Application.GetRealWidth(58),
+          BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+        };
+        midTopFrameLayout.AddChidren(btnLine);
+        #endregion
+
+        #region 鏄剧ず澶勭悊
+        if (i == 0)
+        {
+          btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50);
+          btnLine.Y = Application.GetRealHeight(23 + 127);
+
+          textDisplayDate = new Button()
+          {
+            TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+            TextAlignment = TextAlignment.CenterRight,
+            TextSize = 12,
+            Text = "_" + Language.StringByID(R.MyInternationalizationString.Year) + "_" + Language.StringByID(R.MyInternationalizationString.Month) + "_" + Language.StringByID(R.MyInternationalizationString.Day),
+          };
+          textDisplayDateFrameLayout.AddChidren(textDisplayDate);
+
+          if (setTimeType != "DoorLockTime")
+          {
+            btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.Date);
             if (setTimeType == "ValidTime")
             {
-                this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.ValidTime));
+              textDisplayDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
             }
             else if (setTimeType == "InValidTime")
             {
-                this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.InValidTime));
+              textDisplayDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
             }
-            else
-            {
-                this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.DoorLockTime));
-            }
-
-            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
-            {
-                this.RemoveFromParent();
-            };
-            this.btnBack.MouseUpEventHandler += eHandlerBack;
-            this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
-            this.MidFrameLayout(this);
-            MidFrameLayoutContent();
+          }
+          else
+          {
+            btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.CurrentDate);
+          }
         }
-
-        /// <summary>
-        /// 涓儴甯冨眬
-        /// </summary>
-        public void MidFrameLayoutContent()
+        else if (i == 1)
         {
-            if (setTimeType == "DoorLockTime")
+          rowLayout.Y = 1 + Application.GetRealHeight(150);
+          btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50);
+          btnLine.Y = Application.GetRealHeight(40 + 127 + 127);
+          textDisplayTime = new Button()
+          {
+            TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+            TextAlignment = TextAlignment.CenterRight,
+            TextSize = 12,
+            Text = "00:00",
+          };
+          textDisplayDateFrameLayout.AddChidren(textDisplayTime);
+
+          if (setTimeType != "DoorLockTime")
+          {
+            btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.Time);
+            if (setTimeType == "ValidTime")
             {
-                ReadDoorlockTime();
+              if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute < 10)
+              {
+                textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour + ":" + "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute;
+              }
+              else
+              {
+                textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour + ":" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute;
+              }
             }
-
-            var zoneFrameLayout = new FrameLayout()
+            else if (setTimeType == "InValidTime")
             {
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
-            };
-            this.midFrameLayout.AddChidren(zoneFrameLayout);
-
-            if (setTimeType == "DoorLockTime")
-            {
-                zoneFrameLayout.Height = Application.GetRealHeight(150) + 1;
-                AddDoorLocksTimeRow(zoneFrameLayout);
+              if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute < 10)
+              {
+                textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour + ":" + "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute;
+              }
+              else
+              {
+                textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour + ":" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute;
+              }
             }
-            else
-            {
-                zoneFrameLayout.Height = Application.GetRealHeight(0);
-            }
-
-            var midTopFrameLayout = new FrameLayout()
-            {
-                Y = zoneFrameLayout.Bottom,
-            };
-            this.midFrameLayout.AddChidren(midTopFrameLayout);
-
-            var dtNow = DoorLockCommonInfo.DoorlockZoneTime;// DateTime.Now;
-            for (int i = 0; i < 2; i++)
-            {
-                #region MidTopFrameLayout UI
-                var rowLayout = new FrameLayout()
-                {
-                    Height = Application.GetRealHeight(127 + 23),
-                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
-                };
-                midTopFrameLayout.AddChidren(rowLayout);
-
-                var btnDateTime = new Button()
-                {
-                    Width = Application.GetRealWidth(560),
-                    Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(58),
-                    TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                    TextAlignment = TextAlignment.CenterLeft,
-                    TextSize = 12,
-                };
-                rowLayout.AddChidren(btnDateTime);
-
-                var textDisplayDateFrameLayout = new FrameLayout()
-                {
-                    Width = Application.GetRealWidth(333),
-                    Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(620),
-                };
-                rowLayout.AddChidren(textDisplayDateFrameLayout);
-
-                var btnNextFrameLayout = new FrameLayout()
-                {
-                    Width = Application.GetRealWidth(116),
-                    Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(956),
-                };
-                rowLayout.AddChidren(btnNextFrameLayout);
-
-                var btnNext = new Button()
-                {
-                    Width = Application.GetRealWidth(58),
-                    Height = Application.GetRealHeight(58),
-                    UnSelectedImagePath = "Item/RightNext.png",
-                    SelectedImagePath = "Item/Down.png",
-                };
-                btnNextFrameLayout.AddChidren(btnNext);
-
-                var btnLine = new FrameLayout()
-                {
-                    Width = Application.GetRealWidth(965),
-                    Height = 1,
-                    X = Application.GetRealWidth(58),
-                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
-                };
-                midTopFrameLayout.AddChidren(btnLine);
-                #endregion
-
-                #region 鏄剧ず澶勭悊
-                if (i == 0)
-                {
-                    btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50);
-                    btnLine.Y = Application.GetRealHeight(23 + 127);
-
-                    textDisplayDate = new Button()
-                    {
-                        TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                        TextAlignment = TextAlignment.CenterRight,
-                        TextSize = 12,
-                        Text = "_" + Language.StringByID(R.MyInternationalizationString.Year) + "_" + Language.StringByID(R.MyInternationalizationString.Month) + "_" + Language.StringByID(R.MyInternationalizationString.Day),
-                    };
-                    textDisplayDateFrameLayout.AddChidren(textDisplayDate);
-
-                    if (setTimeType != "DoorLockTime")
-                    {
-                        btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.Date);
-                        if (setTimeType == "ValidTime")
-                        {
-                            textDisplayDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
-                        }
-                        else if (setTimeType == "InValidTime")
-                        {
-                            textDisplayDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
-                        }
-                    }
-                    else
-                    {
-                        btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.CurrentDate);
-                    }
-                }
-                else if (i == 1)
-                {
-                    rowLayout.Y = 1 + Application.GetRealHeight(150);
-                    btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50);
-                    btnLine.Y = Application.GetRealHeight(40 + 127 + 127);
-                    textDisplayTime = new Button()
-                    {
-                        TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                        TextAlignment = TextAlignment.CenterRight,
-                        TextSize = 12,
-                        Text = "00:00",
-                    };
-                    textDisplayDateFrameLayout.AddChidren(textDisplayTime);
-
-                    if (setTimeType != "DoorLockTime")
-                    {
-                        btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.Time);
-                        if (setTimeType == "ValidTime")
-                        {
-                            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute < 10)
-                            {
-                                textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour + ":" + "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute;
-                            }
-                            else
-                            {
-                                textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour + ":" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute;
-                            }
-                        }
-                        else if (setTimeType == "InValidTime")
-                        {
-                            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute < 10)
-                            {
-                                textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour + ":" + "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute;
-                            }
-                            else
-                            {
-                                textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour + ":" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.CurrentTime);
-                    }
-                    btnLine.Visible = false;
-                }
-                #endregion 
-
-                #region 浜嬩欢澶勭悊
-                int curIndex = i;
-                EventHandler<MouseEventArgs> hander = (sender, e) =>
-                {
-                    ClickHandle(curIndex, dtNow);
-                };
-                rowLayout.MouseDownEventHandler += hander;
-                btnDateTime.MouseDownEventHandler += hander;
-                textDisplayDateFrameLayout.MouseDownEventHandler += hander;
-                btnNextFrameLayout.MouseDownEventHandler += hander;
-                btnNext.MouseDownEventHandler += hander;
-
-                if (curIndex == 0)
-                {
-                    textDisplayDate.MouseDownEventHandler += hander;
-                }
-                else
-                {
-                    textDisplayTime.MouseDownEventHandler += hander;
-                }
-                #endregion 
-            }
-
-            btnCancel.MouseUpEventHandler += (sender1, e1) =>
-            {
-                this.shadowRadiusFrameLayout.RemoveFromParent();
-            };
-            btnFinish.MouseUpEventHandler += (sender1, e1) =>
-            {
-                if (setTimeType == "DoorLockTime")
-                {
-                    DoorLockTimeFinishHandle();
-                }
-            };
-            this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
-            {
-                this.shadowRadiusFrameLayout.RemoveFromParent();
-            };
-            if (setTimeType == "DoorLockTime")
-            {
-                if (CurentDoorLockTime != null && CurentDoorLockTime.Year != 1)
-                {
-                    waitGetDoorLockTime = DateTime.MaxValue;
-                    CommonPage.Loading.Hide();
-                }
-            }
+          }
+          else
+          {
+            btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.CurrentTime);
+          }
+          btnLine.Visible = false;
         }
         #endregion
 
-        #region 鏃跺尯 
-        /// <summary>
-        /// 娣诲姞銆愰棬閿佹椂闂淬�戣锛堥棬閿佷笓鐢級
-        /// </summary>
-        /// <param name="zoneFrameLayout"></param>
-        private void AddDoorLocksTimeRow(FrameLayout zoneFrameLayout)
+        #region 浜嬩欢澶勭悊
+        int curIndex = i;
+        EventHandler<MouseEventArgs> hander = (sender, e) =>
         {
-            //闂ㄩ攣鏃堕棿
-            var rowLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(150),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
-            };
-            zoneFrameLayout.AddChidren(rowLayout);
+          ClickHandle(curIndex, dtNow);
+        };
+        rowLayout.MouseDownEventHandler += hander;
+        btnDateTime.MouseDownEventHandler += hander;
+        textDisplayDateFrameLayout.MouseDownEventHandler += hander;
+        btnNextFrameLayout.MouseDownEventHandler += hander;
+        btnNext.MouseDownEventHandler += hander;
 
-            //褰撳墠鏃跺尯
-            var btnCurZone = new Button()
-            {
-                Width = Application.GetRealWidth(560),
-                Height = Application.GetRealHeight(58),
-                X = Application.GetRealWidth(58),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = 12,
-                Y = Application.GetRealHeight(46),
-                Text = Language.StringByID(R.MyInternationalizationString.CurZone),
-            };
-            rowLayout.AddChidren(btnCurZone);
-
-            //鍝釜鏃跺尯
-            var textZone = new Button()
-            {
-                Width = Application.GetRealWidth(333),
-                Height = Application.GetRealHeight(58),
-                X = Application.GetRealWidth(689),
-                Y = Application.GetRealHeight(46),
-                TextAlignment = TextAlignment.CenterRight,
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray4,
-                TextSize = 14,
-            };
-
-            rowLayout.AddChidren(textZone);
-            textZone.Text = zoneData();
-            textZone.MouseDownEventHandler += (sender, e) =>
-            {
-                //1銆佸叆缃戝悗鍏堣幏鍙栭棬閿佸湪缃戝叧涓殑鏃跺尯鏃堕棿
-                var curDateTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockZoneTime();
-                //2銆佸皢鏃堕棿璁剧疆鍒扮綉鍏充腑
-                var dateTime = new DateTime(curDateTime.Year, curDateTime.Month, curDateTime.Day, curDateTime.Hour, curDateTime.Minute, curDateTime.Second);
-                var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(dateTime);
-                doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
-            };
-
-            var btnLine = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(965),
-                Height = 1,
-                X = Application.GetRealWidth(58),
-                Y = Application.GetRealHeight(150),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
-            };
-            zoneFrameLayout.AddChidren(btnLine);
+        if (curIndex == 0)
+        {
+          textDisplayDate.MouseDownEventHandler += hander;
         }
-
-        /// <summary>
-        /// 鏃跺尯鏁版嵁
-        /// </summary>
-        /// <returns></returns>
-        private string zoneData()
+        else
         {
-            string zoneText = "";
-            int num = 0;
-            var gwZone = DoorLockCommonInfo.CaculateTimeZone(Common.Config.Instance.Home.Longitude);
-            if (int.Parse(gwZone) != 0)
-            {
-                num = int.Parse(gwZone.Substring(1));
-            }
-            if (gwZone.Contains('+'))
-            {
-                if (num == 0)
-                {
-                    zoneText = Language.StringByID(R.MyInternationalizationString.CurZoneText0);
-                }
-                else
-                {
-                    zoneText = EastZoneList(num - 1);
-                }
-            }
-            else if (gwZone.Contains('-'))
-            {
-                zoneText = WestZoneList(num - 1);
-            }
-            else
-            {
-                zoneText = Language.StringByID(R.MyInternationalizationString.CurZoneText0);
-            }
-            return zoneText;
+          textDisplayTime.MouseDownEventHandler += hander;
         }
+        #endregion
+      }
 
-        /// <summary>
-        /// 杞崲涓滃尯
-        /// </summary>
-        /// <param name="x"></param>
-        /// <returns></returns>
-        private string EastZoneList(int x)
+      btnCancel.MouseUpEventHandler += (sender1, e1) =>
+      {
+        this.shadowRadiusFrameLayout.RemoveFromParent();
+      };
+      btnFinish.MouseUpEventHandler += (sender1, e1) =>
+      {
+        if (setTimeType == "DoorLockTime")
         {
-            var numString = new string[]
-            {
+          DoorLockTimeFinishHandle();
+        }
+      };
+      this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
+      {
+        this.shadowRadiusFrameLayout.RemoveFromParent();
+      };
+      if (setTimeType == "DoorLockTime")
+      {
+        if (CurentDoorLockTime != null && CurentDoorLockTime.Year != 1)
+        {
+          waitGetDoorLockTime = DateTime.MaxValue;
+          CommonPage.Loading.Hide();
+        }
+      }
+    }
+    #endregion
+
+    #region 鏃跺尯 
+    /// <summary>
+    /// 娣诲姞銆愰棬閿佹椂闂淬�戣锛堥棬閿佷笓鐢級
+    /// </summary>
+    /// <param name="zoneFrameLayout"></param>
+    private void AddDoorLocksTimeRow(FrameLayout zoneFrameLayout)
+    {
+      //闂ㄩ攣鏃堕棿
+      var rowLayout = new FrameLayout()
+      {
+        Height = Application.GetRealHeight(150),
+        BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+      };
+      zoneFrameLayout.AddChidren(rowLayout);
+
+      //褰撳墠鏃跺尯
+      var btnCurZone = new Button()
+      {
+        Width = Application.GetRealWidth(560),
+        Height = Application.GetRealHeight(58),
+        X = Application.GetRealWidth(58),
+        TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+        TextAlignment = TextAlignment.CenterLeft,
+        TextSize = 12,
+        Y = Application.GetRealHeight(46),
+        Text = Language.StringByID(R.MyInternationalizationString.CurZone),
+      };
+      rowLayout.AddChidren(btnCurZone);
+
+      //鍝釜鏃跺尯
+      var textZone = new Button()
+      {
+        Width = Application.GetRealWidth(333),
+        Height = Application.GetRealHeight(58),
+        X = Application.GetRealWidth(689),
+        Y = Application.GetRealHeight(46),
+        TextAlignment = TextAlignment.CenterRight,
+        TextColor = Shared.Common.ZigbeeColor.Current.XMGray4,
+        TextSize = 14,
+      };
+
+      rowLayout.AddChidren(textZone);
+      textZone.Text = zoneData();
+      textZone.MouseDownEventHandler += (sender, e) =>
+      {
+              //1銆佸叆缃戝悗鍏堣幏鍙栭棬閿佸湪缃戝叧涓殑鏃跺尯鏃堕棿
+              var curDateTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockZoneTime();
+              //2銆佸皢鏃堕棿璁剧疆鍒伴棬閿佷腑
+              var dateTime = new DateTime(curDateTime.Year, curDateTime.Month, curDateTime.Day, curDateTime.Hour, curDateTime.Minute, curDateTime.Second);
+        var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(dateTime);
+        doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
+      };
+
+      var btnLine = new FrameLayout()
+      {
+        Width = Application.GetRealWidth(965),
+        Height = 1,
+        X = Application.GetRealWidth(58),
+        Y = Application.GetRealHeight(150),
+        BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+      };
+      zoneFrameLayout.AddChidren(btnLine);
+    }
+
+    /// <summary>
+    /// 鏃跺尯鏁版嵁
+    /// </summary>
+    /// <returns></returns>
+    private string zoneData()
+    {
+      string zoneText = "";
+      int num = 0;
+      var gwZone = DoorLockCommonInfo.CaculateTimeZone(Common.Config.Instance.Home.Longitude);
+      if (int.Parse(gwZone) != 0)
+      {
+        num = int.Parse(gwZone.Substring(1));
+      }
+      if (gwZone.Contains('+'))
+      {
+        if (num == 0)
+        {
+          zoneText = Language.StringByID(R.MyInternationalizationString.CurZoneText0);
+        }
+        else
+        {
+          zoneText = EastZoneList(num - 1);
+        }
+      }
+      else if (gwZone.Contains('-'))
+      {
+        zoneText = WestZoneList(num - 1);
+      }
+      else
+      {
+        zoneText = Language.StringByID(R.MyInternationalizationString.CurZoneText0);
+      }
+      return zoneText;
+    }
+
+    /// <summary>
+    /// 杞崲涓滃尯
+    /// </summary>
+    /// <param name="x"></param>
+    /// <returns></returns>
+    private string EastZoneList(int x)
+    {
+      var numString = new string[]
+      {
                 Language.StringByID(R.MyInternationalizationString.CurZoneText1),
                 Language.StringByID(R.MyInternationalizationString.CurZoneText2),
                 Language.StringByID(R.MyInternationalizationString.CurZoneText3),
@@ -488,20 +488,20 @@
                 Language.StringByID(R.MyInternationalizationString.CurZoneText10),
                 Language.StringByID(R.MyInternationalizationString.CurZoneText11),
                 Language.StringByID(R.MyInternationalizationString.CurZoneText12)
-            };
-            var strChnNamesList = new List<string>(numString);
-            return strChnNamesList[x];
-        }
+      };
+      var strChnNamesList = new List<string>(numString);
+      return strChnNamesList[x];
+    }
 
-        /// <summary>
-        /// 杞崲瑗垮尯
-        /// </summary>
-        /// <param name="x"></param>
-        /// <returns></returns>
-        private string WestZoneList(int x)
-        {
-            var numString = new string[]
-            {
+    /// <summary>
+    /// 杞崲瑗垮尯
+    /// </summary>
+    /// <param name="x"></param>
+    /// <returns></returns>
+    private string WestZoneList(int x)
+    {
+      var numString = new string[]
+      {
                 Language.StringByID(R.MyInternationalizationString.WestZoneText1),
                 Language.StringByID(R.MyInternationalizationString.WestZoneText2),
                 Language.StringByID(R.MyInternationalizationString.WestZoneText3),
@@ -514,552 +514,552 @@
                 Language.StringByID(R.MyInternationalizationString.WestZoneText10),
                 Language.StringByID(R.MyInternationalizationString.WestZoneText11),
                 Language.StringByID(R.MyInternationalizationString.WestZoneText12)
-            };
-            var strChnNamesList = new List<string>(numString);
-            return strChnNamesList[x];
+      };
+      var strChnNamesList = new List<string>(numString);
+      return strChnNamesList[x];
+    }
+
+    /// <summary>
+    /// 鑾峰彇鏃跺尯
+    /// <para>currentLon:"+"涓轰笢鍖猴紝鈥�-鈥濅负瑗垮尯</para>
+    /// </summary>
+    /// <param name="currentLon"></param>
+    /// <returns></returns>
+    public static String CaculateTimeZone(double currentLon)
+    {
+      int timeZone;
+      int shangValue = (int)(currentLon / 15);
+      double yushuValue = Math.Abs(currentLon % 15);
+      if (yushuValue <= 7.5)
+      {
+        timeZone = shangValue;
+      }
+      else
+      {
+        timeZone = shangValue + (currentLon > 0 ? 1 : -1);
+      }
+      return timeZone >= 0 ? "+" + Math.Abs(timeZone) : "-" + Math.Abs(timeZone);
+    }
+
+    /// <summary>
+    /// 鑾峰彇鎵�鍦ㄦ椂鍖虹殑鏃堕棿 
+    /// </summary>
+    /// <param name="unix"></param>
+    /// <returns></returns>
+    public static int GetLocalTime(int unix)
+    {
+      var gwZone = CaculateTimeZone(Common.Config.Instance.Home.Longitude);
+      var data = unix + 8 * 3600;
+
+      return data;
+    }
+
+    #endregion
+
+    #region 闂ㄩ攣鏃堕棿
+    /// <summary>
+    /// 璇诲彇闂ㄩ攣鏃堕棿
+    /// </summary>
+    private void ReadDoorlockTime()
+    {
+      CommonPage.Loading.Start("");
+      // 鍙湁閲嶆柊鍚姩鏃朵細鎱紝鐒跺悗鍏朵粬鏃跺埢閮芥槸鏈夊�肩殑
+      new System.Threading.Thread(() =>
+      {
+        while (this.Parent != null)
+        {
+          if (DateTime.Now > waitGetDoorLockTime)
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
+                    CommonPage.Loading.Hide();
+                  });
+          }
+                //璇婚棬閿佹椂闂�
+                //绛夊緟10绉掞紝娌℃湁鏀跺埌鎻愮ず瓒呮椂閫�鍑�
+                waitGetDoorLockTime = DateTime.Now.AddSeconds(+5);
+          doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
+          System.Threading.Thread.Sleep(5 * 1000);
+        }
+      })
+      { IsBackground = true }.Start();
+    }
+
+    /// <summary>
+    /// 闂ㄩ攣鏃堕棿纭鎸夐挳澶勭悊 
+    /// </summary>
+    private void DoorLockTimeFinishHandle()
+    {
+      System.Threading.Tasks.Task.Run(async () =>
+      {
+        try
+        {
+          var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec);
+          var setTimestamp = DoorLockCommonInfo.GetUnixTimeStamp(curDateTime);
+          Application.RunOnMainThread(() =>
+                {
+                CommonPage.Loading.Start("");
+              });
+          var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
+          if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    if (rectifyResult.setWritableValueResponData.Status == 0)
+                    {
+                      doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
+                      System.Threading.Thread.Sleep(1000);
+                      this.shadowRadiusFrameLayout.RemoveFromParent();
+                    }
+                    else
+                    {
+                      new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                    }
+                  });
+          }
+          else
+          {
+            Application.RunOnMainThread(() =>
+                  {
+                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                  });
+          }
+        }
+        catch { }
+        finally
+        {
+          Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); });
+        }
+      });
+
+    }
+    #endregion
+
+    #region 鍏叡浜嬩欢澶勭悊 
+    /// <summary>
+    /// 浜嬩欢澶勭悊 
+    /// </summary>
+    private void ClickHandle(int curIndex, DateTime dtNow)
+    {
+      this.midFrameLayout.AddChidren(this.shadowRadiusFrameLayout);
+      this.bottomRadiusFrameLayout.RemoveAll();
+      this.BottomRadiusFrameLayout(this);
+      var mUIPickerView = new UIPickerView()
+      {
+        X = Application.GetRealWidth(0),
+        Height = Application.GetRealHeight(440),
+      };
+      this.bottomRadiusFrameLayout.AddChidren(mUIPickerView);
+
+      if (curIndex == 0)
+      {
+        //鏃ユ湡
+        if (setTimeType != "DoorLockTime")
+        {
+          this.btnBottomTitle.TextID = R.MyInternationalizationString.Date;
+        }
+        else
+        {
+          this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentDate;
         }
 
-        /// <summary>
-        /// 鑾峰彇鏃跺尯
-        /// <para>currentLon:"+"涓轰笢鍖猴紝鈥�-鈥濅负瑗垮尯</para>
-        /// </summary>
-        /// <param name="currentLon"></param>
-        /// <returns></returns>
-        public static String CaculateTimeZone(double currentLon)
+        mUIPickerView.Y = Application.GetRealWidth(245);
+        var mList1 = new List<string>();
+        var mList2 = new List<string>();
+        var mList3 = new List<string>();
+        var oldMonth = dtNow.Month;
+
+        int year = dtNow.Year + 1;
+        int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
+
+        for (int y = dtNow.Year - 9; y < dtNow.Year + 1; y++)
         {
-            int timeZone;
-            int shangValue = (int)(currentLon / 15);
-            double yushuValue = Math.Abs(currentLon % 15);
-            if (yushuValue <= 7.5)
+          mList1.Add(y.ToString());
+        }
+        for (int m = 1; m < 13; m++)
+        {
+          if (Language.CurrentLanguage == "Chinese")
+          {
+            mList2.Add(m.ToString() + "鏈�");
+          }
+          else
+          {
+            mList2.Add(m.ToString());
+          }
+        }
+        for (int d = 1; d < days + 1; d++)
+        {
+          if (Language.CurrentLanguage == "Chinese")
+          {
+            mList3.Add(d.ToString() + "鏃�");
+          }
+          else
+          {
+            mList3.Add(d.ToString());
+          }
+        }
+
+        if (setTimeType != "DoorLockTime")
+        {
+          mUIPickerView.setNPicker(mList2, mList3, null);
+          mUIPickerView.setCurrentItems(dtNow.Month - 1, dtNow.Day - 1, 0);
+          curMonth = dtNow.Month;
+          curDay = dtNow.Day;
+
+          if (setTimeType == "ValidTime")
+          {
+            DoorLockCommonInfo.ValidDateYear = dtNow.Year;
+            DoorLockCommonInfo.ValidDateMonth = curMonth;
+            DoorLockCommonInfo.ValidDateDay = curDay;
+          }
+          else
+          {
+            DoorLockCommonInfo.InValidDateYear = dtNow.Year;
+            DoorLockCommonInfo.InValidDateMonth = curMonth;
+            DoorLockCommonInfo.InValidDateDay = curDay;
+          }
+          var btnOk = new Button
+          {
+            X = Application.GetRealWidth(919),
+            Y = Application.GetRealHeight(40),
+            Height = Application.GetRealHeight(58),
+            Width = Application.GetRealWidth(101),
+            Text = Language.StringByID(R.MyInternationalizationString.Complete),
+            TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
+            TextSize = 14,
+          };
+          this.bottomRadiusFrameLayout.AddChidren(btnOk);
+          btnOk.MouseUpEventHandler += (sender1, e1) =>
+          {
+            if (setTimeType == "ValidTime")
             {
-                timeZone = shangValue;
+              string nowValue1 = DateTime.Now.ToString("yyyyMMdd");
+              string nowValue2 = dtNow.Year.ToString() + curMonth.ToString().PadLeft(2, '0') + curDay.ToString().PadLeft(2, '0');
+              if (nowValue1.CompareTo(nowValue2) == 1)
+              {
+                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoLessThanCurrentTime);
+                this.ShowMassage(ShowMsgType.Error, mess);
+                return;
+              }
+                        //妫�鏌ユ椂闂�
+                        var flage = this.CheckValidTime(dtNow.Year, curMonth, curDay,
+                            DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
+                            DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
+                            DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
+              if (flage == false)
+              {
+                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoMoreThanInValidTime);
+                this.ShowMassage(ShowMsgType.Error, mess);
+                return;
+              }
+              DoorLockCommonInfo.ValidDateYear = dtNow.Year;
+              DoorLockCommonInfo.ValidDateMonth = curMonth;
+              DoorLockCommonInfo.ValidDateDay = curDay;
             }
             else
             {
-                timeZone = shangValue + (currentLon > 0 ? 1 : -1);
+                        //妫�鏌ユ椂闂�
+                        var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
+                            DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
+                            dtNow.Year, curMonth, curDay,
+                            DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
+              if (flage == false)
+              {
+                var mess = Language.StringByID(R.MyInternationalizationString.InvalidTimeNoLessThanValidTime);
+                this.ShowMassage(ShowMsgType.Error, mess);
+                return;
+              }
+
+              DoorLockCommonInfo.InValidDateYear = dtNow.Year;
+              DoorLockCommonInfo.InValidDateMonth = curMonth;
+              DoorLockCommonInfo.InValidDateDay = curDay;
             }
-            return timeZone >= 0 ? "+" + Math.Abs(timeZone) : "-" + Math.Abs(timeZone);
-        }
-
-        /// <summary>
-        /// 鑾峰彇鎵�鍦ㄦ椂鍖虹殑鏃堕棿 
-        /// </summary>
-        /// <param name="unix"></param>
-        /// <returns></returns>
-        public static int GetLocalTime(int unix)
-        {
-            var gwZone = CaculateTimeZone(Common.Config.Instance.Home.Longitude);
-            var data = unix + 8 * 3600;
-
-            return data;
-        }
-
-        #endregion
-
-        #region 闂ㄩ攣鏃堕棿
-        /// <summary>
-        /// 璇诲彇闂ㄩ攣鏃堕棿
-        /// </summary>
-        private void ReadDoorlockTime()
-        {
-            CommonPage.Loading.Start("");
-            // 鍙湁閲嶆柊鍚姩鏃朵細鎱紝鐒跺悗鍏朵粬鏃跺埢閮芥槸鏈夊�肩殑
-            new System.Threading.Thread(() =>
+            if (timeSetAction != null)
             {
-                while (this.Parent != null)
-                {
-                    if (DateTime.Now > waitGetDoorLockTime)
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
-                            CommonPage.Loading.Hide();
-                        });
-                    }
-                    //璇婚棬閿佹椂闂�
-                    //绛夊緟10绉掞紝娌℃湁鏀跺埌鎻愮ず瓒呮椂閫�鍑�
-                    waitGetDoorLockTime = DateTime.Now.AddSeconds(+5);
-                    doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
-                    System.Threading.Thread.Sleep(5 * 1000);
-                }
-            })
-            { IsBackground = true }.Start();
-        }
-
-        /// <summary>
-        /// 闂ㄩ攣鏃堕棿纭鎸夐挳澶勭悊 
-        /// </summary>
-        private void DoorLockTimeFinishHandle()
-        {
-            System.Threading.Tasks.Task.Run(async () =>
-            {
-                try
-                {
-                    var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec);
-                    var setTimestamp = DoorLockCommonInfo.GetUnixTimeStamp(curDateTime);
-                    Application.RunOnMainThread(() =>
-                    {
-                        CommonPage.Loading.Start("");
-                    });
-                    var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
-                    if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            if (rectifyResult.setWritableValueResponData.Status == 0)
-                            {
-                                doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
-                                System.Threading.Thread.Sleep(1000);
-                                this.shadowRadiusFrameLayout.RemoveFromParent();
-                            }
-                            else
-                            {
-                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
-                            }
-                        });
-                    }
-                    else
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
-                        });
-                    }
-                }
-                catch { }
-                finally
-                {
-                    Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); });
-                }
-            });
-
-        }
-        #endregion
-
-        #region 鍏叡浜嬩欢澶勭悊 
-        /// <summary>
-        /// 浜嬩欢澶勭悊 
-        /// </summary>
-        private void ClickHandle(int curIndex, DateTime dtNow)
-        {
-            this.midFrameLayout.AddChidren(this.shadowRadiusFrameLayout);
-            this.bottomRadiusFrameLayout.RemoveAll();
-            this.BottomRadiusFrameLayout(this);
-            var mUIPickerView = new UIPickerView()
-            {
-                X = Application.GetRealWidth(0),
-                Height = Application.GetRealHeight(440),
-            };
-            this.bottomRadiusFrameLayout.AddChidren(mUIPickerView);
-
-            if (curIndex == 0)
-            {
-                //鏃ユ湡
-                if (setTimeType != "DoorLockTime")
-                {
-                    this.btnBottomTitle.TextID = R.MyInternationalizationString.Date;
-                }
-                else
-                {
-                    this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentDate;
-                }
-
-                mUIPickerView.Y = Application.GetRealWidth(245);
-                var mList1 = new List<string>();
-                var mList2 = new List<string>();
-                var mList3 = new List<string>();
-                var oldMonth = dtNow.Month;
-
-                int year = dtNow.Year + 1;
-                int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
-
-                for (int y = dtNow.Year - 9; y < dtNow.Year + 1; y++)
-                {
-                    mList1.Add(y.ToString());
-                }
-                for (int m = 1; m < 13; m++)
-                {
-                    if (Language.CurrentLanguage == "Chinese")
-                    {
-                        mList2.Add(m.ToString() + "鏈�");
-                    }
-                    else
-                    {
-                        mList2.Add(m.ToString());
-                    }
-                }
-                for (int d = 1; d < days + 1; d++)
-                {
-                    if (Language.CurrentLanguage == "Chinese")
-                    {
-                        mList3.Add(d.ToString() + "鏃�");
-                    }
-                    else
-                    {
-                        mList3.Add(d.ToString());
-                    }
-                }
-
-                if (setTimeType != "DoorLockTime")
-                {
-                    mUIPickerView.setNPicker(mList2, mList3, null);
-                    mUIPickerView.setCurrentItems(dtNow.Month - 1, dtNow.Day - 1, 0);
-                    curMonth = dtNow.Month;
-                    curDay = dtNow.Day;
-
-                    if (setTimeType == "ValidTime")
-                    {
-                        DoorLockCommonInfo.ValidDateYear = dtNow.Year;
-                        DoorLockCommonInfo.ValidDateMonth = curMonth;
-                        DoorLockCommonInfo.ValidDateDay = curDay;
-                    }
-                    else
-                    {
-                        DoorLockCommonInfo.InValidDateYear = dtNow.Year;
-                        DoorLockCommonInfo.InValidDateMonth = curMonth;
-                        DoorLockCommonInfo.InValidDateDay = curDay;
-                    }
-                    var btnOk = new Button
-                    {
-                        X = Application.GetRealWidth(919),
-                        Y = Application.GetRealHeight(40),
-                        Height = Application.GetRealHeight(58),
-                        Width = Application.GetRealWidth(101),
-                        Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                        TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-                        TextSize = 14,
-                    };
-                    this.bottomRadiusFrameLayout.AddChidren(btnOk);
-                    btnOk.MouseUpEventHandler += (sender1, e1) =>
-                    {
-                        if (setTimeType == "ValidTime")
-                        {
-                            string nowValue1 = DateTime.Now.ToString("yyyyMMdd");
-                            string nowValue2 = dtNow.Year.ToString() + curMonth.ToString().PadLeft(2, '0') + curDay.ToString().PadLeft(2, '0');
-                            if (nowValue1.CompareTo(nowValue2) == 1)
-                            {
-                                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoLessThanCurrentTime);
-                                this.ShowMassage(ShowMsgType.Error, mess);
-                                return;
-                            }
-                            //妫�鏌ユ椂闂�
-                            var flage = this.CheckValidTime(dtNow.Year, curMonth, curDay,
-                                DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
-                                DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
-                                DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
-                            if (flage == false)
-                            {
-                                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoMoreThanInValidTime);
-                                this.ShowMassage(ShowMsgType.Error, mess);
-                                return;
-                            }
-                            DoorLockCommonInfo.ValidDateYear = dtNow.Year;
-                            DoorLockCommonInfo.ValidDateMonth = curMonth;
-                            DoorLockCommonInfo.ValidDateDay = curDay;
-                        }
-                        else
-                        {
-                            //妫�鏌ユ椂闂�
-                            var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
-                                DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
-                                dtNow.Year, curMonth, curDay,
-                                DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
-                            if (flage == false)
-                            {
-                                var mess = Language.StringByID(R.MyInternationalizationString.InvalidTimeNoLessThanValidTime);
-                                this.ShowMassage(ShowMsgType.Error, mess);
-                                return;
-                            }
-
-                            DoorLockCommonInfo.InValidDateYear = dtNow.Year;
-                            DoorLockCommonInfo.InValidDateMonth = curMonth;
-                            DoorLockCommonInfo.InValidDateDay = curDay;
-                        }
-                        if (timeSetAction != null)
-                        {
-                            timeSetAction();
-                        }
-                        this.shadowRadiusFrameLayout.RemoveFromParent();
-                        MidFrameLayoutContent();
-                    };
-                }
-                else
-                {
-                    mUIPickerView.setNPicker(mList1, mList2, mList3);
-                    mUIPickerView.setCurrentItems(9, dtNow.Month - 1, dtNow.Day - 1);
-                    curYear = dtNow.Year;
-                    curMonth = dtNow.Month;
-                    curDay = dtNow.Day;
-                    if (CurentDoorLockTime != null)
-                    {
-                        curHour = CurentDoorLockTime.Hour;
-                        curMin = CurentDoorLockTime.Minute;
-                        curSec = CurentDoorLockTime.Second;
-                    }
-                    else
-                    {
-                        curHour = dtNow.Hour;
-                        curMin = dtNow.Minute;
-                        curSec = dtNow.Second;
-                    }
-                }
-
-                Action dAction = () =>
-                {
-                    if (curMonth != oldMonth)
-                    {
-                        oldMonth = curMonth;
-                        days = DateTime.DaysInMonth(curYear, curMonth);
-                        mList3.Clear();
-
-                        for (int d = 1; d < days + 1; d++)
-                        {
-                            if (Language.CurrentLanguage == "Chinese")
-                            {
-                                mList3.Add(d.ToString() + "鏃�");
-                            }
-                            else
-                            {
-                                mList3.Add(d.ToString());
-                            }
-                        }
-
-                        if (setTimeType != "DoorLockTime")
-                        {
-                            mUIPickerView.setNPicker(mList2, mList3, null);
-                            mUIPickerView.setCurrentItems(curMonth - 1, curDay - 1, 0);
-                        }
-                        else
-                        {
-                            mUIPickerView.setNPicker(mList1, mList2, mList3);
-                            mUIPickerView.setCurrentItems(9, curMonth - 1, curDay - 1);
-                        }
-                    }
-                };
-                mUIPickerView.OnSelectChangeEvent += (y, m, d) =>
-                {
-                    if (setTimeType != "DoorLockTime")
-                    {
-                        curYear = dtNow.Year;
-                        curMonth = y + 1;
-                        curDay = m + 1;
-                    }
-                    else
-                    {
-                        switch (y)
-                        {
-                            case 0:
-                                curYear = dtNow.Year - 9;
-                                break;
-                            case 1:
-                                curYear = dtNow.Year - 8;
-                                break;
-                            case 2:
-                                curYear = dtNow.Year - 7;
-                                break;
-                            case 3:
-                                curYear = dtNow.Year - 6;
-                                break;
-                            case 4:
-                                curYear = dtNow.Year - 5;
-                                break;
-                            case 5:
-                                curYear = dtNow.Year - 4;
-                                break;
-                            case 6:
-                                curYear = dtNow.Year - 3;
-                                break;
-                            case 7:
-                                curYear = dtNow.Year - 2;
-                                break;
-                            case 8:
-                                curYear = dtNow.Year - 1;
-                                break;
-                            default:
-                                curYear = dtNow.Year;
-                                break;
-                        }
-                        curMonth = m + 1;
-                        curDay = d + 1;
-                    }
-                    dAction();
-                };
+              timeSetAction();
             }
-            if (curIndex == 1)
-            {
-                //鏃堕棿
-                if (setTimeType != "DoorLockTime")
-                {
-                    this.btnBottomTitle.TextID = R.MyInternationalizationString.Time;
-                }
-                else
-                {
-                    this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime;
-                }
-
-                mUIPickerView.Y = Application.GetRealWidth(245);
-                var mList1 = new List<string>();
-                var mList2 = new List<string>();
-                for (int h = 0; h < 24; h++)
-                {
-                    if (h < 10)
-                    {
-                        mList1.Add("0" + h.ToString());
-                    }
-                    else
-                    {
-                        mList1.Add(h.ToString());
-                    }
-                }
-                for (int m = 0; m < 60; m++)
-                {
-                    if (m < 10)
-                    {
-                        mList2.Add("0" + m.ToString());
-                    }
-                    else
-                    {
-                        mList2.Add(m.ToString());
-                    }
-                }
-                mUIPickerView.setNPicker(mList1, mList2, null);
-                mUIPickerView.setCurrentItems(dtNow.Hour, dtNow.Minute, 0);
-                if (CurentDoorLockTime != null)
-                {
-                    curYear = CurentDoorLockTime.Year;
-                    curMonth = CurentDoorLockTime.Month;
-                    curDay = CurentDoorLockTime.Day;
-                }
-                else
-                {
-                    curYear = dtNow.Year;
-                    curMonth = dtNow.Month;
-                    curDay = dtNow.Day;
-                }
-                curHour = dtNow.Hour;
-                curMin = dtNow.Minute;
-                curSec = dtNow.Second;
-                mUIPickerView.OnSelectChangeEvent += (h, m, s) =>
-                {
-                    curHour = h;
-                    curMin = m;
-                    curSec = dtNow.Second;
-                };
-
-                if (setTimeType == "ValidTime")
-                {
-                    DoorLockCommonInfo.ValidDateHour = curHour;
-                    DoorLockCommonInfo.ValidDateMinute = curMin;
-                    DoorLockCommonInfo.ValidDateSecond = curSec;
-                }
-                else
-                {
-                    DoorLockCommonInfo.InValidDateHour = curHour;
-                    DoorLockCommonInfo.InValidDateMinute = curMin;
-                    DoorLockCommonInfo.InValidDateSecond = curSec;
-                }
-
-                if (setTimeType != "DoorLockTime")
-                {
-                    var btnOk = new Button
-                    {
-                        X = Application.GetRealWidth(919),
-                        Y = Application.GetRealHeight(40),
-                        Height = Application.GetRealHeight(58),
-                        Width = Application.GetRealWidth(101),
-                        Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                        TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-                        TextSize = 14,
-                    };
-                    this.bottomRadiusFrameLayout.AddChidren(btnOk);
-                    btnOk.MouseUpEventHandler += (sender1, e1) =>
-                    {
-                        if (setTimeType == "ValidTime")
-                        {
-                            var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
-                                curHour, curMin, curSec,
-                                DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
-                                DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
-                            if (flage == false)
-                            {
-                                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoMoreThanInValidTime);
-                                this.ShowMassage(ShowMsgType.Error, mess);
-                                return;
-                            }
-
-                            DoorLockCommonInfo.ValidDateHour = curHour;
-                            DoorLockCommonInfo.ValidDateMinute = curMin;
-                            DoorLockCommonInfo.ValidDateSecond = curSec;
-                        }
-                        else
-                        {
-                            //妫�鏌ユ椂闂�
-                            var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
-                                DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
-                                DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
-                                curHour, curMin, curSec);
-                            if (flage == false)
-                            {
-                                var mess = Language.StringByID(R.MyInternationalizationString.InvalidTimeNoLessThanValidTime);
-                                this.ShowMassage(ShowMsgType.Error, mess);
-                                return;
-                            }
-
-                            DoorLockCommonInfo.InValidDateHour = curHour;
-                            DoorLockCommonInfo.InValidDateMinute = curMin;
-                            DoorLockCommonInfo.InValidDateSecond = curSec;
-                        }
-                        if (timeSetAction != null)
-                        {
-                            timeSetAction();
-                        }
-                        this.shadowRadiusFrameLayout.RemoveFromParent();
-                        MidFrameLayoutContent();
-                    };
-                }
-            }
+            this.shadowRadiusFrameLayout.RemoveFromParent();
+            MidFrameLayoutContent();
+          };
         }
-
-        /// <summary>
-        /// 妫�鏌ユ椂闂�
-        /// </summary>
-        /// <returns></returns>
-        private bool CheckValidTime(int validYear, int validMoth, int validDay, int validHour, int validMinute, int validSecond
-            , int inValidYear, int inValidMoth, int inValidDay, int inValidHour, int inValidMinute, int inValidSecond)
-        {
-            //鐢熸晥鏃堕棿
-            string nowValue1 = validYear.ToString()
-            + validMoth.ToString().PadLeft(2, '0')
-            + validDay.ToString().PadLeft(2, '0')
-            + validHour.ToString().PadLeft(2, '0')
-            + validMinute.ToString().PadLeft(2, '0')
-            + validSecond.ToString().PadLeft(2, '0');
-            //澶辨晥鏃堕棿
-            string nowValue2 = inValidYear.ToString()
-            + inValidMoth.ToString().PadLeft(2, '0')
-            + inValidDay.ToString().PadLeft(2, '0')
-            + inValidHour.ToString().PadLeft(2, '0')
-            + inValidMinute.ToString().PadLeft(2, '0')
-            + inValidSecond.ToString().PadLeft(2, '0');
-            var aaaa = nowValue1.CompareTo(nowValue2);
-            if (nowValue1.CompareTo(nowValue2) == 1)
-            {
-                return false;
-            }
-            return true;
-        }
-
-        #endregion
-
-        #region 绉婚櫎鏂规硶
-        /// <summary>
-        /// 閲嶅啓绉婚櫎鏂规硶
-        /// </summary>
-        public override void RemoveFromParent()
+        else
         {
-            ZbGateway.StatusList.Remove(this);
-            base.RemoveFromParent();
+          mUIPickerView.setNPicker(mList1, mList2, mList3);
+          mUIPickerView.setCurrentItems(9, dtNow.Month - 1, dtNow.Day - 1);
+          curYear = dtNow.Year;
+          curMonth = dtNow.Month;
+          curDay = dtNow.Day;
+          if (CurentDoorLockTime != null)
+          {
+            curHour = CurentDoorLockTime.Hour;
+            curMin = CurentDoorLockTime.Minute;
+            curSec = CurentDoorLockTime.Second;
+          }
+          else
+          {
+            curHour = dtNow.Hour;
+            curMin = dtNow.Minute;
+            curSec = dtNow.Second;
+          }
         }
-        #endregion
+
+        Action dAction = () =>
+        {
+          if (curMonth != oldMonth)
+          {
+            oldMonth = curMonth;
+            days = DateTime.DaysInMonth(curYear, curMonth);
+            mList3.Clear();
+
+            for (int d = 1; d < days + 1; d++)
+            {
+              if (Language.CurrentLanguage == "Chinese")
+              {
+                mList3.Add(d.ToString() + "鏃�");
+              }
+              else
+              {
+                mList3.Add(d.ToString());
+              }
+            }
+
+            if (setTimeType != "DoorLockTime")
+            {
+              mUIPickerView.setNPicker(mList2, mList3, null);
+              mUIPickerView.setCurrentItems(curMonth - 1, curDay - 1, 0);
+            }
+            else
+            {
+              mUIPickerView.setNPicker(mList1, mList2, mList3);
+              mUIPickerView.setCurrentItems(9, curMonth - 1, curDay - 1);
+            }
+          }
+        };
+        mUIPickerView.OnSelectChangeEvent += (y, m, d) =>
+        {
+          if (setTimeType != "DoorLockTime")
+          {
+            curYear = dtNow.Year;
+            curMonth = y + 1;
+            curDay = m + 1;
+          }
+          else
+          {
+            switch (y)
+            {
+              case 0:
+                curYear = dtNow.Year - 9;
+                break;
+              case 1:
+                curYear = dtNow.Year - 8;
+                break;
+              case 2:
+                curYear = dtNow.Year - 7;
+                break;
+              case 3:
+                curYear = dtNow.Year - 6;
+                break;
+              case 4:
+                curYear = dtNow.Year - 5;
+                break;
+              case 5:
+                curYear = dtNow.Year - 4;
+                break;
+              case 6:
+                curYear = dtNow.Year - 3;
+                break;
+              case 7:
+                curYear = dtNow.Year - 2;
+                break;
+              case 8:
+                curYear = dtNow.Year - 1;
+                break;
+              default:
+                curYear = dtNow.Year;
+                break;
+            }
+            curMonth = m + 1;
+            curDay = d + 1;
+          }
+          dAction();
+        };
+      }
+      if (curIndex == 1)
+      {
+        //鏃堕棿
+        if (setTimeType != "DoorLockTime")
+        {
+          this.btnBottomTitle.TextID = R.MyInternationalizationString.Time;
+        }
+        else
+        {
+          this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime;
+        }
+
+        mUIPickerView.Y = Application.GetRealWidth(245);
+        var mList1 = new List<string>();
+        var mList2 = new List<string>();
+        for (int h = 0; h < 24; h++)
+        {
+          if (h < 10)
+          {
+            mList1.Add("0" + h.ToString());
+          }
+          else
+          {
+            mList1.Add(h.ToString());
+          }
+        }
+        for (int m = 0; m < 60; m++)
+        {
+          if (m < 10)
+          {
+            mList2.Add("0" + m.ToString());
+          }
+          else
+          {
+            mList2.Add(m.ToString());
+          }
+        }
+        mUIPickerView.setNPicker(mList1, mList2, null);
+        mUIPickerView.setCurrentItems(dtNow.Hour, dtNow.Minute, 0);
+        if (CurentDoorLockTime != null)
+        {
+          curYear = CurentDoorLockTime.Year;
+          curMonth = CurentDoorLockTime.Month;
+          curDay = CurentDoorLockTime.Day;
+        }
+        else
+        {
+          curYear = dtNow.Year;
+          curMonth = dtNow.Month;
+          curDay = dtNow.Day;
+        }
+        curHour = dtNow.Hour;
+        curMin = dtNow.Minute;
+        curSec = dtNow.Second;
+        mUIPickerView.OnSelectChangeEvent += (h, m, s) =>
+        {
+          curHour = h;
+          curMin = m;
+          curSec = dtNow.Second;
+        };
+
+        if (setTimeType == "ValidTime")
+        {
+          DoorLockCommonInfo.ValidDateHour = curHour;
+          DoorLockCommonInfo.ValidDateMinute = curMin;
+          DoorLockCommonInfo.ValidDateSecond = curSec;
+        }
+        else
+        {
+          DoorLockCommonInfo.InValidDateHour = curHour;
+          DoorLockCommonInfo.InValidDateMinute = curMin;
+          DoorLockCommonInfo.InValidDateSecond = curSec;
+        }
+
+        if (setTimeType != "DoorLockTime")
+        {
+          var btnOk = new Button
+          {
+            X = Application.GetRealWidth(919),
+            Y = Application.GetRealHeight(40),
+            Height = Application.GetRealHeight(58),
+            Width = Application.GetRealWidth(101),
+            Text = Language.StringByID(R.MyInternationalizationString.Complete),
+            TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
+            TextSize = 14,
+          };
+          this.bottomRadiusFrameLayout.AddChidren(btnOk);
+          btnOk.MouseUpEventHandler += (sender1, e1) =>
+          {
+            if (setTimeType == "ValidTime")
+            {
+              var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
+                            curHour, curMin, curSec,
+                            DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
+                            DoorLockCommonInfo.InValidDateHour, DoorLockCommonInfo.InValidDateMinute, DoorLockCommonInfo.InValidDateSecond);
+              if (flage == false)
+              {
+                var mess = Language.StringByID(R.MyInternationalizationString.ValidTimeNoMoreThanInValidTime);
+                this.ShowMassage(ShowMsgType.Error, mess);
+                return;
+              }
+
+              DoorLockCommonInfo.ValidDateHour = curHour;
+              DoorLockCommonInfo.ValidDateMinute = curMin;
+              DoorLockCommonInfo.ValidDateSecond = curSec;
+            }
+            else
+            {
+                        //妫�鏌ユ椂闂�
+                        var flage = this.CheckValidTime(DoorLockCommonInfo.ValidDateYear, DoorLockCommonInfo.ValidDateMonth, DoorLockCommonInfo.ValidDateDay,
+                            DoorLockCommonInfo.ValidDateHour, DoorLockCommonInfo.ValidDateMinute, DoorLockCommonInfo.ValidDateSecond,
+                            DoorLockCommonInfo.InValidDateYear, DoorLockCommonInfo.InValidDateMonth, DoorLockCommonInfo.InValidDateDay,
+                            curHour, curMin, curSec);
+              if (flage == false)
+              {
+                var mess = Language.StringByID(R.MyInternationalizationString.InvalidTimeNoLessThanValidTime);
+                this.ShowMassage(ShowMsgType.Error, mess);
+                return;
+              }
+
+              DoorLockCommonInfo.InValidDateHour = curHour;
+              DoorLockCommonInfo.InValidDateMinute = curMin;
+              DoorLockCommonInfo.InValidDateSecond = curSec;
+            }
+            if (timeSetAction != null)
+            {
+              timeSetAction();
+            }
+            this.shadowRadiusFrameLayout.RemoveFromParent();
+            MidFrameLayoutContent();
+          };
+        }
+      }
     }
+
+    /// <summary>
+    /// 妫�鏌ユ椂闂�
+    /// </summary>
+    /// <returns></returns>
+    private bool CheckValidTime(int validYear, int validMoth, int validDay, int validHour, int validMinute, int validSecond
+        , int inValidYear, int inValidMoth, int inValidDay, int inValidHour, int inValidMinute, int inValidSecond)
+    {
+      //鐢熸晥鏃堕棿
+      string nowValue1 = validYear.ToString()
+      + validMoth.ToString().PadLeft(2, '0')
+      + validDay.ToString().PadLeft(2, '0')
+      + validHour.ToString().PadLeft(2, '0')
+      + validMinute.ToString().PadLeft(2, '0')
+      + validSecond.ToString().PadLeft(2, '0');
+      //澶辨晥鏃堕棿
+      string nowValue2 = inValidYear.ToString()
+      + inValidMoth.ToString().PadLeft(2, '0')
+      + inValidDay.ToString().PadLeft(2, '0')
+      + inValidHour.ToString().PadLeft(2, '0')
+      + inValidMinute.ToString().PadLeft(2, '0')
+      + inValidSecond.ToString().PadLeft(2, '0');
+      var aaaa = nowValue1.CompareTo(nowValue2);
+      if (nowValue1.CompareTo(nowValue2) == 1)
+      {
+        return false;
+      }
+      return true;
+    }
+
+    #endregion
+
+    #region 绉婚櫎鏂规硶
+    /// <summary>
+    /// 閲嶅啓绉婚櫎鏂规硶
+    /// </summary>
+    public override void RemoveFromParent()
+    {
+      ZbGateway.StatusList.Remove(this);
+      base.RemoveFromParent();
+    }
+    #endregion
+  }
 }

--
Gitblit v1.8.0