using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.Safety
|
{
|
/// <summary>
|
/// 延时设置的主界面★
|
/// </summary>
|
public class DelayedSettionMainForm : UserCenterCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 防区的延迟时间
|
/// </summary>
|
private Safeguard.CatDelayTimeResponseData timeResponseData = null;
|
/// <summary>
|
/// 进入延迟的时间控件
|
/// </summary>
|
private RowSecondRightTextView inDelayTimeControl = null;
|
/// <summary>
|
/// 外出延迟的时间控件
|
/// </summary>
|
private RowSecondRightTextView outDelayTimeControl = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
public void ShowForm()
|
{
|
//设置头部信息
|
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDelayedSettion));
|
|
//初始化中部信息
|
this.InitMiddleFrame();
|
}
|
|
/// <summary>
|
/// 初始化中部信息
|
/// </summary>
|
private void InitMiddleFrame()
|
{
|
//该功能只对出入防区有效
|
var btnTitle = new TitleViewControl();
|
btnTitle.TextColor = UserCenterColor.Current.TextGrayColor;
|
btnTitle.Y = Application.GetRealHeight(40);
|
btnTitle.TextID = R.MyInternationalizationString.uThisFunctionOnlyInAndOutSectors;
|
bodyFrameLayout.AddChidren(btnTitle);
|
|
//添加所有的菜单
|
this.AddAllMenuRow(btnTitle);
|
}
|
|
#endregion
|
|
#region ■ 添加菜单___________________________
|
|
/// <summary>
|
/// 添加所有的菜单
|
/// </summary>
|
/// <param name="btnTitle"></param>
|
private async void AddAllMenuRow(TitleViewControl btnTitle)
|
{
|
//打开进度条
|
this.ShowProgressBar();
|
|
//获取防区的延迟时间(仅限出入防区),出错时返回null
|
this.timeResponseData = await Common.LocalSafeguard.Current.GetGarrisonDelayTime();
|
if (timeResponseData == null)
|
{
|
//关闭进度条
|
this.CloseProgressBar(ShowReLoadMode.YES);
|
return;
|
}
|
//关闭进度条
|
this.CloseProgressBar();
|
|
Application.RunOnMainThread(() =>
|
{
|
//初始化【进入延时】行
|
this.InitInDelayedRow(btnTitle);
|
|
//初始化【外出延时】行
|
this.InitOutDelayedRow(btnTitle);
|
});
|
}
|
|
#endregion
|
|
#region ■ 进入延时___________________________
|
|
/// <summary>
|
/// 初始化【进入延时】行
|
/// </summary>
|
/// <param name="titleView"></param>
|
private void InitInDelayedRow(TitleViewControl titleView)
|
{
|
var rowLayout = new StatuRowLayout();
|
rowLayout.Y = titleView.Bottom;
|
bodyFrameLayout.AddChidren(rowLayout);
|
|
//进入延时
|
var txName = new RowCenterView(false);
|
txName.TextID = R.MyInternationalizationString.uInDelayed;
|
rowLayout.AddChidren(txName);
|
|
//时间
|
string second = Language.StringByID(R.MyInternationalizationString.Second);
|
this.inDelayTimeControl = new RowSecondRightTextView();
|
inDelayTimeControl.Text = this.timeResponseData.EntranceDelayTime + " " + second;
|
rowLayout.AddChidren(inDelayTimeControl);
|
|
//添加右箭头
|
rowLayout.AddRightIconControl();
|
|
rowLayout.MouseUpEvent += (sender, e) =>
|
{
|
List<string> listTime = this.GetTimeList();
|
PickerView.Show(listTime, (value) =>
|
{
|
//保存时间
|
int inTime = Convert.ToInt32(value.Replace(second, string.Empty).Trim());
|
this.SaveTime(inTime, this.timeResponseData.GoOutDelayTime);
|
});
|
};
|
}
|
|
#endregion
|
|
#region ■ 外出延时___________________________
|
|
/// <summary>
|
/// 初始化【外出延时】行
|
/// </summary>
|
/// <param name="titleView"></param>
|
private void InitOutDelayedRow(TitleViewControl titleView)
|
{
|
var rowLayout = new StatuRowLayout();
|
rowLayout.Y = titleView.Bottom + ControlCommonResourse.ListViewRowHeight;
|
bodyFrameLayout.AddChidren(rowLayout);
|
|
//外出延时
|
var txName = new RowCenterView(false);
|
txName.TextID = R.MyInternationalizationString.uOutDelayed;
|
rowLayout.AddChidren(txName);
|
|
//时间
|
string second = Language.StringByID(R.MyInternationalizationString.Second);
|
this.outDelayTimeControl = new RowSecondRightTextView();
|
outDelayTimeControl.Text = this.timeResponseData.GoOutDelayTime + " " + second;
|
rowLayout.AddChidren(outDelayTimeControl);
|
|
//添加右箭头
|
rowLayout.AddRightIconControl();
|
|
rowLayout.MouseUpEvent += (sender, e) =>
|
{
|
List<string> listTime = this.GetTimeList();
|
PickerView.Show(listTime, (value) =>
|
{
|
//保存时间
|
int outTime = Convert.ToInt32(value.Replace(second, string.Empty).Trim());
|
this.SaveTime(this.timeResponseData.EntranceDelayTime, outTime);
|
});
|
};
|
}
|
|
#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 Common.LocalSafeguard.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);
|
this.inDelayTimeControl.Text = inDelayTime + " " + second;
|
this.outDelayTimeControl.Text = OutDelayTime + " " + second;
|
});
|
}
|
}
|
|
#endregion
|
|
#region ■ 一般方法___________________________
|
|
/// <summary>
|
/// 获取时间列表
|
/// </summary>
|
/// <returns></returns>
|
private List<string> GetTimeList()
|
{
|
List<string> list = new List<string>();
|
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
|
}
|
}
|