From 944b87b6bcccb095cd73f13f4410fb20faf48f74 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期三, 25 十二月 2019 11:21:06 +0800
Subject: [PATCH] 2019.12.25

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs |  214 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 139 insertions(+), 75 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
index 2a2736e..b65da79 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
@@ -1,7 +1,5 @@
 锘縰sing System;
 using System.Collections.Generic;
-using Com.Autonavi.Amap.Mapcore;
-using Java.Security;
 using Shared.Common;
 using ZigBee.Device;
 
@@ -14,33 +12,36 @@
         /// </summary>
         /// <param name="common"></param>
         /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
+        public void DeviceInfoChange(CommonDevice tempDevice, string typeTag)
         {
-            if (typeTag == "DeviceStatusReport" && common != null)
+            if (typeTag == "DeviceStatusReport" && tempDevice != null)
             {
-                var tempDevice = (CommonDevice)common;
-                if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
-                    && tempDevice.DeviceAddr == doorLock.DeviceAddr)
+                if (tempDevice != null)
                 {
-                    var door = tempDevice as ZigBee.Device.DoorLock;
-                    if (door != null && door.DeviceStatusReport != null && door.DeviceStatusReport.AttriBute != null)
+                    if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
+                                      && tempDevice.DeviceAddr == doorLock.DeviceAddr)
                     {
-                        var dataReport = door.DeviceStatusReport.AttriBute[0];
-                        if (door.DeviceStatusReport.CluterID == 10 && dataReport.AttributeId == 0)
+                        if (tempDevice.DeviceStatusReport != null && tempDevice.DeviceStatusReport.AttriBute != null)
                         {
-                            CurentDoorLockTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocalTime(dataReport.AttriButeData);
-                            Application.RunOnMainThread(() =>
+                            var dataReport = tempDevice.DeviceStatusReport.AttriBute[0];
+                            if (tempDevice.DeviceStatusReport.CluterID == 10 && dataReport.AttributeId == 0)
                             {
-                                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)
+                                CurentDoorLockTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocalTime(dataReport.AttriButeData);
+                                Application.RunOnMainThread(() =>
                                 {
-                                    textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + "0" + CurentDoorLockTime.Minute;
-                                }
-                                else
-                                {
-                                    textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + CurentDoorLockTime.Minute;
-                                }
-                            });
+                                    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();
+                                });
+                            }
                         }
                     }
                 }
@@ -72,6 +73,7 @@
         int curMin = 0;
         int curSec = 0;
         public Action timeSetAction;
+        DateTime waitGetDoorLockTime = DateTime.MaxValue;
         #endregion
 
         /// <summary>
@@ -108,7 +110,6 @@
             this.btnBack.MouseUpEventHandler += eHandlerBack;
             this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
             this.MidFrameLayout(this);
-
             MidFrameLayoutContent();
         }
 
@@ -116,10 +117,23 @@
         {
             if (setTimeType == "DoorLockTime")
             {
+                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);
                     }
@@ -129,13 +143,19 @@
 
             var MidTopFrameLayout = new FrameLayout()
             {
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
             };
             this.midFrameLayout.AddChidren(MidTopFrameLayout);
 
             var dtNow = DateTime.Now;
             for (int i = 0; i < 2; i++)
             {
+                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),
@@ -145,7 +165,7 @@
                     TextAlignment = TextAlignment.CenterLeft,
                     TextSize = 12,
                 };
-                MidTopFrameLayout.AddChidren(btnDateTime);
+                rowLayout.AddChidren(btnDateTime);
 
                 var textDisplayDateFrameLayout = new FrameLayout()
                 {
@@ -153,7 +173,7 @@
                     Height = Application.GetRealHeight(58),
                     X = Application.GetRealWidth(620),
                 };
-                MidTopFrameLayout.AddChidren(textDisplayDateFrameLayout);
+                rowLayout.AddChidren(textDisplayDateFrameLayout);
 
                 var btnNextFrameLayout = new FrameLayout()
                 {
@@ -161,7 +181,7 @@
                     Height = Application.GetRealHeight(58),
                     X = Application.GetRealWidth(956),
                 };
-                MidTopFrameLayout.AddChidren(btnNextFrameLayout);
+                rowLayout.AddChidren(btnNextFrameLayout);
 
                 var btnNext = new Button()
                 {
@@ -175,21 +195,15 @@
                 var btnLine = new FrameLayout()
                 {
                     Width = Application.GetRealWidth(965),
-                    Height = Application.GetRealHeight(5),
+                    Height = 1,
                     X = Application.GetRealWidth(58),
                     BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
-
                 };
                 MidTopFrameLayout.AddChidren(btnLine);
 
-                if (setTimeType != "DoorLockTime")
-                {
-                    textDisplayDateFrameLayout.Width = 0;
-                }
-
                 if (i == 0)
                 {
-                    btnDateTime.Y = Application.GetRealHeight(50);
+                    btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50);
                     btnLine.Y = Application.GetRealHeight(23 + 127);
 
                     textDisplayDate = new Button()
@@ -197,13 +211,21 @@
                         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);
-                    textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = btnDateTime.Y;
 
                     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
                     {
@@ -212,25 +234,49 @@
                 }
                 else if (i == 1)
                 {
-                    btnDateTime.Y = Application.GetRealHeight(200);
+                    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);
-                    textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = btnDateTime.Y;
 
                     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;
                 }
                 int curIndex = i;
                 EventHandler<MouseEventArgs> hander = (sender, e) =>
@@ -273,7 +319,7 @@
                         {
                             mList2.Add(m.ToString());
                         }
-                        for (int d = 1; d < days; d++)
+                        for (int d = 1; d < days + 1; d++)
                         {
                             mList3.Add(d.ToString());
                         }
@@ -327,6 +373,7 @@
                                     timeSetAction();
                                 }
                                 this.shadowRadiusFrameLayout.RemoveFromParent();
+                                MidFrameLayoutContent();
                             };
                         }
                         else
@@ -403,6 +450,7 @@
                         {
                             this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime;
                         }
+
                         mUIPickerView.Y = Application.GetRealWidth(95);
                         var mList1 = new List<string>();
                         var mList2 = new List<string>();
@@ -451,6 +499,7 @@
                             curMin = m;
                             curSec = dtNow.Second;
                         };
+
                         if (setTimeType == "ValidTime")
                         {
                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = curHour;
@@ -464,39 +513,44 @@
                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = curSec;
                         }
 
-                        var btnOk = new Button
+                        if (setTimeType != "DoorLockTime")
                         {
-                            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.XMGray3,
-                            TextSize = 14,
-                        };
-                        this.bottomRadiusFrameLayout.AddChidren(btnOk);
-                        btnOk.MouseUpEventHandler += (sender1, e1) =>
-                        {
-                            if (setTimeType == "ValidTime")
+                            var btnOk = new Button
                             {
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = curHour;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = curMin;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = curSec;
-                            }
-                            else
+                                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.XMGray3,
+                                TextSize = 14,
+                            };
+                            this.bottomRadiusFrameLayout.AddChidren(btnOk);
+                            btnOk.MouseUpEventHandler += (sender1, e1) =>
                             {
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = curHour;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = curMin;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = curSec;
-                            }
-                            if (timeSetAction != null)
-                            {
-                                timeSetAction();
-                            }
-                            this.shadowRadiusFrameLayout.RemoveFromParent();
-                        };
+                                if (setTimeType == "ValidTime")
+                                {
+                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = curHour;
+                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = curMin;
+                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = curSec;
+                                }
+                                else
+                                {
+                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = curHour;
+                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = curMin;
+                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = curSec;
+                                }
+                                if (timeSetAction != null)
+                                {
+                                    timeSetAction();
+                                }
+                                this.shadowRadiusFrameLayout.RemoveFromParent();
+                                MidFrameLayoutContent();
+                            };
+                        }
                     }
                 };
+                rowLayout.MouseDownEventHandler += hander;
                 btnDateTime.MouseDownEventHandler += hander;
                 textDisplayDateFrameLayout.MouseDownEventHandler += hander;
                 btnNextFrameLayout.MouseDownEventHandler += hander;
@@ -517,14 +571,20 @@
                     {
                         CommonPage.Loading.Start("");
                         var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
-                        if (rectifyResult != null && rectifyResult.setWritableValueResponData != null && rectifyResult.setWritableValueResponData.Status == 0)
+                        if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
                         {
-                            this.shadowRadiusFrameLayout.RemoveFromParent();
-                            // new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifySuccess), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                            if (rectifyResult.setWritableValueResponData.Status == 0)
+                            {
+                                this.shadowRadiusFrameLayout.RemoveFromParent();
+                            }
+                            else
+                            {
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                            }
                         }
                         else
                         {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
                         }
                     }
                     catch { }
@@ -540,10 +600,14 @@
                 this.shadowRadiusFrameLayout.RemoveFromParent();
             };
 
-            //绛夊緟浠庨棬閿佷笂闈㈠姞杞藉嚭鐨勬椂闂�
-            //System.Threading.Thread.Sleep(1500);
-            //CommonPage.Loading.Hide();
-
+            if (setTimeType == "DoorLockTime")
+            {
+                if (CurentDoorLockTime != null && CurentDoorLockTime.Year != 1)
+                {
+                    waitGetDoorLockTime = DateTime.MaxValue;
+                    CommonPage.Loading.Hide();
+                }
+            }
         }
 
         #region 鈼� 鎺ュ彛瀹炵幇__________________________

--
Gitblit v1.8.0