using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter
{
///
/// 晾衣架时间设置的控件
///
public class AiererTimeControl : AirerTimeBaseLayout
{
#region ■ 变量声明___________________________
///
/// 选择时间的事件
/// int总秒 int类型
///
public Action SelectTimeEvent = null;
///
/// 选择时间的事件
/// int时间 int类型【1:烘干,2:风干;3:消毒】
///
public Action DetailCardActionTimeEvent = null;
///
/// 显示文本
///
private NormalViewControl btnTextView = null;
#endregion
#region ■ 初始化_____________________________
///
/// 晾衣架时间设置的控件
///
/// 子控件Y轴偏移量(【列表控件的rowSpace/2】即可,不懂默认为0即可)
public AiererTimeControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
{
}
///
/// 初始化控件
///
/// 标题文本
/// 文本显示
/// 晾衣架时间 :1烘干,2:风干;3消毒
public void InitControl(Airer airer, NormalFrameLayout bodyFrameLayout, string i_caption, string i_text, int type)
{
//标题
var btnCaption = new NormalViewControl(270, 58, true);
btnCaption.X = ControlCommonResourse.XXLeft;
btnCaption.Gravity = Gravity.CenterVertical;
btnCaption.Text = i_caption + ":";
this.AddChidren(btnCaption, ChidrenBindMode.BindEvent);
//显示框
this.btnTextView = new NormalViewControl(700, true);
btnTextView.X = Application.GetRealWidth(294);
btnTextView.Gravity = Gravity.CenterVertical;
btnTextView.TextColor = UserCenterColor.Current.TextGrayColor1;
btnTextView.Text = i_text;
this.AddChidren(btnTextView, ChidrenBindMode.BindEvent);
if (chidrenYaxis != 0)
{
btnCaption.Y += chidrenYaxis;
btnTextView.Y += chidrenYaxis;
}
//右箭头 {烘干、风干和消毒的设置默认时间暂时取去掉,且倒计时也去掉,因为第三方设备不支持」
//默认最大3小时,所以下次要处理时为3,分钟不能操作大情况
//this.AddRightArrow();
//如果当前不是展示模板,则需要处理
//if (Common.Config.Instance.Home.IsShowTemplate == false)
//{
// this.ButtonClickEvent += (sender, e) =>
// {
//区域选择
//SelectTimeEvent = (min, curType) =>
//{
// switch (curType)
// {
// case 1:
// case 2:
// double result = min / 60.0;
// var hour = Math.Round(result, 2);
// var text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
// if (min == 0)
// {
// text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
// }
// btnTextView.Text = text;
// break;
// case 3:
// int result2 = min;
// var text2 = result2 + Language.StringByID(R.MyInternationalizationString.AirerMin);
// if (min == 0)
// {
// text2 = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 30 + Language.StringByID(R.MyInternationalizationString.AirerMin);
// }
// btnTextView.Text = text2;
// break;
// }
//};
//this.ShowSelectTime(airer, bodyFrameLayout, btnTextView, i_caption, type);
// };
//}
}
#endregion
#region ■ 时间选择___________________________
///
/// 区域选择
///
///
///
/// 晾衣架时间 :1烘干,2:风干;3消毒
private void ShowSelectTime(Airer airer, NormalFrameLayout bodyFrameLayout, NormalViewControl txtView, string i_caption, int type)
{
bodyFrameLayout.AddChidren(this.shadowRadiusFrameLayout);
this.bottomRadiusFrameLayout.RemoveAll();
this.BottomRadiusFrameLayout(this);
this.btnBottomTitle.Text = i_caption;
var mUIPickerView = new UIPickerView()
{
X = Application.GetRealWidth(0),
Height = Application.GetRealHeight(440 - 140),
};
this.bottomRadiusFrameLayout.AddChidren(mUIPickerView);
mUIPickerView.Y = Application.GetRealWidth(207);
//小时列表名字
var listHourName = new List();
//分钟名字
var listMinName = new List();
int curH = 0;
int curM = 0;
if (type == 3)
{
curM = 1;
//名字和键收集
for (int i = 1; i < 31; i++)
{
listMinName.Add(i.ToString() + Language.StringByID(R.MyInternationalizationString.AirerMin));
}
mUIPickerView.setNPicker(listMinName, null, null);
mUIPickerView.setCurrentItems(curH, 0, 0);
mUIPickerView.OnSelectChangeEvent += (v1, v2, v3) =>
{
curM = v1 + 1;
};
}
else
{
//名字和键收集
for (int i = 0; i < 4; i++)
{
listHourName.Add(i.ToString() + Language.StringByID(R.MyInternationalizationString.AirerHour));
}
for (int i = 0; i < 60; i++)
{
listMinName.Add(i.ToString() + Language.StringByID(R.MyInternationalizationString.AirerMin));
}
mUIPickerView.setNPicker(listHourName, listMinName, null);
mUIPickerView.setCurrentItems(curH, curM, 0);
mUIPickerView.OnSelectChangeEvent += (h, m, s) =>
{
curH = h;
curM = m;
};
}
this.btnCancel.MouseUpEventHandler = (sender1, e1) =>
{
this.shadowRadiusFrameLayout.RemoveFromParent();
};
this.btnFinish.MouseUpEventHandler = async (sender1, e1) =>
{
int totalMin = 0;
switch (type)
{
case 1:
airer.DryTime = curH * 60 + curM;
airer.DryRemainTime = airer.DryTime * 60;
totalMin = airer.DryTime;
airer.SetAirerFunTimeDevice(airer.DryTime, 4);
this.DetailCardActionTimeEvent?.Invoke(airer.DryRemainTime, type);
break;
case 2:
airer.WindTime = curH * 60 + curM;
airer.WindRemainTime = airer.WindTime * 60;
totalMin = airer.WindTime;
airer.SetAirerFunTimeDevice(airer.WindTime, 3);
this.DetailCardActionTimeEvent?.Invoke(airer.WindRemainTime, type);
break;
case 3:
airer.DisinfectTime = curM;
airer.DisinfectRemainTime = airer.DisinfectTime * 60;
totalMin = airer.DisinfectTime;
airer.SetAirerFunTimeDevice(airer.DisinfectTime, 5);
this.DetailCardActionTimeEvent?.Invoke(airer.DisinfectRemainTime, type);
break;
}
//成功后更新外面文本
this.SelectTimeEvent?.Invoke(totalMin, type);
this.SelectTimeEvent = null;
this.shadowRadiusFrameLayout.RemoveFromParent();
};
this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
{
this.shadowRadiusFrameLayout.RemoveFromParent();
};
}
#endregion
#region ■ 控件摧毁___________________________
///
/// 控件摧毁
///
public override void RemoveFromParent()
{
this.SelectTimeEvent = null;
base.RemoveFromParent();
}
#endregion
}
}