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