using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
namespace Shared.Phone.Device.Category
|
{
|
public class CategorySceneSelectedDelayTime : FrameLayout
|
{
|
|
public CategorySceneSelectedDelayTime()
|
{
|
BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor;
|
Tag = "categoryAddScene";
|
}
|
public override void RemoveFromParent()
|
{
|
base.RemoveFromParent();
|
}
|
public Button customBtn;
|
public SceneTargetDeviceUI SceneTargetDevice = new SceneTargetDeviceUI { Type = 1 };
|
public List<string> TimeList = new List<string> { "1_秒_1", "5_秒_5", "10_秒_10", "1_分钟_60" };
|
/// <summary>
|
/// 添加时间间隔为执行目标 state = -1 不选择,代表新增。state=1 时,targetDeviceID代表传进来的目标id
|
/// </summary>
|
/// <param name="state">State.</param>
|
/// <param name="targetDeviceID">Target device identifier.</param>
|
/// <param name="delayTime">Delay time.</param>
|
/// <param name="isFromRoom">If set to <c>true</c> is from room.</param>
|
public void Show(int state = -1, string targetDeviceID = "", int delayTime = -1, bool isFromRoom = false)
|
{
|
#region topview
|
var topBGView = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(CommonPage.Navigation_Height),
|
BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor
|
};
|
AddChidren(topBGView);
|
var topView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(CommonPage.NavigationTitle_Y),
|
Height = Application.GetRealHeight(CommonPage.Navigation_Height - CommonPage.NavigationTitle_Y),
|
BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
|
};
|
AddChidren(topView);
|
|
var title = new Button()
|
{
|
TextAlignment = TextAlignment.Center,
|
TextID = R.MyInternationalizationString.TimeSpan,
|
TextSize = 20,
|
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
|
Width = Application.GetRealWidth(CommonPage.AppRealWidth - 500),
|
Gravity = Gravity.CenterHorizontal
|
};
|
topView.AddChidren(title);
|
|
var back = new Button()
|
{
|
X = Application.GetRealWidth(CommonPage.Navigation_X),
|
Height = Application.GetMinRealAverage(110),
|
Width = Application.GetMinRealAverage(110),
|
UnSelectedImagePath = "Item/Back.png",
|
SelectedImagePath = "Item/BackSelected.png",
|
Gravity = Gravity.CenterVertical
|
};
|
topView.AddChidren(back);
|
back.MouseUpEventHandler += (sender, e) =>
|
{
|
this.RemoveFromParent();
|
};
|
#endregion
|
|
#region midFL
|
var midFL = new VerticalScrolViewLayout()
|
{
|
Y = topView.Bottom,
|
Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.Navigation_Height),
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
|
ScrollEnabled = false
|
};
|
AddChidren(midFL);
|
foreach (var timeStr in TimeList)
|
{
|
var timeRowView = new RowLayout()
|
{
|
Height = Application.GetRealHeight(170),
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
|
LineColor = ZigbeeColor.Current.GXCLineColor
|
};
|
midFL.AddChidren(timeRowView);
|
|
var timeFL = new FrameLayout()
|
{
|
|
};
|
timeRowView.AddChidren(timeFL);
|
|
var timeUnitStr = string.Empty;
|
if (timeStr.Split('_')[1] == "秒")
|
{
|
timeUnitStr = Language.StringByID(R.MyInternationalizationString.Second);
|
}
|
else
|
{
|
timeUnitStr = Language.StringByID(R.MyInternationalizationString.Minute);
|
}
|
|
var timeBtn = new Button()
|
{
|
X = Application.GetRealWidth(50),
|
Width = Application.GetRealWidth(500),
|
Text = $"{timeStr.Split('_')[0]} {timeUnitStr}",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
|
SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor,
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
|
Gravity = Gravity.CenterVertical
|
};
|
timeRowView.AddChidren(timeBtn);
|
var timeBtnSelected = new Button()
|
{
|
X = timeRowView.Width - Application.GetRealWidth(150),
|
Width = Application.GetMinRealAverage(110),
|
Height = Application.GetMinRealAverage(110),
|
UnSelectedImagePath = "Item/YesSelected.png",
|
Visible = false,
|
Gravity = Gravity.CenterVertical
|
};
|
timeRowView.AddChidren(timeBtnSelected);
|
void selectTimeMouseDownEvent(object sender, MouseEventArgs e)
|
{
|
timeBtn.IsSelected = true;
|
timeBtnSelected.Visible = true;
|
new System.Threading.Thread(() =>
|
{
|
System.Threading.Thread.Sleep(200);
|
Application.RunOnMainThread(() =>
|
{
|
timeBtn.IsSelected = false;
|
timeBtnSelected.Visible = false;
|
});
|
})
|
{ IsBackground = true }.Start();
|
}
|
timeBtn.MouseDownEventHandler += selectTimeMouseDownEvent;
|
timeRowView.MouseDownEventHandler += selectTimeMouseDownEvent;
|
timeFL.MouseDownEventHandler += selectTimeMouseDownEvent;
|
|
void selectTimeMouseUpEvent(object sender, MouseEventArgs e)
|
{
|
//timeBtn.IsSelected = false;
|
//timeBtnSelected.Visible = false;
|
//timeBtn.IsSelected = true;
|
//timeBtnSelected.Visible = true;
|
|
SceneTargetDevice.DelayTime = int.Parse(timeStr.Split('_')[2]);
|
if(state==-1)
|
{
|
if(isFromRoom)
|
{
|
Room.AddRoomScene.sceneTargetDevicesList.Add(SceneTargetDevice);
|
UserView.HomePage.Instance.RemoveViewByTag("categoryAddScene");
|
var roomAddScene = new Room.AddRoomScene();
|
UserView.HomePage.Instance.AddChidren(roomAddScene);
|
UserView.HomePage.Instance.PageIndex += 1;
|
roomAddScene.Show(Room.AddRoomScene.CurrentRoom);
|
}
|
else
|
{
|
CategoryAddScene.sceneTargetDevicesList.Add(SceneTargetDevice);
|
UserView.HomePage.Instance.RemoveViewByTag("categoryAddScene");
|
var categoryAddScene = new CategoryAddScene();
|
UserView.HomePage.Instance.AddChidren(categoryAddScene);
|
UserView.HomePage.Instance.PageIndex += 1;
|
categoryAddScene.Show();
|
}
|
}
|
else
|
{
|
if(isFromRoom)
|
{
|
if (!string.IsNullOrEmpty(targetDeviceID))
|
{
|
var targetDeviceUI = Room.AddRoomScene.sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == targetDeviceID);
|
if (targetDeviceUI != null)
|
{
|
targetDeviceUI.DelayTime = SceneTargetDevice.DelayTime;
|
targetDeviceUI.Type = SceneTargetDevice.Type;
|
}
|
}
|
UserView.HomePage.Instance.RemoveViewByTag("categoryAddScene");
|
var roomAddScene = new Room.AddRoomScene();
|
UserView.HomePage.Instance.AddChidren(roomAddScene);
|
UserView.HomePage.Instance.PageIndex += 1;
|
roomAddScene.Show(Room.AddRoomScene.CurrentRoom);
|
}
|
else
|
{
|
if (!string.IsNullOrEmpty(targetDeviceID))
|
{
|
var targetDeviceUI = CategoryAddScene.sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == targetDeviceID);
|
if (targetDeviceUI != null)
|
{
|
targetDeviceUI.DelayTime= SceneTargetDevice.DelayTime;
|
targetDeviceUI.Type = SceneTargetDevice.Type;
|
}
|
}
|
UserView.HomePage.Instance.RemoveViewByTag("categoryAddScene");
|
var categoryAddScene = new CategoryAddScene();
|
UserView.HomePage.Instance.AddChidren(categoryAddScene);
|
UserView.HomePage.Instance.PageIndex += 1;
|
categoryAddScene.Show();
|
}
|
}
|
}
|
timeBtn.MouseUpEventHandler += selectTimeMouseUpEvent;
|
timeRowView.MouseUpEventHandler += selectTimeMouseUpEvent;
|
timeFL.MouseUpEventHandler += selectTimeMouseUpEvent;
|
}
|
//自定义
|
var customRowView = new RowLayout()
|
{
|
Height = Application.GetRealHeight(170),
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
|
LineColor = ZigbeeColor.Current.GXCLineColor
|
};
|
midFL.AddChidren(customRowView);
|
customBtn = new Button()
|
{
|
X = Application.GetRealWidth(50),
|
Width = Application.GetRealWidth(500),
|
TextID=R.MyInternationalizationString.Custom,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
|
SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor,
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
|
Gravity = Gravity.CenterVertical
|
};
|
customRowView.AddChidren(customBtn);
|
var customBtnSelected = new Button()
|
{
|
X = customRowView.Width - Application.GetRealWidth(150),
|
Width = Application.GetMinRealAverage(110),
|
Height = Application.GetMinRealAverage(110),
|
UnSelectedImagePath = "Item/YesSelected.png",
|
Visible = false,
|
Gravity = Gravity.CenterVertical
|
};
|
customRowView.AddChidren(customBtnSelected);
|
|
void customMouseDownEvent(object sender, MouseEventArgs e)
|
{
|
customBtn.IsSelected = true;
|
customBtnSelected.Visible = true;
|
}
|
customBtn.MouseDownEventHandler += customMouseDownEvent;
|
customRowView.MouseDownEventHandler += customMouseDownEvent;
|
|
void customMouseUpEvent(object sender,MouseEventArgs e)
|
{
|
customBtn.IsSelected = false;
|
customBtnSelected.Visible = false;
|
var tList = new List<string> { };
|
for (int i = 1; i <= 60; i++)
|
{
|
tList.Add($"{i} {Language.StringByID(R.MyInternationalizationString.Second)}");
|
}
|
//1-60秒
|
//PickerView.Show(tList, (obj) =>
|
//{
|
// SceneTargetDevice.DelayTime = int.Parse(obj.Split(' ')[0]);
|
|
// if (state == -1)
|
// {
|
// if (isFromRoom)
|
// {
|
// Room.AddRoomScene.sceneTargetDevicesList.Add(SceneTargetDevice);
|
// UserView.HomePage.Instance.RemoveViewByTag("categoryAddScene");
|
// var roomAddScene = new Room.AddRoomScene();
|
// UserView.HomePage.Instance.AddChidren(roomAddScene);
|
// UserView.HomePage.Instance.PageIndex += 1;
|
// roomAddScene.Show(Room.AddRoomScene.CurrentRoom);
|
// }
|
// else
|
// {
|
// CategoryAddScene.sceneTargetDevicesList.Add(SceneTargetDevice);
|
// UserView.HomePage.Instance.RemoveViewByTag("categoryAddScene");
|
// var categoryAddScene = new CategoryAddScene();
|
// UserView.HomePage.Instance.AddChidren(categoryAddScene);
|
// UserView.HomePage.Instance.PageIndex += 1;
|
// categoryAddScene.Show();
|
// }
|
// }
|
// else
|
// {
|
// if (isFromRoom)
|
// {
|
// if (!string.IsNullOrEmpty(targetDeviceID))
|
// {
|
// var targetDeviceUI = Room.AddRoomScene.sceneTargetDevicesList.Find((obj1) => obj1.SceneTargetDeviceUIID == targetDeviceID);
|
// if (targetDeviceUI != null)
|
// {
|
// targetDeviceUI.DelayTime = SceneTargetDevice.DelayTime;
|
// targetDeviceUI.Type = SceneTargetDevice.Type;
|
// }
|
// }
|
// UserView.HomePage.Instance.RemoveViewByTag("categoryAddScene");
|
// var roomAddScene = new Room.AddRoomScene();
|
// UserView.HomePage.Instance.AddChidren(roomAddScene);
|
// UserView.HomePage.Instance.PageIndex += 1;
|
// roomAddScene.Show(Room.AddRoomScene.CurrentRoom);
|
// }
|
// else
|
// {
|
// if (!string.IsNullOrEmpty(targetDeviceID))
|
// {
|
// var targetDeviceUI = CategoryAddScene.sceneTargetDevicesList.Find((obj1) => obj1.SceneTargetDeviceUIID == targetDeviceID);
|
// if (targetDeviceUI != null)
|
// {
|
// targetDeviceUI.DelayTime = SceneTargetDevice.DelayTime;
|
// targetDeviceUI.Type = SceneTargetDevice.Type;
|
// }
|
// }
|
// UserView.HomePage.Instance.RemoveViewByTag("categoryAddScene");
|
// var categoryAddScene = new CategoryAddScene();
|
// UserView.HomePage.Instance.AddChidren(categoryAddScene);
|
// UserView.HomePage.Instance.PageIndex += 1;
|
// categoryAddScene.Show();
|
// }
|
// }
|
//}, Language.StringByID(R.MyInternationalizationString.Confrim));
|
}
|
customBtn.MouseDownEventHandler += customMouseUpEvent;
|
customRowView.MouseDownEventHandler += customMouseUpEvent;
|
|
#endregion
|
|
#region event
|
|
#endregion
|
}
|
|
}
|
}
|