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/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