From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 14 十二月 2020 09:59:01 +0800
Subject: [PATCH] 请合并代码,完成晾衣架最终功能。
---
ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs | 320 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 320 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs
new file mode 100755
index 0000000..2675dde
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs
@@ -0,0 +1,320 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+ /// <summary>
+ /// 寤舵椂璁剧疆鐨勪富鐣岄潰鈽�
+ /// </summary>
+ public class GarrisonAreaDelayedSettionForm : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 闃插尯鐨勫欢杩熸椂闂�
+ /// </summary>
+ private Safeguard.CatDelayTimeResponseData timeResponseData = null;
+ /// <summary>
+ /// 杩涘叆寤惰繜鐨勬椂闂存帶浠�
+ /// </summary>
+ private NormalViewControl inDelayTimeControl = null;
+ /// <summary>
+ /// 澶栧嚭寤惰繜鐨勬椂闂存帶浠�
+ /// </summary>
+ private NormalViewControl outDelayTimeControl = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ public void ShowForm()
+ {
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDelayedSettion));
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
+
+ //鑳屾櫙
+ var frameBack = new FrameLayout();
+ frameBack.Height = Application.GetRealHeight(423);
+ frameBack.BackgroundColor = UserCenterColor.Current.White;
+ bodyFrameLayout.AddChidren(frameBack);
+
+ //璇ュ姛鑳藉彧瀵瑰嚭鍏ラ槻鍖烘湁鏁�
+ var btnTitle = new NormalViewControl(864, 50, true);
+ btnTitle.X = ControlCommonResourse.XXLeft;
+ btnTitle.Y = Application.GetRealHeight(38);
+ btnTitle.TextSize = 12;
+ btnTitle.TextColor = UserCenterColor.Current.TextGrayColor2;
+ btnTitle.TextID = R.MyInternationalizationString.uThisFunctionOnlyInAndOutSectors;
+ frameBack.AddChidren(btnTitle);
+
+ var frameTable = new FrameListControl(29);
+ frameTable.Y = btnTitle.Bottom + Application.GetRealHeight(38);
+ frameTable.Height = frameBack.Height - btnTitle.Bottom - Application.GetRealHeight(38);
+ bodyFrameLayout.AddChidren(frameTable);
+
+ //娣诲姞鎵�鏈夌殑鑿滃崟
+ this.AddAllMenuRow(frameTable);
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鑿滃崟___________________________
+
+ /// <summary>
+ /// 娣诲姞鎵�鏈夌殑鑿滃崟
+ /// </summary>
+ /// <param name="listView"></param>
+ private async void AddAllMenuRow(FrameListControl listView)
+ {
+ //鎵撳紑杩涘害鏉�
+ this.ShowProgressBar();
+
+ //鑾峰彇闃插尯鐨勫欢杩熸椂闂�(浠呴檺鍑哄叆闃插尯),鍑洪敊鏃惰繑鍥瀗ull
+ this.timeResponseData = await HdlSafeguardLogic.Current.GetGarrisonDelayTime();
+ if (timeResponseData == null)
+ {
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar(ShowReLoadMode.YES);
+ return;
+ }
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍒濆鍖栥�愯繘鍏ュ欢鏃躲�戣
+ this.InitInDelayedRow(listView);
+
+ //鍒濆鍖栥�愬鍑哄欢鏃躲�戣
+ this.InitOutDelayedRow(listView);
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 杩涘叆寤舵椂___________________________
+
+ /// <summary>
+ /// 鍒濆鍖栥�愯繘鍏ュ欢鏃躲�戣
+ /// </summary>
+ /// <param name="listView"></param>
+ private void InitInDelayedRow(FrameListControl listView)
+ {
+ var row = new FrameRowControl(listView.rowSpace / 2);
+ listView.AddChidren(row);
+ row.Y = 0 - listView.rowSpace;
+
+ //杩涘叆寤舵椂
+ row.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uInDelayed), 500);
+ //娣诲姞鍙崇澶�
+ row.AddRightArrow();
+ //搴曠嚎
+ row.AddBottomLine();
+ //鏃堕棿
+ string second = Language.StringByID(R.MyInternationalizationString.Second);
+ this.inDelayTimeControl = row.AddMostRightView(this.GetTimeText(this.timeResponseData.EntranceDelayTime), 200);
+ this.inDelayTimeControl.TextColor = UserCenterColor.Current.TextGrayColor1;
+
+ row.ButtonClickEvent += (sender, e) =>
+ {
+ //鏄剧ず寤舵椂鏃堕棿
+ this.ShowDelayListTime(1);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 澶栧嚭寤舵椂___________________________
+
+ /// <summary>
+ /// 鍒濆鍖栥�愬鍑哄欢鏃躲�戣
+ /// </summary>
+ /// <param name="listView"></param>
+ private void InitOutDelayedRow(FrameListControl listView)
+ {
+ var row = new FrameRowControl(listView.rowSpace / 2);
+ listView.AddChidren(row);
+
+ //澶栧嚭寤舵椂
+ row.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uOutDelayed), 500);
+ //娣诲姞鍙崇澶�
+ row.AddRightArrow();
+ //鏃堕棿
+ string second = Language.StringByID(R.MyInternationalizationString.Second);
+ this.outDelayTimeControl = row.AddMostRightView(this.GetTimeText(this.timeResponseData.GoOutDelayTime), 200);
+ this.outDelayTimeControl.TextColor = UserCenterColor.Current.TextGrayColor1;
+
+ row.ButtonClickEvent += (sender, e) =>
+ {
+ //鏄剧ず寤舵椂鏃堕棿
+ this.ShowDelayListTime(2);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 淇濆瓨鏃堕棿___________________________
+
+ /// <summary>
+ /// 淇濆瓨鏃堕棿
+ /// </summary>
+ /// <param name="inDelayTime">杩涘叆寤惰繜鏃堕棿</param>
+ /// <param name="OutDelayTime">澶栧嚭寤惰繜鏃堕棿</param>
+ private async void SaveTime(int inDelayTime, int OutDelayTime)
+ {
+ //鎵撳紑杩涘害鏉�
+ this.ShowProgressBar();
+ var result = await HdlSafeguardLogic.Current.SetGarrisonDelayTime(inDelayTime, OutDelayTime);
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+
+ if (result == true)
+ {
+ //淇敼缂撳瓨
+ this.timeResponseData.EntranceDelayTime = inDelayTime;
+ this.timeResponseData.GoOutDelayTime = OutDelayTime;
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ if (this.inDelayTimeControl != null)
+ {
+ //鏄剧ず鏃堕棿缈昏瘧鏂囨湰
+ this.inDelayTimeControl.Text = this.GetTimeText(inDelayTime);
+ }
+ if (this.outDelayTimeControl != null)
+ {
+ //鏄剧ず鏃堕棿缈昏瘧鏂囨湰
+ this.outDelayTimeControl.Text = this.GetTimeText(OutDelayTime);
+ }
+ });
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず寤舵椂鏃堕棿_______________________
+
+ /// <summary>
+ /// 鏄剧ず寤舵椂鏃堕棿鍒楄〃
+ /// </summary>
+ /// <param name="div">1:杩涘叆寤惰繜 2:澶栧嚭寤惰繜</param>
+ private void ShowDelayListTime(int div)
+ {
+ //鍒�
+ string strMinute = Language.StringByID(R.MyInternationalizationString.uMinute);
+ //绉�
+ string strSecond = Language.StringByID(R.MyInternationalizationString.uSecond);
+ var listfirst = new List<string>();
+ var listSecond = new List<List<string>>();
+ for (int i = 0; i <= 29; i++)
+ {
+ listfirst.Add(i.ToString().PadLeft(2, '0') + strMinute);
+ var listTemp = new List<string>();
+ for (int j = 0; j <= 59; j++)
+ {
+ if (i == 0 && j == 0)
+ {
+ continue;
+ }
+ listTemp.Add(j.ToString().PadLeft(2, '0') + strSecond);
+ }
+ listSecond.Add(listTemp);
+ }
+ //鍔犱竴涓�30鍒嗛挓鍚�
+ listfirst.Add("30" + strMinute);
+ var listTemp2 = new List<string>() { "00" + strSecond };
+ listSecond.Add(listTemp2);
+
+ //杩涘叆寤惰繜
+ int delayTime = this.timeResponseData.EntranceDelayTime;
+ string title = Language.StringByID(R.MyInternationalizationString.uInDelayed);
+ if (div == 2)
+ {
+ //澶栧嚭寤惰繜
+ delayTime = this.timeResponseData.GoOutDelayTime;
+ title = Language.StringByID(R.MyInternationalizationString.uOutDelayed);
+ }
+
+ string value = (delayTime / 60).ToString().PadLeft(2, '0') + strMinute;
+ int index1 = listfirst.IndexOf(value);
+ if (index1 == -1)
+ {
+ index1 = 0;
+ }
+ value = (delayTime % 60).ToString().PadLeft(2, '0') + strSecond;
+ int index2 = listSecond[index1].IndexOf(value);
+ if (index2 == -1)
+ {
+ index2 = 0;
+ }
+
+ PickerView.ShowSecondary(listfirst, listSecond, (value1, value2) =>
+ {
+ int minute = Convert.ToInt32(listfirst[value1].Substring(0, 2));
+ int second = Convert.ToInt32(listSecond[value1][value2].Substring(0, 2));
+ int delaySecond = minute * 60 + second;
+ //淇濆瓨鏃堕棿
+ if (div == 1)
+ {
+ //杩涘叆寤惰繜
+ this.SaveTime(delaySecond, this.timeResponseData.GoOutDelayTime);
+ }
+ else
+ {
+ //澶栧嚭寤惰繜
+ this.SaveTime(this.timeResponseData.EntranceDelayTime, delaySecond);
+ }
+ },
+ index1, index2, title,
+ Language.StringByID(R.MyInternationalizationString.uFinish),
+ Language.StringByID(R.MyInternationalizationString.uCancel));
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鑾峰彇鏃堕棿鐨勭炕璇戞枃鏈�
+ /// </summary>
+ /// <param name="timeSecond">绉�</param>
+ /// <returns></returns>
+ private string GetTimeText(int timeSecond)
+ {
+ string textValue = string.Empty;
+ //鍒�
+ int checkValue = timeSecond / 60;
+ if (checkValue > 0)
+ {
+ string minu = Language.StringByID(R.MyInternationalizationString.uMinute);
+ textValue = checkValue + minu;
+ }
+ //绉�
+ checkValue = timeSecond % 60;
+ if (checkValue > 0)
+ {
+ string second = Language.StringByID(R.MyInternationalizationString.uSecond);
+ textValue += checkValue + second;
+ }
+ return textValue;
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0