using System;
|
using System.Collections.Generic;
|
using Shared;
|
using Shared.Common;
|
using Shared.Phone;
|
using Shared.Phone.Device.Logic.LogicView;
|
using Shared.R;
|
using ZigBee.Device;
|
namespace Shared.Phone.Device.Logic
|
{
|
public class TimePoint : FrameLayout
|
{
|
public TimePoint()
|
{
|
Tag = "Logic";
|
}
|
Dictionary<string, string> timeifon = new Dictionary<string, string>();
|
TimeView timeview = new TimeView
|
{
|
|
Height = Application.GetRealHeight(550),
|
BackgroundColor =0x40ffffff,// ZigbeeColor.Current.LogicTopViewBackgroundColor,
|
Width = Application.GetRealWidth(1080),
|
};
|
/// <summary>
|
/// 标记(新加/进来编辑)
|
/// </summary>
|
public bool IsEditor;
|
/// <summary>
|
/// 记录进来之前的分钟
|
/// </summary>
|
public string StartMin;
|
/// <summary>
|
/// 记录进来之前的小时
|
/// </summary>
|
public string StartHour;
|
/// <summary>
|
/// 记录进来之前的时间(延时/提前)
|
/// </summary>
|
public string AdjustTime;
|
/// <summary>
|
/// 记录时刻的类型(日出/日落/正常)
|
/// </summary>
|
public string DateType;
|
public void Show(Dictionary<string, string> dictionary)
|
{
|
|
int TypeValue = int.Parse(dictionary["DateType"]);
|
timeifon.Add("Type", "0");
|
timeifon.Add("IsValid", "1");
|
timeifon.Add("RemindTime", "0");
|
timeifon.Add("EnDelay", "0");
|
timeifon.Add("DelayTime", "0");
|
timeifon.Add("DoorLockOpenDelayTime","0");
|
timeifon.Add("DateType", TypeValue.ToString());
|
DateType = dictionary["DateType"];
|
|
if (TypeValue == 0)
|
{
|
timeifon.Add("StartHour", dictionary["StartHour"]);
|
timeifon.Add("StartMin", dictionary["StartMin"]);
|
StartHour = dictionary["StartHour"];
|
StartMin = dictionary["StartMin"];
|
}
|
else
|
{
|
timeifon.Add("AdjustTime", dictionary["AdjustTime"]);
|
AdjustTime = dictionary["AdjustTime"];
|
|
}
|
|
#region 上面的布局代码
|
TopView view = new TopView();
|
this.AddChidren(view.TopRowView());
|
view.toptitleNameBtn.TextID = MyInternationalizationString.addtime;
|
view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); };
|
#endregion
|
|
|
var middle = new FrameLayout
|
{
|
Y = view.topRowLayout.Bottom,
|
Height = Application.GetRealHeight(Method.H - 184 - 260),
|
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
this.AddChidren(middle);
|
SelectedTimeTypeView(middle, TypeValue);
|
|
|
}
|
/// <summary>
|
/// 显示选中时间的处理方法
|
/// </summary>
|
/// <param name="middle">Middle.</param>
|
/// <param name="TypeValue">Type value.</param>
|
void SelectedTimeTypeView(FrameLayout middle, int TypeValue)
|
{
|
middle.RemoveAll();
|
#region -----类型 时刻
|
TypeView typeView = new TypeView();
|
middle.AddChidren(typeView.Show());
|
typeView.textBtn.TextID = MyInternationalizationString.type;
|
typeView.titleBtn.Width = Application.GetRealWidth(630 + 70);
|
typeView.titleBtn.TextID = MyInternationalizationString.immediateexecution;
|
typeView.backBtn.Visible = false;
|
|
|
TypeView skView = new TypeView();
|
skView.frameLayout.Y = typeView.frameLayout.Bottom;
|
middle.AddChidren(skView.Show());
|
skView.textBtn.TextID = MyInternationalizationString.moment;
|
skView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
|
TimeTypeView(middle, TypeValue);
|
|
};
|
#endregion
|
|
string textvalue = "";
|
switch (TypeValue)
|
{
|
case 0:
|
{
|
skView.titleBtn.Text = Language.StringByID(MyInternationalizationString.logiccustom);
|
textvalue = timeifon["StartHour"] + ":" + timeifon["StartMin"];
|
}
|
break;
|
case 1:
|
{
|
skView.titleBtn.Text = Language.StringByID(MyInternationalizationString.sunrise);
|
if (int.Parse(timeifon["AdjustTime"]) > 0)
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.delayed) + timeifon["AdjustTime"] + Language.StringByID(MyInternationalizationString.logicminute);
|
}
|
else if (int.Parse(timeifon["AdjustTime"]) < 0)
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.advance) + Math.Abs(int.Parse(timeifon["AdjustTime"])).ToString() + Language.StringByID(MyInternationalizationString.logicminute);
|
}
|
else
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.nothing);
|
}
|
}
|
break;
|
case 2:
|
{
|
skView.titleBtn.Text = Language.StringByID(MyInternationalizationString.sunset);
|
if (int.Parse(timeifon["AdjustTime"]) > 0)
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.delayed) + timeifon["AdjustTime"] + Language.StringByID(MyInternationalizationString.logicminute);
|
}
|
else if (int.Parse(timeifon["AdjustTime"]) < 0)
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.advance) + Math.Abs(int.Parse(timeifon["AdjustTime"])).ToString() + Language.StringByID(MyInternationalizationString.logicminute);
|
}
|
else
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.nothing);
|
}
|
}
|
break;
|
case 3:
|
{
|
skView.titleBtn.Text = Language.StringByID(MyInternationalizationString.noon);
|
if (int.Parse(timeifon["AdjustTime"]) > 0)
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.delayed) + timeifon["AdjustTime"] + Language.StringByID(MyInternationalizationString.logicminute);
|
}
|
else if (int.Parse(timeifon["AdjustTime"]) < 0)
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.advance) + Math.Abs(int.Parse(timeifon["AdjustTime"])).ToString() + Language.StringByID(MyInternationalizationString.logicminute);
|
}
|
else
|
{
|
textvalue = Language.StringByID(MyInternationalizationString.nothing);
|
}
|
}
|
break;
|
}
|
if (TypeValue == 0)
|
{
|
|
#region -----自定义时间
|
skView.backBtn.UnSelectedImagePath = "ZigeeLogic/dropdown.png";
|
var rowTimeView = new FrameLayout
|
{
|
Y = skView.frameLayout.Bottom,
|
Height = Application.GetRealHeight(600),
|
};
|
middle.AddChidren(rowTimeView);
|
rowTimeView.AddChidren(timeview);
|
#endregion
|
}
|
else
|
{
|
|
#region -----提前/延时
|
|
TypeView delayView = new TypeView();
|
delayView.frameLayout.Y = skView.frameLayout.Bottom;
|
delayView.frameLayout.Height = Application.GetRealHeight(160+20);//增高最后一行的高度20;
|
middle.AddChidren(delayView.Show());
|
delayView.textBtn.TextID = MyInternationalizationString.Advancedelay;
|
delayView.titleBtn.Text = textvalue;
|
delayView.lineBtn.BackgroundColor = BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
|
delayView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
|
var mList = new List<string>();
|
mList.Add(Language.StringByID(MyInternationalizationString.advance));
|
mList.Add(Language.StringByID(MyInternationalizationString.nothing));
|
mList.Add(Language.StringByID(MyInternationalizationString.delayed));
|
var listValues = new List<string>();
|
for (int i = 1; i < 61; i++)
|
{
|
if (i < 10)
|
{
|
var a = "0" + i.ToString();
|
listValues.Add(a + " " + Language.StringByID(MyInternationalizationString.minute));
|
}
|
else
|
{
|
listValues.Add(i.ToString() + " " + Language.StringByID(MyInternationalizationString.minute));
|
}
|
|
}
|
var mList2 = new List<List<string>>();
|
mList2.Add(listValues);
|
mList2.Add(new List<string> { "0" });
|
mList2.Add(listValues);
|
int timevalue = 0;
|
int selectIndex = 1;
|
if (int.Parse(timeifon["AdjustTime"]) > 0)
|
{
|
selectIndex = 2;
|
timevalue = Math.Abs(int.Parse(timeifon["AdjustTime"]));
|
}
|
else if (int.Parse(timeifon["AdjustTime"]) < 0)
|
{
|
selectIndex = 0;
|
timevalue = Math.Abs(int.Parse(timeifon["AdjustTime"]));
|
}
|
else
|
{
|
selectIndex = 1;
|
timevalue = 1;
|
}
|
PickerView.ShowSecondary(mList, mList2, (selectIndex1, selectIndex2) =>
|
{
|
|
switch (selectIndex1)
|
{
|
case 0:
|
case 2:
|
{
|
timevalue = int.Parse(listValues[selectIndex2].Split(' ')[0]);
|
if (selectIndex1 == 0)
|
{
|
timevalue = timevalue * -1;
|
}
|
}
|
break;
|
case 1:
|
timevalue = 0;
|
break;
|
|
}
|
|
if (timeifon.ContainsKey("StartHour"))
|
{
|
timeifon.Remove("StartHour");
|
}
|
if (timeifon.ContainsKey("StartMin"))
|
{
|
timeifon.Remove("StartMin");
|
}
|
if (timeifon.ContainsKey("AdjustTime"))
|
{
|
timeifon.Remove("AdjustTime");
|
}
|
timeifon.Add("AdjustTime", timevalue.ToString());
|
UserView.HomePage.Instance.ScrollEnabled = false;
|
SelectedTimeTypeView(middle, TypeValue);
|
}, selectIndex, timevalue - 1, Language.StringByID(MyInternationalizationString.Advancedelay));
|
|
};
|
|
#endregion
|
}
|
//保存
|
SaveView saveView = new SaveView();
|
saveView.frameLayout.Y = middle.Bottom;
|
this.AddChidren(saveView.Show());
|
saveView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
if (TypeValue == 0)
|
{
|
if (timeifon.ContainsKey("AdjustTime"))
|
{
|
timeifon.Remove("AdjustTime");
|
}
|
if (timeifon.ContainsKey("StartHour"))
|
{
|
timeifon.Remove("StartHour");
|
}
|
if (timeifon.ContainsKey("StartMin"))
|
{
|
timeifon.Remove("StartMin");
|
}
|
timeifon.Add("StartHour", timeview.Hour.ToString());
|
timeifon.Add("StartMin", timeview.Minute.ToString());
|
}
|
|
if (IsEditor)
|
{
|
for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
|
{
|
if (Common.Logic.CurrentLogic.Conditions[i]["Type"] == "0")
|
{
|
|
if (Common.Logic.CurrentLogic.Conditions[i]["DateType"] == "0")
|
{
|
if (Common.Logic.CurrentLogic.Conditions[i]["StartHour"] == StartHour && Common.Logic.CurrentLogic.Conditions[i]["StartMin"] == StartMin)
|
{
|
Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
|
Common.Logic.CurrentLogic.Conditions.Insert(i, timeifon);
|
}
|
}
|
else
|
{
|
if (Common.Logic.CurrentLogic.Conditions[i]["DateType"] == DateType && Common.Logic.CurrentLogic.Conditions[i]["AdjustTime"] == AdjustTime)
|
{
|
Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
|
Common.Logic.CurrentLogic.Conditions.Insert(i, timeifon);
|
}
|
}
|
}
|
}
|
IsEditor = false;
|
}
|
else
|
{
|
Common.Logic.CurrentLogic.Conditions.Add(timeifon);
|
}
|
|
var logicCommunalPage = new LogicCommunalPage { };
|
UserView.HomePage.Instance.AddChidren(logicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
logicCommunalPage.Show(() => { });
|
|
};
|
}
|
/// <summary>
|
/// 处理选中时间类型的方法
|
/// </summary>
|
/// <param name="middle">Middle.</param>
|
void TimeTypeView(FrameLayout middle, int TypeValue)
|
{
|
UserView.HomePage.Instance.ScrollEnabled = false;
|
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor };
|
this.AddChidren(flMain);
|
#region -------取消 完成
|
CompleteView completeView = new CompleteView();
|
flMain.AddChidren(completeView.Show(4));
|
completeView.Btntitle.TextID = MyInternationalizationString.type;
|
EventHandler<MouseEventArgs> clickcancel = (sender, e) =>
|
{
|
UserView.HomePage.Instance.ScrollEnabled = true;
|
flMain.RemoveFromParent();
|
};
|
flMain.MouseUpEventHandler += clickcancel;
|
completeView.Btncancel.MouseUpEventHandler += clickcancel;
|
|
#endregion
|
#region -------日出,日落,正午,自定义
|
// 日出
|
mFunView sunriseView = new mFunView();
|
sunriseView.frameLayout.Y = Application.GetRealHeight(140 + 20);
|
completeView.Show(4).AddChidren(sunriseView.Show());
|
sunriseView.titleBtn.TextID = MyInternationalizationString.sunrise;
|
|
//日落
|
mFunView sunsetView = new mFunView();
|
sunsetView.frameLayout.Y = sunriseView.frameLayout.Bottom;
|
completeView.Show(4).AddChidren(sunsetView.Show());
|
sunsetView.titleBtn.TextID = MyInternationalizationString.sunset;
|
|
//正午
|
mFunView noonView = new mFunView();
|
noonView.frameLayout.Y = sunsetView.frameLayout.Bottom;
|
completeView.Show(4).AddChidren(noonView.Show());
|
noonView.titleBtn.TextID = MyInternationalizationString.noon;
|
|
//自定义
|
mFunView customView = new mFunView();
|
customView.frameLayout.Y = noonView.frameLayout.Bottom;
|
completeView.Show(4).AddChidren(customView.Show());
|
customView.titleBtn.TextID = MyInternationalizationString.logiccustom;
|
customView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
|
|
int value = -1;
|
sunriseView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
|
sunriseView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
sunsetView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
noonView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
customView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
sunriseView.selectedIconBtn.Visible = true;
|
sunsetView.selectedIconBtn.Visible = false;
|
noonView.selectedIconBtn.Visible = false;
|
customView.selectedIconBtn.Visible = false;
|
value = 1;
|
};
|
sunsetView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
sunriseView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
sunsetView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
noonView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
customView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
sunriseView.selectedIconBtn.Visible = false;
|
sunsetView.selectedIconBtn.Visible = true;
|
noonView.selectedIconBtn.Visible = false;
|
customView.selectedIconBtn.Visible = false;
|
value = 2;
|
};
|
noonView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
sunriseView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
sunsetView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
noonView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
customView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
sunriseView.selectedIconBtn.Visible = false;
|
sunsetView.selectedIconBtn.Visible = false;
|
noonView.selectedIconBtn.Visible = true;
|
customView.selectedIconBtn.Visible = false;
|
value = 3;
|
};
|
customView.clickviewBtn.MouseUpEventHandler +=(sender, e) =>
|
{
|
sunriseView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
sunsetView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
noonView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
customView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
sunriseView.selectedIconBtn.Visible = false;
|
sunsetView.selectedIconBtn.Visible = false;
|
noonView.selectedIconBtn.Visible = false;
|
customView.selectedIconBtn.Visible = true;
|
UserView.HomePage.Instance.ScrollEnabled = true;
|
flMain.RemoveFromParent();
|
|
if (timeifon.ContainsKey("StartHour"))
|
{
|
timeifon.Remove("StartHour");
|
}
|
if (timeifon.ContainsKey("StartMin"))
|
{
|
timeifon.Remove("StartMin");
|
}
|
if (timeifon.ContainsKey("AdjustTime"))
|
{
|
timeifon.Remove("AdjustTime");
|
}
|
if (timeifon.ContainsKey("DateType"))
|
{
|
timeifon.Remove("DateType");
|
}
|
timeifon.Add("DateType", "0");
|
timeifon.Add("StartHour", "12");
|
timeifon.Add("StartMin", "0");
|
SelectedTimeTypeView(middle, 0);
|
};
|
#endregion
|
completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
|
{
|
if (value == -1)
|
{
|
return;
|
}
|
UserView.HomePage.Instance.ScrollEnabled = true;
|
flMain.RemoveFromParent();
|
if (timeifon.ContainsKey("StartHour"))
|
{
|
timeifon.Remove("StartHour");
|
}
|
if (timeifon.ContainsKey("StartMin"))
|
{
|
timeifon.Remove("StartMin");
|
}
|
if (timeifon.ContainsKey("AdjustTime"))
|
{
|
timeifon.Remove("AdjustTime");
|
}
|
if (timeifon.ContainsKey("DateType"))
|
{
|
timeifon.Remove("DateType");
|
}
|
timeifon.Add("DateType", value.ToString());
|
timeifon.Add("AdjustTime", "0");
|
SelectedTimeTypeView(middle, value);
|
};
|
|
}
|
|
}
|
}
|