using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
|
namespace Shared.Phone.Device.CommonForm
|
{
|
public class SelectTime : FrameLayoutBase
|
{
|
public Action<int> TimeAction;
|
|
Button TempSelectBtn;
|
|
Button TempTimeBtn;
|
|
public int TempTime;
|
|
/// <summary>
|
/// Init
|
/// </summary>
|
public void Init()
|
{
|
var dialog = new FrameLayout()
|
{
|
BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
|
};
|
AddChidren(dialog);
|
|
dialog.MouseUpEventHandler += (sender, e) =>
|
{
|
RemoveFromParent();
|
};
|
|
var backgroundFL = new FrameLayout
|
{
|
Y = Application.GetRealHeight(596),
|
Height = Application.GetRealHeight(1325),
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
|
};
|
backgroundFL.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
dialog.AddChidren(backgroundFL);
|
|
var topView = new FrameLayout
|
{
|
Height = Application.GetRealHeight(138)
|
};
|
backgroundFL.AddChidren(topView);
|
|
var cancle = new Button
|
{
|
X = Application.GetRealWidth(80),
|
Width = Application.GetRealWidth(300),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
|
TextID = R.MyInternationalizationString.Cancel,
|
TextSize = 14
|
};
|
topView.AddChidren(cancle);
|
|
var title = new Button
|
{
|
Width = Application.GetRealWidth(300),
|
Gravity = Gravity.CenterHorizontal,
|
TextColor = ZigbeeColor.Current.GXCTextBlackColor2,
|
TextID = R.MyInternationalizationString.Delay,
|
TextSize = 16
|
};
|
topView.AddChidren(title);
|
|
var confrim = new Button
|
{
|
X = dialog.Width - Application.GetRealWidth(80 - 300),
|
Width = Application.GetRealWidth(300),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
|
TextID = R.MyInternationalizationString.Complete,
|
TextSize = 14
|
};
|
topView.AddChidren(confrim);
|
|
var Line = new FrameLayout()
|
{
|
Y = topView.Height - 1,
|
Height = 1,
|
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
|
};
|
topView.AddChidren(Line);
|
|
var timeLayout = new VerticalScrolViewLayout
|
{
|
Y = Application.GetRealHeight(207),
|
Height = Application.GetRealHeight(703 + 127 * 2 + 12 + 12),
|
ScrollEnabled = false,
|
VerticalScrollBarEnabled = false,
|
};
|
backgroundFL.AddChidren(timeLayout);
|
|
TempSelectBtn = new Button();
|
TempTimeBtn = new Button();
|
|
|
var notOpen = new Button
|
{
|
X = Application.GetRealWidth(80),
|
Y = Application.GetRealHeight(1200),
|
Width = Application.GetRealWidth(800),
|
Height = Application.GetRealHeight(80),
|
TextColor = ZigbeeColor.Current.GXCTextGrayColor4,
|
TextID = R.MyInternationalizationString.NotOpen,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = 14
|
};
|
backgroundFL.AddChidren(notOpen);
|
|
cancle.MouseUpEventHandler += Close;
|
confrim.MouseUpEventHandler += Confrim_MouseEvent;
|
notOpen.MouseUpEventHandler += NotOpen_MouseEvent;
|
|
var tList = new List<int>();
|
tList.Add(15);
|
tList.Add(30);
|
tList.Add(60);
|
tList.Add(60 * 5);
|
tList.Add(60 * 15);
|
tList.Add(60 * 30);
|
tList.Add(60 * 60);
|
|
foreach (var t in tList)
|
{
|
AddTime(timeLayout, t);
|
}
|
}
|
|
/// <summary>
|
/// AddTime
|
/// </summary>
|
/// <param name="verticalScrolView"></param>
|
private void AddTime(VerticalScrolViewLayout verticalScrolView, int timess)
|
{
|
var row = new FrameLayout
|
{
|
Height = Application.GetRealHeight(127 + 12),
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
|
};
|
verticalScrolView.AddChidren(row);
|
|
var trow = new FrameLayout
|
{
|
Y = Application.GetRealHeight(12),
|
Height = Application.GetRealHeight(127),
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
|
};
|
row.AddChidren(trow);
|
|
var timeBtn = new Button
|
{
|
X = Application.GetRealWidth(80),
|
Width = Application.GetRealWidth(500),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.GXCTextGrayColor4,
|
SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor,
|
IsSelected = false,
|
TextSize = 14
|
};
|
trow.AddChidren(timeBtn);
|
|
var selectBtn = new Button
|
{
|
X = Application.GetRealWidth(942),
|
Width = this.GetPictrueRealSize(60),
|
Height = this.GetPictrueRealSize(60),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Item/ItemSelected.png",
|
Visible = false
|
};
|
trow.AddChidren(selectBtn);
|
|
var Line = new FrameLayout()
|
{
|
Y = row.Height - 1,
|
Width = Application.GetRealWidth(919),
|
Height = 1,
|
Gravity = Gravity.CenterHorizontal,
|
BackgroundColor = Common.ZigbeeColor.Current.GXCGrayLineColor2
|
};
|
row.AddChidren(Line);
|
|
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
{
|
TempTimeBtn.IsSelected = false;
|
TempSelectBtn.Visible = false;
|
|
timeBtn.IsSelected = true;
|
selectBtn.Visible = true;
|
|
TempTimeBtn = timeBtn;
|
TempSelectBtn = selectBtn;
|
|
TempTime = timess;
|
};
|
|
timeBtn.MouseUpEventHandler += eventHandler;
|
trow.MouseUpEventHandler += eventHandler;
|
|
timeBtn.Text = this.GetTimeString(timess);
|
|
if (timess == TempTime)
|
{
|
timeBtn.IsSelected = true;
|
selectBtn.Visible = true;
|
TempTimeBtn = timeBtn;
|
TempSelectBtn = selectBtn;
|
}
|
|
}
|
|
/// <summary>
|
/// 获取场景延时字符串
|
/// </summary>
|
/// <param name="second"></param>
|
/// <returns></returns>
|
private string GetTimeString(int second)
|
{
|
if (second == 0)
|
{
|
return null;
|
}
|
string timeStr = string.Empty;
|
int hour = second / 3600;
|
int minu = second % 3600 / 60;
|
int sec = second % 60;
|
if (hour > 0)
|
{
|
timeStr += $"{hour}{Language.StringByID(R.MyInternationalizationString.Hour)}";
|
if (minu > 0)
|
{
|
timeStr += $"{minu}{Language.StringByID(R.MyInternationalizationString.Minute)}";
|
}
|
if (sec > 0)
|
{
|
timeStr += $"{sec}{Language.StringByID(R.MyInternationalizationString.Second)}";
|
}
|
return timeStr;
|
}
|
else if (minu > 0)
|
{
|
timeStr += $"{minu}{Language.StringByID(R.MyInternationalizationString.Minute)}";
|
if (sec > 0)
|
{
|
timeStr += $"{sec}{Language.StringByID(R.MyInternationalizationString.Second)}";
|
}
|
return timeStr;
|
}
|
else
|
{
|
return $"{sec}{Language.StringByID(R.MyInternationalizationString.Second)}";
|
}
|
}
|
|
/// <summary>
|
/// Close
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="mouseEventArgs"></param>
|
private void Close(object sender, MouseEventArgs mouseEventArgs)
|
{
|
RemoveFromParent();
|
}
|
|
/// <summary>
|
/// Confrim_MouseEvent
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="mouseEventArgs"></param>
|
private void Confrim_MouseEvent(object sender, MouseEventArgs mouseEventArgs)
|
{
|
TimeAction.Invoke(TempTime);
|
RemoveFromParent();
|
}
|
|
/// <summary>
|
/// NotOpen_MouseEvent
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="mouseEventArgs"></param>
|
private void NotOpen_MouseEvent(object sender, MouseEventArgs mouseEventArgs)
|
{
|
TimeAction.Invoke(0);
|
RemoveFromParent();
|
}
|
|
}
|
}
|