using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.UserCenter.Safety { /// /// 延时设置的主界面★ /// public class DelayedSettionMainForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 防区的延迟时间 /// private Safeguard.CatDelayTimeResponseData timeResponseData = null; /// /// 进入延迟的时间控件 /// private NormalViewControl inDelayTimeControl = null; /// /// 外出延迟的时间控件 /// private NormalViewControl outDelayTimeControl = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// public void ShowForm() { //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDelayedSettion)); //初始化中部信息 this.InitMiddleFrame(); } /// /// 初始化中部信息 /// 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, 49, 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 ■ 添加菜单___________________________ /// /// 添加所有的菜单 /// /// private async void AddAllMenuRow(FrameListControl listView) { //打开进度条 this.ShowProgressBar(); //获取防区的延迟时间(仅限出入防区),出错时返回null this.timeResponseData = await HdlSafeguardLogic.Current.GetGarrisonDelayTime(); if (timeResponseData == null) { //关闭进度条 this.CloseProgressBar(ShowReLoadMode.YES); return; } //关闭进度条 this.CloseProgressBar(); Application.RunOnMainThread(() => { //初始化【进入延时】行 this.InitInDelayedRow(listView); //初始化【外出延时】行 this.InitOutDelayedRow(listView); }); } #endregion #region ■ 进入延时___________________________ /// /// 初始化【进入延时】行 /// /// 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.timeResponseData.EntranceDelayTime + " " + second, 200); this.inDelayTimeControl.TextColor = UserCenterColor.Current.TextGrayColor1; row.ButtonClickEvent += (sender, e) => { List listTime = this.GetTimeList(); PickerView.Show(listTime, (value) => { //保存时间 int inTime = Convert.ToInt32(listTime[value].Replace(second, string.Empty).Trim()); this.SaveTime(inTime, this.timeResponseData.GoOutDelayTime); }); }; } #endregion #region ■ 外出延时___________________________ /// /// 初始化【外出延时】行 /// /// 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.timeResponseData.GoOutDelayTime + " " + second, 200); this.outDelayTimeControl.TextColor = UserCenterColor.Current.TextGrayColor1; row.ButtonClickEvent += (sender, e) => { List listTime = this.GetTimeList(); PickerView.Show(listTime, (value) => { //保存时间 int outTime = Convert.ToInt32(listTime[value].Replace(second, string.Empty).Trim()); this.SaveTime(this.timeResponseData.EntranceDelayTime, outTime); }); }; } #endregion #region ■ 保存时间___________________________ /// /// 保存时间 /// /// 进入延迟时间 /// 外出延迟时间 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; Application.RunOnMainThread(() => { string second = Language.StringByID(R.MyInternationalizationString.Second); if (this.inDelayTimeControl != null) { this.inDelayTimeControl.Text = inDelayTime + " " + second; } if (this.outDelayTimeControl != null) { this.outDelayTimeControl.Text = OutDelayTime + " " + second; } }); } } #endregion #region ■ 一般方法___________________________ /// /// 获取时间列表 /// /// private List GetTimeList() { List list = new List(); string second = Language.StringByID(R.MyInternationalizationString.Second); list.Add("3 " + second); for (int i = 5; i <= 120; i = i + 5) { list.Add(i + " " + second); } list.Add("180 " + second); list.Add("240 " + second); list.Add("300 " + second); return list; } #endregion } }