using System;
using System.Collections.Generic;
using Shared.Phone.UserCenter;
namespace Shared.Phone.Category
{
///
/// 场景执行目标添加延时的界面
///
public class AdjustTargetAddDelayTimeForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 确定选择的事件
///
public Action FinishSelectEvent = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
/// 延时时间
public void ShowForm(int i_delayTime)
{
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.AddDelayTime));
//初始化中部信息
this.InitMiddleFrame(i_delayTime);
}
///
/// 初始化中部信息
///
private void InitMiddleFrame(int i_delayTime)
{
int selectTime = i_delayTime;
if (selectTime == 0)
{
//默认1秒
selectTime = 1;
}
//图标第一层底色
var frameFirstBack = new FrameLayout();
frameFirstBack.Y = Application.GetRealHeight(118);
frameFirstBack.Height = this.GetPictrueRealSize(207);
frameFirstBack.Width = this.GetPictrueRealSize(207);
frameFirstBack.BackgroundColor = UserCenterColor.Current.White;
frameFirstBack.Radius = (uint)this.GetPictrueRealSize(207) / 2;
frameFirstBack.Gravity = Gravity.CenterHorizontal;
bodyFrameLayout.AddChidren(frameFirstBack);
//防止出现误差
int iconWidth = this.GetPictrueRealSize(207) - this.GetPictrueRealSize(12) - this.GetPictrueRealSize(12);
//图标第二层底色
var btnSecondBack = new NormalViewControl(iconWidth, iconWidth, false);
btnSecondBack.BackgroundColor = 0xfffef1ed;
btnSecondBack.Radius = (uint)iconWidth / 2;
btnSecondBack.Gravity = Gravity.Center;
frameFirstBack.AddChidren(btnSecondBack);
//图标
var btnIcon = new IconViewControl(124);
btnIcon.UnSelectedImagePath = "Item/Timer.png";
btnIcon.Gravity = Gravity.Center;
frameFirstBack.AddChidren(btnIcon);
//为你的动作创建时间间隔
var btnMsg = new NormalViewControl(700, 62, true);
btnMsg.Y = frameFirstBack.Bottom + Application.GetRealHeight(34);
btnMsg.TextSize = 15;
btnMsg.TextID = R.MyInternationalizationString.SelectTimeForAction;
btnMsg.TextAlignment = TextAlignment.Center;
btnMsg.Gravity = Gravity.CenterHorizontal;
bodyFrameLayout.AddChidren(btnMsg);
//白色背景控件
var frameWhiteBack = new FrameLayout();
frameWhiteBack.BackgroundColor = UserCenterColor.Current.White;
frameWhiteBack.Y = Application.GetRealHeight(611);
frameWhiteBack.Height = Application.GetRealHeight(1500);//超过底部即可
frameWhiteBack.Radius = (uint)Application.GetRealHeight(58);
bodyFrameLayout.AddChidren(frameWhiteBack);
//滑动控件
var pickView = new UIPickerView();
pickView.Y = Application.GetRealHeight(127);
pickView.Height = Application.GetRealHeight(153 * 3);
frameWhiteBack.AddChidren(pickView);
//分
string strMinute = Language.StringByID(R.MyInternationalizationString.uMinute);
//秒
string strSecond = Language.StringByID(R.MyInternationalizationString.uSecond);
var listfirst = new List();
var listSecond = new List>();
for (int i = 0; i <= 59; i++)
{
listfirst.Add(i.ToString().PadLeft(2, '0') + strMinute);
var listTemp = new List();
for (int j = 0; j <= 59; j++)
{
if (i == 0 && j == 0)
{
continue;
}
listTemp.Add(j.ToString().PadLeft(2, '0') + strSecond);
}
listSecond.Add(listTemp);
}
//加一个60分钟吧
listfirst.Add("60" + strMinute);
var listTemp2 = new List() { "00" + strSecond };
listSecond.Add(listTemp2);
int firstIndex = selectTime / 60;
int secondIndex = selectTime % 60;
//因为0分的时候,它是从1秒开始的,所以它的索引需要-1
if (firstIndex == 0) { secondIndex--; }
pickView.setPicker(listfirst, listSecond);
pickView.setCurrentItems(firstIndex, secondIndex, 0);
pickView.OnSelectChangeEvent += (value1, value2, value3) =>
{
int minute = Convert.ToInt32(listfirst[value1].Substring(0, 2));
int second = Convert.ToInt32(listSecond[value1][value2].Substring(0, 2));
selectTime = minute * 60 + second;
};
//完成按钮
var btnSave = new BottomClickButton();
btnSave.TextID = R.MyInternationalizationString.uSave;
bodyFrameLayout.AddChidren(btnSave);
btnSave.ButtonClickEvent += (sender, e) =>
{
//选择的是同一个时间,则不触发回调函数
if (i_delayTime == selectTime) { this.CloseForm(); }
//调用回调函数
this.FinishSelectEvent?.Invoke(selectTime);
this.CloseForm();
};
}
#endregion
#region ■ 界面关闭___________________________
///
/// 界面关闭
///
public override void CloseFormBefore()
{
this.FinishSelectEvent = null;
base.CloseFormBefore();
}
#endregion
}
}