using System;
|
using System.Collections.Generic;
|
using Shared;
|
using Shared.SimpleControl;
|
using Shared.SimpleControl.R;
|
|
namespace SuperGateWay
|
{
|
public class TimePage : FrameLayout
|
{
|
public TimePage ()
|
{
|
Tag = "Logic";
|
}
|
public bool IsDeviceEditor;
|
public string str;
|
/// <summary>
|
/// 开始时间;
|
/// </summary>
|
Button btnStartTime;
|
/// <summary>
|
/// 结束时间;
|
/// </summary>
|
Button btnEndTime;
|
/// <summary>
|
/// 日头选择
|
/// </summary>
|
Button btnSun;
|
/// <summary>
|
/// 时间显示RowLayout
|
/// </summary>
|
RowLayout timerowlayout;
|
|
//inputifon.sid=common.functions.
|
|
/// <summary>
|
/// 显示开始时间和结束时间方法;
|
/// </summary>
|
/// <param name="viewGroup">View group.</param>
|
void initTime (ViewGroup viewGroup)
|
{
|
var startTimeRowLayout = new RowLayout {
|
Height = Application.GetRealHeight (100),
|
};
|
viewGroup.AddChidren (startTimeRowLayout);
|
|
var starttext = new Button {
|
X = Application.GetRealWidth (40),
|
TextAlignment = TextAlignment.CenterLeft,
|
Gravity = Gravity.CenterVertical,
|
//Text = "开始时间",
|
Width = Application.GetRealWidth (210),
|
TextID = MyInternationalizationString.starttime,
|
};
|
startTimeRowLayout.AddChidren (starttext);
|
|
///显示开始时间控件
|
btnStartTime = new Button {
|
Width = Application.GetRealWidth (200),
|
Height = Application.GetRealHeight (100),
|
X = Application.GetRealWidth (250),
|
Gravity = Gravity.CenterVertical,
|
Tag = 0,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
startTimeRowLayout.AddChidren (btnStartTime);
|
|
var btnStartback = new Button {
|
Width = Application.GetRealWidth (87),
|
Height = Application.GetRealHeight (100),
|
UnSelectedImagePath = "MusicIcon/Next.png",
|
SelectedImagePath = "MusicIcon/NextSelecte.png",
|
X = Application.GetRealWidth (550),
|
};
|
startTimeRowLayout.AddChidren (btnStartback);
|
///开始时间点击事件
|
EventHandler<MouseEventArgs> startclick = (sender, e) => {
|
#region 年,月,日,时,分,秒
|
//Shared.TimeView
|
//Shared.DateView
|
//var year = 18, m = 1, d = 3;
|
//var v = (((uint)year) << 24) | (((uint)month) << 16 | ((uint (d) << 8));
|
//compare,<,=,>,
|
#endregion
|
|
|
startTimeRowLayout.BackgroundColor = 0xffFE5E00;
|
timerowlayout.BackgroundColor = 0x00000000;
|
var dialogTime = new DiaLogTime ();
|
dialogTime.Action = (time) => {
|
startTimeRowLayout.BackgroundColor = 0x00000000;
|
if (time < 0) {
|
return;
|
}
|
if (btnEndTime.Tag.ToString () != "0" && time > int.Parse (btnEndTime.Tag.ToString ())) {
|
var alert = new Alert (Language.StringByID (MyInternationalizationString.Prompt),
|
Language.StringByID (MyInternationalizationString.timesetting),
|
Language.StringByID (MyInternationalizationString.OK));
|
alert.Show ();
|
} else {
|
|
string h = "";
|
string s = "";
|
if ((time / 60) < 10) {
|
h = "0" + time / 60;
|
}else{
|
h = (time / 60).ToString();
|
}
|
if ((time % 60) < 10) {
|
s = "0" + time % 60;
|
} else {
|
s = (time % 60).ToString ();
|
}
|
|
btnStartTime.Text = h + ":" + s;//time / 60 + ":" + time % 60;
|
btnStartTime.Tag = time;
|
|
if (string.IsNullOrEmpty (btnEndTime.Text)) {
|
btnEndTime.Text = h + ":" + s;//time / 60 + ":" + time % 60;
|
btnEndTime.Tag = time;
|
}
|
|
}
|
};
|
dialogTime.Show ();
|
};
|
startTimeRowLayout.MouseUpEventHandler += startclick;
|
btnStartTime.MouseUpEventHandler += startclick;
|
starttext.MouseUpEventHandler += startclick;
|
btnStartback.MouseUpEventHandler += startclick;
|
|
var endTimeRowLayout = new RowLayout {
|
Height = Application.GetRealHeight (100),
|
};
|
viewGroup.AddChidren (endTimeRowLayout);
|
|
var endtext = new Button {
|
X = Application.GetRealWidth (40),
|
TextAlignment = TextAlignment.CenterLeft,
|
Gravity = Gravity.CenterVertical,
|
TextID = MyInternationalizationString.endtime,
|
Width = Application.GetRealWidth (210),
|
//Text = "结束时间",
|
};
|
endTimeRowLayout.AddChidren (endtext);
|
|
///显示结束时间控件
|
btnEndTime = new Button {
|
Width = Application.GetRealWidth (200),
|
Height = Application.GetRealHeight (100),
|
X = Application.GetRealWidth (250),
|
Gravity = Gravity.CenterVertical,
|
Tag = 0,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
endTimeRowLayout.AddChidren (btnEndTime);
|
|
var btnendback = new Button {
|
Width = Application.GetRealWidth (87),
|
Height = Application.GetRealHeight (100),
|
UnSelectedImagePath = "MusicIcon/Next.png",
|
SelectedImagePath = "MusicIcon/NextSelecte.png",
|
X = Application.GetRealWidth (550),
|
};
|
endTimeRowLayout.AddChidren (btnendback);
|
///结束时间点击事件
|
EventHandler<MouseEventArgs> endclick = (sender, e) => {
|
endTimeRowLayout.BackgroundColor = 0xffFE5E00;
|
timerowlayout.BackgroundColor = 0x00000000;
|
var dialogTime = new DiaLogTime ();
|
dialogTime.Action = (time) => {
|
endTimeRowLayout.BackgroundColor = 0x00000000;
|
if (time < 0) {
|
return;
|
}
|
if (btnStartTime.Tag.ToString () != "0" && time < int.Parse (btnStartTime.Tag.ToString ())) {
|
var alert = new Alert (Language.StringByID (MyInternationalizationString.Prompt),
|
Language.StringByID (MyInternationalizationString.timesetting),
|
Language.StringByID (MyInternationalizationString.OK));
|
alert.Show ();
|
} else {
|
|
string h = "";
|
string s = "";
|
if ((time / 60) < 10) {
|
h = "0" + time / 60;
|
} else {
|
h = (time / 60).ToString ();
|
}
|
if ((time % 60) < 10) {
|
s = "0" + time %60;
|
} else {
|
s = (time % 60).ToString ();
|
}
|
|
btnEndTime.Text = h + ":" + s; //time / 60 + ":" + time % 60;
|
btnEndTime.Tag = time;
|
|
if (string.IsNullOrEmpty (btnStartTime.Text)) {
|
btnStartTime.Text = h + ":" + s;//time / 60 + ":" + time % 60;
|
btnStartTime.Tag = time;
|
}
|
}
|
};
|
dialogTime.Show ();
|
};
|
endTimeRowLayout.MouseUpEventHandler += endclick;
|
btnEndTime.MouseUpEventHandler += endclick;
|
endtext.MouseUpEventHandler += endclick;
|
btnendback.MouseUpEventHandler += endclick;
|
|
|
|
}
|
|
public void Show (GateWay superGateWay)
|
{
|
this.AddChidren (new Button {
|
Height = Application.GetRealHeight (30),
|
BackgroundColor = 0xFF1F1F1F,
|
});
|
|
var topFrameLayout = new FrameLayout {
|
Height = Application.GetRealHeight (100),
|
Y = Application.GetRealHeight (30),
|
BackgroundColor = 0xFF1F1F1F,
|
};
|
AddChidren (topFrameLayout);
|
|
var titleName = new Button {
|
Text = Language.StringByID (MyInternationalizationString.timecondition),
|
TextSize = 17,
|
};
|
topFrameLayout.AddChidren (titleName);
|
|
var hdl = new Button {
|
Width = Application.GetRealWidth (154),
|
Height = Application.GetRealHeight (90),
|
X = Application.GetRealWidth (486),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Logo/Logo.png",
|
};
|
topFrameLayout.AddChidren (hdl);
|
|
var back = new Button {
|
Width = Application.GetRealWidth (82),
|
Height = Application.GetRealHeight (89),
|
X = Application.GetRealWidth (10),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "MusicIcon/HomepageBack.png",
|
};
|
topFrameLayout.AddChidren (back);
|
back.MouseDownEventHandler += (sender, e) => {
|
RemoveFromParent ();
|
IsDeviceEditor = false;
|
};
|
|
var titlerl = new RowLayout {
|
Y = topFrameLayout.Bottom,
|
Height = Application.GetRealHeight (110),
|
BackgroundColor = 0xff0f0f0f,
|
};
|
AddChidren (titlerl);
|
///时间条件
|
var btntitlerl = new Button {
|
//Text = "请根据你的需要设置日程",
|
TextSize = 17,
|
TextID = MyInternationalizationString.schedule,
|
X = Application.GetRealWidth (40),
|
Width = Application.GetRealWidth (500),
|
Gravity = Gravity.CenterVertical,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
titlerl.AddChidren (btntitlerl);
|
|
var middle = new VerticalScrolViewLayout ();
|
middle.Y = titlerl.Bottom;
|
middle.Height = Application.GetRealHeight (Application.DesignHeight - 130 - 80 - 110);
|
middle.BackgroundColor = 0xff2F2F2F;
|
this.AddChidren (middle);
|
|
timerowlayout = new RowLayout {
|
Height = Application.GetRealHeight (100),
|
};
|
if (str != "false"||str==null) {
|
middle.AddChidren (timerowlayout);
|
}
|
///时间
|
var btntime = new Button {
|
//Text = "时间",
|
TextAlignment = TextAlignment.CenterLeft,
|
Width = Application.GetRealWidth (150),
|
X = Application.GetRealWidth (40),
|
TextID = MyInternationalizationString.time
|
};
|
timerowlayout.AddChidren (btntime);
|
///显示时间段的控件
|
var Btntime = new Button {
|
X = Application.GetRealWidth (200),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetRealWidth (300),
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
timerowlayout.AddChidren (Btntime);
|
|
var btntimeback = new Button {
|
Width = Application.GetRealWidth (87),
|
Height = Application.GetRealHeight (100),
|
UnSelectedImagePath = "MusicIcon/Next.png",
|
SelectedImagePath = "MusicIcon/NextSelecte.png",
|
X = Application.GetRealWidth (550),
|
};
|
timerowlayout.AddChidren (btntimeback);
|
|
var timeVerticalScrolViewLayout = new VerticalScrolViewLayout {
|
Height = 0,
|
BackgroundColor = 0xff121212,
|
};
|
middle.AddChidren (timeVerticalScrolViewLayout);
|
|
var sunriserowlayout = new RowLayout {
|
Height = Application.GetRealHeight (100),
|
};
|
if (str == "false" || str == null) {
|
middle.AddChidren (sunriserowlayout);
|
}
|
///日出/日落
|
var btnsunrise = new Button {
|
TextAlignment = TextAlignment.CenterLeft,
|
X = Application.GetRealWidth (40),
|
Width = Application.GetRealWidth (150),
|
Gravity = Gravity.CenterVertical,
|
TextID = MyInternationalizationString.Sunrisesunset,
|
};
|
sunriserowlayout.AddChidren (btnsunrise);
|
///显示选中(日出/日落)的控件
|
btnSun = new Button {
|
TextAlignment = TextAlignment.CenterLeft,
|
X = Application.GetRealWidth (200),
|
Width = Application.GetRealWidth (300),
|
Gravity = Gravity.CenterVertical,
|
Text = Language.StringByID (MyInternationalizationString.disable1),
|
};
|
sunriserowlayout.AddChidren (btnSun);
|
|
|
var btnSunriseback = new Button {
|
Width = Application.GetRealWidth (87),
|
Height = Application.GetRealHeight (100),
|
UnSelectedImagePath = "MusicIcon/Next.png",
|
SelectedImagePath = "MusicIcon/NextSelecte.png",
|
X = Application.GetRealWidth (550),
|
};
|
sunriserowlayout.AddChidren (btnSunriseback);
|
|
|
initTime (timeVerticalScrolViewLayout);
|
|
|
if (IsDeviceEditor) {
|
if (str != null && str != "false") {
|
string h1 = "";
|
string s1 = "";
|
string h2 = "";
|
string s2 = "";
|
|
string [] timestr = str.Split ('-');
|
string [] starttime = timestr [0].Split (':');
|
string [] endtime = timestr [1].Split (':');
|
|
if (starttime [0].Length < 2) {
|
h1 = "0" + starttime [0];
|
} else {
|
h1 = starttime [0];
|
}
|
if (starttime [1].Length < 2) {
|
s1 = "0" + starttime [1];
|
} else {
|
s1 = starttime [1];
|
}
|
|
|
if (endtime [0].Length < 2) {
|
h2 = "0" + endtime [0];
|
} else {
|
h2 = endtime [0];
|
}
|
|
if (endtime [1].Length < 2) {
|
s2 = "0" + endtime [1];
|
} else {
|
s2 = endtime [1];
|
}
|
|
|
btnStartTime.Text = h1 + ":" + s1;
|
btnEndTime.Text = h2 + ":" + s2;
|
|
|
Btntime.Text = btnStartTime.Text + "-" + btnEndTime.Text;
|
|
btnStartTime.Tag = int.Parse (starttime [0]) * 60 + int.Parse (starttime [1]);
|
btnEndTime.Tag = int.Parse (endtime [0]) * 60 + int.Parse (endtime [1]);
|
}
|
|
|
string strleng = "";
|
if (Logic.CurrentLogic.sunrise.type == 1) {
|
strleng = Language.StringByID (MyInternationalizationString.sunrise);
|
} else if (Logic.CurrentLogic.sunrise.type == 2) {
|
strleng = Language.StringByID (MyInternationalizationString.sunset);
|
} else if (Logic.CurrentLogic.sunrise.type == 3) {
|
strleng = Language.StringByID (MyInternationalizationString.beforesunrise1);
|
} else if (Logic.CurrentLogic.sunrise.type == 4) {
|
strleng = Language.StringByID (MyInternationalizationString.aftersunrise1);
|
} else if (Logic.CurrentLogic.sunrise.type == 5) {
|
strleng = Language.StringByID (MyInternationalizationString.beforesunset);
|
} else if (Logic.CurrentLogic.sunrise.type == 6) {
|
strleng = Language.StringByID (MyInternationalizationString.aftersunset);
|
}
|
if (Logic.CurrentLogic.sunrise.time != "") {
|
string [] min = Logic.CurrentLogic.sunrise.time.Split (':');
|
btnSun.Text = strleng + min[1].ToString()+Language.StringByID (MyInternationalizationString.minute1);
|
|
}else{
|
btnSun.Text = strleng;
|
}
|
|
|
}
|
|
|
|
///时间点击事件
|
EventHandler<MouseEventArgs> timesclick = (sender, e) => {
|
|
timerowlayout.BackgroundColor = 0xffFE5E00;
|
sunriserowlayout.BackgroundColor = 0x00000000;
|
btntime.IsSelected = !btntime.IsSelected;
|
if (btntime.IsSelected) {
|
timeVerticalScrolViewLayout.Height = Application.GetRealWidth (200);
|
} else {
|
timerowlayout.BackgroundColor = 0x00000000;//
|
timeVerticalScrolViewLayout.Height = 0;
|
}
|
};
|
timerowlayout.MouseUpEventHandler += timesclick;
|
btntime.MouseUpEventHandler += timesclick;
|
btntimeback.MouseUpEventHandler += timesclick;
|
Btntime.MouseUpEventHandler += timesclick;
|
|
///(日出/日落)点击事件
|
EventHandler<MouseEventArgs> sunclick = (sender, e) => {
|
|
//sunriserowlayout.BackgroundColor = 0xffFE5E00;
|
//timerowlayout.BackgroundColor = 0x00000000;
|
|
//PickerView.Show (new List<string> {
|
// Language.StringByID (MyInternationalizationString.disable1),
|
// Language.StringByID (MyInternationalizationString.sunrise),
|
// Language.StringByID (MyInternationalizationString.sunset),
|
// Language.StringByID (MyInternationalizationString.beforesunrise1),
|
// Language.StringByID (MyInternationalizationString.aftersunrise1),
|
// Language.StringByID (MyInternationalizationString.beforesunset),
|
// Language.StringByID (MyInternationalizationString.aftersunset),
|
|
//}, (s) => {
|
// switch (s) {
|
// case "不启用":
|
// case "Disable":
|
// Logic.CurrentLogic.sunrise.type = 0;
|
// break;
|
// case "日出":
|
// case "Sunrise":
|
// Logic.CurrentLogic.sunrise.type = 1;
|
// break;
|
// case "日落":
|
// case "Sunset":
|
// Logic.CurrentLogic.sunrise.type = 2;
|
// break;
|
// case "日出前":
|
// case "Before sunrise":
|
// Logic.CurrentLogic.sunrise.type = 3;
|
// break;
|
// case "日出后":
|
// case "After sunrise":
|
// Logic.CurrentLogic.sunrise.type = 4;
|
// break;
|
// case "日落前":
|
// case "Before sunset":
|
// Logic.CurrentLogic.sunrise.type = 5;
|
|
// break;
|
// case "日落后":
|
// case "After sunset":
|
// Logic.CurrentLogic.sunrise.type = 6;
|
// break;
|
// }
|
// if (Logic.CurrentLogic.sunrise.type == 3 || Logic.CurrentLogic.sunrise.type == 4 || Logic.CurrentLogic.sunrise.type == 5|| Logic.CurrentLogic.sunrise.type == 6) {
|
// new System.Threading.Thread (() => {
|
// var list = new List<string> ();
|
// for (int min = 1; min <= 60; min++) {
|
// list.Add (min.ToString () + " " + Language.StringByID (MyInternationalizationString.minute1));
|
// }
|
// System.Threading.Thread.Sleep (500);
|
// Application.RunOnMainThread (() => {
|
// PickerView.Show (list, (time) => {
|
// var min = time.Split (' ') [0];
|
// btnSun.Text = s + time;
|
// Logic.CurrentLogic.sunrise.time = "00:" + min + ":00";
|
// sunriserowlayout.BackgroundColor = 0x00000000;
|
// }, Language.StringByID (MyInternationalizationString.complete), "112");
|
|
// });
|
// }) { IsBackground = true }.Start ();
|
// }else{
|
// btnSun.Text = s;
|
// sunriserowlayout.BackgroundColor = 0x00000000;
|
// Logic.CurrentLogic.sunrise.time = "";
|
// }
|
|
//}, Language.StringByID (MyInternationalizationString.complete), Language.StringByID (MyInternationalizationString.sunrisebefore));
|
|
|
|
};
|
sunriserowlayout.MouseUpEventHandler += sunclick;
|
btnsunrise.MouseUpEventHandler += sunclick;
|
btnSun.MouseUpEventHandler += sunclick;
|
btnSunriseback.MouseUpEventHandler += sunclick;
|
///
|
|
|
var btnComplete = new Button {
|
Y = middle.Bottom,
|
Height = Application.GetRealHeight (80),
|
TextID = MyInternationalizationString.complete,
|
BackgroundColor = 0xff1F1F1F,
|
TextSize = 16,
|
};
|
AddChidren (btnComplete);
|
|
///完成点击事件
|
btnComplete.MouseUpEventHandler += (sender, e) => {
|
if (btnStartTime.Text == null && btnEndTime.Text == null && btnSun.Text == Language.StringByID (MyInternationalizationString.disable1)) {
|
var alert = new Alert (Language.StringByID (MyInternationalizationString.Prompt),
|
Language.StringByID (MyInternationalizationString.completeNext),
|
Language.StringByID (MyInternationalizationString.OK));
|
alert.Show ();
|
return;
|
} else if (btnStartTime.Text == null && btnEndTime.Text != null) {
|
btnStartTime.Text = btnEndTime.Text;
|
} else if (btnEndTime.Text == null && btnStartTime.Text != null) {
|
btnEndTime.Text = btnStartTime.Text;
|
}
|
//else {
|
// var alert = new Alert (Language.StringByID (MyInternationalizationString.Prompt),
|
// Language.StringByID (MyInternationalizationString.Support8),
|
// Language.StringByID (MyInternationalizationString.OK));
|
// alert.Show ();
|
// return;
|
//}
|
if (Logic.CurrentLogic.time.Count == 8) {
|
new Alert (Language.StringByID (MyInternationalizationString.Tip),Language.StringByID (MyInternationalizationString.Support8), Language.StringByID (MyInternationalizationString.Close)).Show ();
|
return;
|
}
|
if (IsDeviceEditor) {
|
for (int i = 0; i < Logic.CurrentLogic.time.Count; i++) {
|
if (Logic.CurrentLogic.time [i] == str) {
|
Logic.CurrentLogic.time.RemoveAt (i);
|
Logic.CurrentLogic.time.Insert (i, btnStartTime.Text+":00" + "-" + btnEndTime.Text+":00");
|
break;
|
}
|
}
|
} else {
|
if (btnStartTime.Text != null && btnEndTime.Text != null) {
|
Logic.CurrentLogic.time.Add (btnStartTime.Text + ":00" + "-" + btnEndTime.Text + ":00");
|
}
|
}
|
|
var logicCommunalPage = new LogicCommunalPage () { };
|
MainPage.MainFrameLayout.AddChidren (logicCommunalPage);
|
logicCommunalPage.Show (superGateWay, () => { });
|
};
|
}
|
|
class DiaLogTime : Dialog
|
{
|
public DiaLogTime ()
|
{
|
//点击到空白的地方后自动退出
|
flMain.MouseUpEventHandler += (sender, e) => {
|
flMain.RemoveFromParent ();
|
this.Close ();
|
if (Action != null) {
|
Action (-1);
|
}
|
};
|
}
|
/// <summary>
|
/// 背景控件
|
/// </summary>
|
FrameLayout flMain = new FrameLayout { BackgroundColor = 0x00000000 };
|
|
/// <summary>
|
/// 取消或者确定的结果
|
/// </summary>
|
public Action<int> Action;
|
|
public void Show ()
|
{
|
base.Show ();
|
base.AddChidren (flMain);
|
|
var timeViewStart = new TimeView {
|
Y = Application.GetRealHeight (Application.DesignHeight - 320),
|
Height = Application.GetRealHeight (320),
|
BackgroundColor = 0xFFFFFFFF
|
};
|
flMain.AddChidren (timeViewStart);
|
|
var btnSave = new Button {
|
Y = Application.GetRealHeight (Application.DesignHeight - 320),
|
Width = Application.GetRealWidth (100),
|
Height = Application.GetRealHeight (100),
|
Text = Language.StringByID (MyInternationalizationString.complete),
|
TextColor = 0xFF121212,
|
//TextAlignment = TextAlignment.CenterRight
|
X = Application.GetRealWidth (640 - 100),
|
};
|
flMain.AddChidren (btnSave);
|
|
btnSave.MouseUpEventHandler += (sender2, e2) => {
|
Action (timeViewStart.Hour * 60 + timeViewStart.Minute);
|
this.Close ();
|
///
|
flMain.RemoveFromParent ();
|
};
|
}
|
}
|
|
}
|
}
|