From bbaae33cad1dadaad27eeac712d30fff248bffa5 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期二, 17 三月 2020 17:46:25 +0800
Subject: [PATCH] 2020-03-17-2
---
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs | 230 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 180 insertions(+), 50 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
index 496c79a..424eb2f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
@@ -29,6 +29,7 @@
CurentDoorLockTime = Shared.Phone.UserCenter.DoorLock.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)
{
@@ -38,6 +39,7 @@
{
textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + CurentDoorLockTime.Minute;
}
+ CommonPage.Loading.Hide();
});
}
}
@@ -58,19 +60,59 @@
ZigBee.Device.ZbGateway.StatusList.Add(this);
}
- #region 鈼� 鍙橀噺鐢虫槑__________________________
+ #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>
@@ -109,17 +151,30 @@
this.MidFrameLayout(this);
MidFrameLayoutContent();
}
-
+ /// <summary>
+ /// 涓儴甯冨眬
+ /// </summary>
public void MidFrameLayoutContent()
{
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);
}
@@ -135,6 +190,7 @@
var dtNow = DateTime.Now;
for (int i = 0; i < 2; i++)
{
+ #region MidTopFrameLayout UI
var rowLayout = new FrameLayout()
{
Height = Application.GetRealHeight(127 + 23),
@@ -173,7 +229,7 @@
{
Width = Application.GetRealWidth(58),
Height = Application.GetRealHeight(58),
- UnSelectedImagePath = "Item/Next.png",
+ UnSelectedImagePath = "Item/RightNext.png",
SelectedImagePath = "Item/Down.png",
};
btnNextFrameLayout.AddChidren(btnNext);
@@ -186,12 +242,9 @@
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
};
MidTopFrameLayout.AddChidren(btnLine);
+ #endregion
- if (setTimeType != "DoorLockTime")
- {
- textDisplayDateFrameLayout.Width = 0;
- }
-
+ #region 鏄剧ず澶勭悊
if (i == 0)
{
btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50);
@@ -205,11 +258,18 @@
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
{
@@ -229,11 +289,32 @@
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
{
@@ -241,15 +322,19 @@
}
btnLine.Visible = false;
}
+ #endregion
+
+ #region 浜嬩欢澶勭悊
int curIndex = i;
EventHandler<MouseEventArgs> hander = (sender, e) =>
{
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);
@@ -265,7 +350,7 @@
this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentDate;
}
- mUIPickerView.Y = Application.GetRealWidth(110);
+ mUIPickerView.Y = Application.GetRealWidth(245);
var mList1 = new List<string>();
var mList2 = new List<string>();
var mList3 = new List<string>();
@@ -274,17 +359,31 @@
int year = dtNow.Year + 1;
int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
- for (int y = dtNow.Year - 10; y < dtNow.Year + 1; y++)
+ for (int y = dtNow.Year - 9; y < dtNow.Year + 1; y++)
{
mList1.Add(y.ToString());
}
for (int m = 1; m < 13; m++)
{
- mList2.Add(m.ToString());
+ if (Language.CurrentLanguage == "Chinese")
+ {
+ mList2.Add(m.ToString() + "鏈�");
+ }
+ else
+ {
+ mList2.Add(m.ToString());
+ }
}
- for (int d = 1; d < days; d++)
+ for (int d = 1; d < days + 1; d++)
{
- mList3.Add(d.ToString());
+ if (Language.CurrentLanguage == "Chinese")
+ {
+ mList3.Add(d.ToString() + "鏃�");
+ }
+ else
+ {
+ mList3.Add(d.ToString());
+ }
}
if (setTimeType != "DoorLockTime")
@@ -313,7 +412,7 @@
Height = Application.GetRealHeight(58),
Width = Application.GetRealWidth(101),
Text = Language.StringByID(R.MyInternationalizationString.Complete),
- TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+ TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
TextSize = 14,
};
this.bottomRadiusFrameLayout.AddChidren(btnOk);
@@ -336,12 +435,13 @@
timeSetAction();
}
this.shadowRadiusFrameLayout.RemoveFromParent();
+ MidFrameLayoutContent();
};
}
else
{
mUIPickerView.setNPicker(mList1, mList2, mList3);
- mUIPickerView.setCurrentItems(dtNow.Year, dtNow.Month - 1, dtNow.Day - 1);
+ mUIPickerView.setCurrentItems(9, dtNow.Month - 1, dtNow.Day - 1);
curYear = dtNow.Year;
curMonth = dtNow.Month;
curDay = dtNow.Day;
@@ -369,7 +469,14 @@
for (int d = 1; d < days + 1; d++)
{
- mList3.Add(d.ToString());
+ if (Language.CurrentLanguage == "Chinese")
+ {
+ mList3.Add(d.ToString() + "鏃�");
+ }
+ else
+ {
+ mList3.Add(d.ToString());
+ }
}
if (setTimeType != "DoorLockTime")
@@ -380,7 +487,7 @@
else
{
mUIPickerView.setNPicker(mList1, mList2, mList3);
- mUIPickerView.setCurrentItems(curYear, curMonth - 1, curDay - 1);
+ mUIPickerView.setCurrentItems(9, curMonth - 1, curDay - 1);
}
}
};
@@ -413,7 +520,7 @@
this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime;
}
- mUIPickerView.Y = Application.GetRealWidth(95);
+ mUIPickerView.Y = Application.GetRealWidth(245);
var mList1 = new List<string>();
var mList2 = new List<string>();
for (int h = 0; h < 24; h++)
@@ -438,7 +545,6 @@
mList2.Add(m.ToString());
}
}
- // mUIPickerView.setNPicker(mList1, mList2, new List<string> { });
mUIPickerView.setNPicker(mList1, mList2, null);
mUIPickerView.setCurrentItems(dtNow.Hour, dtNow.Minute, 0);
if (CurentDoorLockTime != null)
@@ -485,7 +591,7 @@
Height = Application.GetRealHeight(58),
Width = Application.GetRealWidth(101),
Text = Language.StringByID(R.MyInternationalizationString.Complete),
- TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+ TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
TextSize = 14,
};
this.bottomRadiusFrameLayout.AddChidren(btnOk);
@@ -508,6 +614,7 @@
timeSetAction();
}
this.shadowRadiusFrameLayout.RemoveFromParent();
+ MidFrameLayoutContent();
};
}
}
@@ -517,44 +624,63 @@
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 += async (sender1, e1) =>
+ btnFinish.MouseUpEventHandler += (sender1, e1) =>
{
if (setTimeType == "DoorLockTime")
- {
- var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec);
- var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(curDateTime);
- try
- {
- CommonPage.Loading.Start("");
- var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
- if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
+ {
+ System.Threading.Tasks.Task.Run(async () => {
+ try
{
- if (rectifyResult.setWritableValueResponData.Status == 0)
+ var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec);
+ var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(curDateTime);
+ Application.RunOnMainThread(() => {
+ CommonPage.Loading.Start("");
+ });
+ var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
+ if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
{
- this.shadowRadiusFrameLayout.RemoveFromParent();
+ 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
{
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+ Application.RunOnMainThread(() => {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+ });
}
}
- else
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); });
}
- }
- catch { }
- finally
- {
- System.Threading.Thread.Sleep(3000);
- CommonPage.Loading.Hide();
- }
+ });
}
};
this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
@@ -562,13 +688,17 @@
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 鈼� 鎺ュ彛瀹炵幇__________________________
+ #region 鎺ュ彛瀹炵幇
/// <summary>
/// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
/// </summary>
--
Gitblit v1.8.0