using System;
using System.Collections.Generic;
using System.Globalization;
using Shared.Common;
using Shared.Phone.Device.CommonForm;
using Shared.Phone.Device.Room;
using Shared.Phone.UserCenter;
using static ZigBee.Device.Scene;
namespace Shared.Phone.Device.Category
{
public class CategoryAddScene : FrameLayout
{
#region ◆ 变量____________________________
///
/// bodyFrameLayout
///
private FrameLayout bodyFrameLayout;
/////
///// floorIds
/////
//List floorIds = new List { };
/////
///// floorNames
/////
//List floorNames = new List { };
/////
///// roomNames
/////
//List> roomNames = new List> { };
/////
///// roomNames
/////
//List> rooms = new List> { };
///
/// ImagePath
///
private string ImagePath="SceneIcon/1.png";
///
/// 图片来源 0--本地图库 1--拍照 2--系统图库
///
public int IconPathType = 0;
///
/// curRoom
///
private Common.Room curRoom;
///
/// sceneTargetDevicesList
///
private List sceneTargetDevicesList = new List { };
///
/// 添加目标后的展示列表
///
public FrameLayout TargetListScrolView;
///
/// The confirm button.
///
private CommonForm.CompleteButton confirmBtn;
///
/// backGround
///
private ImageView backGround;
///
/// 是否修改
///
public bool isModify;
///
/// 修改的场景
///
public SceneUI modifySceneUI;
///
/// 记录编辑前的设备列表
///
public List modifySceneTargetDevicesList;
///
/// modifyRoom
///
public Common.Room modifyRoom;
///
/// OldBackgroundImagePath
///
private string OldBackgroundImagePath;
///
/// OldIconPathType
///
public int OldIconPathType;
///
/// selectedTimeAction
///
private Action selectedAction;
///
/// 修改场景action
///
public Action EditorAction;
///
/// 添加场景action
///
public Action AddAction;
#endregion
///
/// CategoryAddScene
///
public CategoryAddScene()
{
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
}
///
/// RemoveFromParent
///
public override void RemoveFromParent()
{
UserView.HomePage.Instance.ScrollEnabled = true;
base.RemoveFromParent();
}
///
///刷新添加目标后的展示列表
///
public void RefreshTargetListView()
{
UserView.HomePage.Instance.ScrollEnabled = false;
TargetListScrolView.RemoveAll();
TargetListScrolView.Height = Application.GetRealHeight(173);
var TargetListScrolBackView = new FrameLayout()
{
Height = Application.GetRealHeight(173),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
TargetListScrolView.AddChidren(TargetListScrolBackView);
if (sceneTargetDevicesList.Count > 0)
{
if (sceneTargetDevicesList.Count > 1)
{
TargetListScrolView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count) + Application.GetRealHeight(200);
TargetListScrolBackView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count + 13);
}
for (int i = 0; i < sceneTargetDevicesList.Count; i++)
{
var targetDevice = sceneTargetDevicesList[i];
var targetRowLayout = new RowLayout()
{
Y = Application.GetRealHeight(i * 140),
Height = Application.GetRealHeight(140),
LineColor = ZigbeeColor.Current.GXCClearColor,
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
SubViewWidth = Application.GetRealWidth(184)
};
TargetListScrolView.AddChidren(targetRowLayout);
string devImgPath = string.Empty;
string devNameText = string.Empty;
if (targetDevice.Type == 0)
{
if (targetDevice.DeviceUI == null || targetDevice.DeviceUI.CommonDevice == null) continue;
devImgPath = targetDevice.DeviceUI.IconPath;
devNameText = Common.LocalDevice.Current.GetDeviceEpointName(targetDevice.DeviceUI.CommonDevice);
var targetRow = new SceneTargetFunctionRow(13);
targetRow.Init();
targetRow.SetIcon(devImgPath);
targetRow.SetNameText(devNameText);
targetRow.SetZoneText(targetDevice.DeviceUI.GetZone());
targetRow.SetStatuText(targetDevice.GetDeviceStatu());
targetRowLayout.AddChidren(targetRow);
if (i == sceneTargetDevicesList.Count - 1)
{
targetRow.HideLine(true);
}
}
else if (targetDevice.Type == 2)
{
devNameText = CommonFormResouce.GetTimeString(targetDevice.DelayTime);
devNameText += Language.StringByID(R.MyInternationalizationString.Later);
var targetRow = new SceneTargetTimeRow(13);
targetRow.Init();
targetRow.SetTitle(devNameText);
targetRowLayout.AddChidren(targetRow);
if (i == sceneTargetDevicesList.Count - 1)
{
targetRow.HideLine(true);
}
}
else if (targetDevice.Type == 1)
{
devImgPath = "Scene/SceneIcon.png";
devNameText = targetDevice.SceneName;
var targetRow = new SceneTargetFunctionRow(13);
targetRow.Init();
targetRow.SetIcon(devImgPath);
targetRow.SetNameText(devNameText);
targetRow.SetZoneText(targetDevice.SceneUI.GetZone());
targetRowLayout.AddChidren(targetRow);
if (i == sceneTargetDevicesList.Count - 1)
{
targetRow.HideLine(true);
}
}
var editBtn = new RowLayoutEditButton();
targetRowLayout.AddRightView(editBtn);
//编辑设备
editBtn.MouseUpEventHandler += detailMouseUpEventHandler;
var delBtn = new RowLayoutDeleteButton();
targetRowLayout.AddRightView(delBtn);
//删除设备
delBtn.MouseUpEventHandler += (sender, e) =>
{
sceneTargetDevicesList.Remove(targetDevice);
RefreshTargetListView();
};
//设备详细设置界面
void detailMouseUpEventHandler(object sender, MouseEventArgs e)
{
if (targetDevice.Type == 0)
{
if (targetDevice.DeviceUI == null || targetDevice.DeviceUI.CommonDevice == null)
{
return;
}
ShowSelectAction(targetDevice.DeviceUI, targetDevice);
selectedAction = (selectedDevice) =>
{
var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID);
if (targetDeviceUI != null)
{
targetDeviceUI.DeviceUI = selectedDevice.DeviceUI;
targetDeviceUI.TaskList = selectedDevice.TaskList;
}
RefreshTargetListView();
};
}
else if (targetDevice.Type == 2)
{
var delayTimeView = new SelectDelayTime();
UserView.HomePage.Instance.AddChidren(delayTimeView);
UserView.HomePage.Instance.PageIndex += 1;
delayTimeView.sceneTargetDevice = targetDevice;
delayTimeView.totalSecond = targetDevice.DelayTime;
delayTimeView.Show();
delayTimeView.selectedTimeAction = (second) =>
{
var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == second.SceneTargetDeviceUIID);
if (targetDeviceUI != null)
{
targetDeviceUI.DelayTime = second.DelayTime;
}
RefreshTargetListView();
};
}
else if (targetDevice.Type == 1)
{
var sceneView = new SelectScene();
UserView.HomePage.Instance.AddChidren(sceneView);
UserView.HomePage.Instance.PageIndex += 1;
sceneView.sceneTargetDevice = targetDevice;
sceneView.sceneUI = targetDevice.SceneUI;
sceneView.currentSceneUI = modifySceneUI;
sceneView.Show();
sceneView.selectedAction = (selectedScene) =>
{
var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedScene.SceneTargetDeviceUIID);
if (targetDeviceUI != null)
{
targetDeviceUI.SceneName = selectedScene.SceneName;
targetDevice.SceneUI = selectedScene.SceneUI;
targetDevice.ElseScenesId = selectedScene.ElseScenesId;
}
RefreshTargetListView();
};
}
}
}
}
}
///
/// Show this instance.
///
public void Show()
{
Init();
AddTop();
AddBodyView();
}
#region Add____________________________________
///
/// Init
///
private void Init()
{
}
///
/// AddTop
///
private void AddTop()
{
var top = new TopFrameLayout();
AddChidren(top);
top.InitTopview();
if(isModify)
{
top.SetTopTitle(R.MyInternationalizationString.EditorScene);
}
else
{
top.SetTopTitle(R.MyInternationalizationString.AddScence);
}
top.backButton.MouseUpEventHandler += (sender, e) =>
{
RemoveFromParent();
};
}
///
/// AddBodyView
///
private void AddBodyView()
{
var bodyScrolView=new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(184),
Height = Application.GetRealHeight(1737),
BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
};
AddChidren(bodyScrolView);
bodyFrameLayout = new FrameLayout()
{
Height = Application.GetRealHeight(1086+127),
BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
};
bodyScrolView.AddChidren(bodyFrameLayout);
var imgFL = new FrameLayout
{
Height = Application.GetRealHeight(556),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
bodyFrameLayout.AddChidren(imgFL);
var backGround1 = new ImageView()
{
Y = Application.GetRealHeight(46),
Width = Application.GetMinRealAverage(916),
Height = Application.GetMinRealAverage(487),
Gravity = Gravity.CenterHorizontal,
ImagePath = "Room/Room_Rectangle.png"
};
imgFL.AddChidren(backGround1);
backGround = new ImageView()
{
Y = Application.GetRealHeight(46),
Width = Application.GetMinRealAverage(887),
Height = Application.GetMinRealAverage(444),
Gravity = Gravity.CenterHorizontal,
Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius),
ImagePath = "SceneIcon/3.jpg"
};
imgFL.AddChidren(backGround);
var infoFL = new FrameLayout
{
Y = Application.GetRealHeight(588),
Height = Application.GetRealHeight(429),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
bodyFrameLayout.AddChidren(infoFL);
var infoEdit = new Button
{
X = Application.GetRealWidth(CommonFormResouce.X_Left),
Height = Application.GetRealHeight(130),
Width = Application.GetRealWidth(700),
TextID = R.MyInternationalizationString.EditInfo,
TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
TextAlignment = TextAlignment.CenterLeft,
TextSize = 15,
//IsBold=true
};
infoFL.AddChidren(infoEdit);
var nameRow = new DeviceInfoEditRow(130);
nameRow.Init();
nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.SceneName)}:");
nameRow.SetPlaceHoldText(R.MyInternationalizationString.PleaseInputSceneName);
infoFL.AddChidren(nameRow);
var zoneRow = new DeviceInfoRow(257);
zoneRow.Init();
zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:");
//zoneRow.SetTitle(curRoom.Name);
infoFL.AddChidren(zoneRow);
zoneRow.HideLine(true);
var targetFL = new FrameLayout()
{
Y = Application.GetRealHeight(1040),
Height = Application.GetRealHeight(346)
};
bodyFrameLayout.AddChidren(targetFL);
var targetBG = new FrameLayout
{
Height = Application.GetRealHeight(334),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
targetFL.AddChidren(targetBG);
var addTargetFL = new FrameLayout
{
Y=Application.GetRealHeight(46),
Height = Application.GetRealHeight(127),
};
targetFL.AddChidren(addTargetFL);
var target = new Button()
{
X = Application.GetRealWidth(CommonFormResouce.X_Left),
Height = Application.GetRealHeight(127) - 1,
Width = Application.GetRealWidth(600),
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
TextID = R.MyInternationalizationString.AddScentTargetAction,
Gravity = Gravity.CenterVertical,
TextSize=15
};
addTargetFL.AddChidren(target);
var targetAdd = new Button
{
X = Application.GetRealWidth(950),
Y = Application.GetRealHeight(46),
Width = Application.GetMinRealAverage(72),
Height = Application.GetMinRealAverage(72),
Gravity=Gravity.CenterVertical,
UnSelectedImagePath = "Item/Add.png",
};
addTargetFL.AddChidren(targetAdd);
var targetLine = new Button()
{
Y = target.Bottom,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
addTargetFL.AddChidren(targetLine);
TargetListScrolView = new FrameLayout()
{
Height = Application.GetRealHeight(173)
};
bodyScrolView.AddChidren(TargetListScrolView);
confirmBtn = new CommonForm.CompleteButton(1656, 907, 127);
confirmBtn.TextID = R.MyInternationalizationString.Next;
AddChidren(confirmBtn);
if (isModify)
{
IconPathType = modifySceneUI.IconPathType;
OldIconPathType = modifySceneUI.IconPathType;
if (IconPathType != 0)
{
OldBackgroundImagePath = modifySceneUI.IconPath;
}
if (modifySceneUI.IconPathType == 0)
{
backGround.ImagePath = modifySceneUI.IconPath;
}
else
{
backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath);
}
nameRow.SetTitle(modifySceneUI.Name);
if (Config.Instance.Home.FloorDics.Count == 0)
{
zoneRow.SetTitle($"{modifyRoom.Name}");
}
else
{
zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}");
}
curRoom = modifyRoom;
sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList);
}
RefreshTargetListView();
#region event
EventHandler backGroundIMGHander = (sender, e) =>
{
if (curRoom != null && curRoom.IsSharedRoom)
{
RoomCommon.ShowTipRoomIsShared();
return;
}
int selectRow_Height = 150;
int selectRow_Width = 1034;
var selectFL = new FrameLayout()
{
BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
};
AddChidren(selectFL);
var itemFL = new FrameLayout()
{
Y = Application.GetRealHeight(1276),
Height = Application.GetRealHeight(450),
Width = Application.GetRealWidth(selectRow_Width),
Gravity = Gravity.CenterHorizontal,
Radius = (uint)Application.GetRealHeight(35),
BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
};
selectFL.AddChidren(itemFL);
//itemFL.Animate = Animate.DownToUp;
var selectLocalPicture = new Button()
{
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.LocalPicture,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
TextSize=17
};
itemFL.AddChidren(selectLocalPicture);
var selectLocalLine = new Button()
{
Y = selectLocalPicture.Bottom,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
itemFL.AddChidren(selectLocalLine);
var selectPhotographBtn = new Button()
{
Y = selectLocalLine.Bottom,
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.Photograph,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
TextSize=17
};
itemFL.AddChidren(selectPhotographBtn);
var selectPhotographLine = new Button()
{
Y = selectPhotographBtn.Bottom,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
};
itemFL.AddChidren(selectPhotographLine);
var selectAblumsBtn = new Button()
{
Y = selectPhotographLine.Bottom,
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.MyAblums,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
TextSize=17
};
itemFL.AddChidren(selectAblumsBtn);
var cancelBtn = new Button()
{
Y = Application.GetRealHeight(1742),
Height = Application.GetRealHeight(selectRow_Height),
Width = Application.GetRealWidth(selectRow_Width),
Gravity = Gravity.CenterHorizontal,
TextID = R.MyInternationalizationString.Cancel,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
Radius = (uint)Application.GetRealHeight(35),
TextSize=17
};
selectFL.AddChidren(cancelBtn);
selectLocalPicture.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
var localPic = new CategorySceneSelectImgByLocal();
Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic);
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
localPic.Show();
localPic.action = (imgPath) =>
{
IconPathType = 0;
backGround.ImageBytes = null;
backGround.ImagePath = imgPath;
};
};
selectPhotographBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
var fileName = $"SceneIcon_{tradeTime}.png";
//通过相机拍照裁剪
CropImage.TakePicture((imagePath) =>
{
if (string.IsNullOrEmpty(imagePath))
{
return;
}
if (isModify)
{
if (IconPathType != 0)
{
Global.DeleteFilebyHomeId(backGround.ImagePath);
HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
}
}
IconPathType = 1;
backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
backGround.ImagePath = imagePath;
System.IO.File.Delete(imagePath);
}, fileName, 2, 1);
};
selectAblumsBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
var fileName = $"SceneIcon_{tradeTime}.png";
//从相册选择图片裁剪
CropImage.SelectPicture((imagePath) =>
{
if (string.IsNullOrEmpty(imagePath))
{
return;
}
if (isModify)
{
if (IconPathType != 0)
{
Global.DeleteFilebyHomeId(backGround.ImagePath);
HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
}
}
IconPathType = 2;
backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
backGround.ImagePath = imagePath;
System.IO.File.Delete(imagePath);
}, fileName, 2,1);
};
cancelBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
};
selectFL.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
};
};
backGround.MouseUpEventHandler += backGroundIMGHander;
//区域
EventHandler zoneHander = (sender, e) =>
{
var zone = new SelectZone();
zone.Init();
zone.ZoneAction += (selectRoom) =>
{
curRoom = selectRoom;
zoneRow.SetTitle(selectRoom.GetZoneName());
};
};
zoneRow.ClickBtn.MouseUpEventHandler += zoneHander;
//执行目标-添加执行设备
EventHandler targetAddHander = (sender, e) =>
{
//if (curRoom == null)
//{
// RoomCommon.ShowTipNoRoom();
// return;
//}
if(curRoom != null)
{
if (curRoom.IsSharedRoom)
{
RoomCommon.ShowTipRoomIsShared();
return;
}
}
int selectRow_Height = 150;
int selectRow_Width = 1034;
var selectFL = new FrameLayout()
{
BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
};
AddChidren(selectFL);
var itemFL = new FrameLayout()
{
Y = Application.GetRealHeight(1276),
Height = Application.GetRealHeight(450),
Width = Application.GetRealWidth(selectRow_Width),
Gravity=Gravity.CenterHorizontal,
Radius = (uint)Application.GetRealHeight(35),
BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
};
selectFL.AddChidren(itemFL);
//itemFL.Animate = Animate.DownToUp;
var selectedFunctionBtn = new Button()
{
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.Function,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
TextSize=17
};
itemFL.AddChidren(selectedFunctionBtn);
var selectedFunctionLine = new Button()
{
Y = selectedFunctionBtn.Bottom,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
itemFL.AddChidren(selectedFunctionLine);
var selectedSceneBtn = new Button()
{
Y = selectedFunctionLine.Bottom,
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.Scence,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
TextSize=17
};
itemFL.AddChidren(selectedSceneBtn);
var selectedSceneLine = new Button()
{
Y = selectedSceneBtn.Bottom,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
};
itemFL.AddChidren(selectedSceneLine);
var selectedTimerBtn = new Button()
{
Y = selectedSceneLine.Bottom,
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.Delay,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
TextSize=17
};
itemFL.AddChidren(selectedTimerBtn);
var cancelBtn = new Button()
{
Y = Application.GetRealHeight(1742),
Height = Application.GetRealHeight(selectRow_Height),
Width = Application.GetRealWidth(selectRow_Width),
Gravity=Gravity.CenterHorizontal,
TextID = R.MyInternationalizationString.Cancel,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
Radius = (uint)Application.GetRealHeight(35),
TextSize=17
};
selectFL.AddChidren(cancelBtn);
//添加功能
selectedFunctionBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
var deviceView = new SelectDevice();
UserView.HomePage.Instance.AddChidren(deviceView);
UserView.HomePage.Instance.PageIndex += 1;
deviceView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
deviceView.Show();
deviceView.selectedAction = (selectedDevice) =>
{
sceneTargetDevicesList.Add(selectedDevice);
RefreshTargetListView();
};
};
//添加场景
selectedSceneBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
var sceneView = new SelectScene();
UserView.HomePage.Instance.AddChidren(sceneView);
UserView.HomePage.Instance.PageIndex += 1;
sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
sceneView.currentSceneUI = modifySceneUI;
sceneView.Show();
sceneView.selectedAction = (selectedScene) =>
{
sceneTargetDevicesList.Add(selectedScene);
RefreshTargetListView();
};
};
//添加时间间隔
selectedTimerBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
var delayTimeView = new SelectDelayTime();
UserView.HomePage.Instance.AddChidren(delayTimeView);
UserView.HomePage.Instance.PageIndex += 1;
delayTimeView.Show();
delayTimeView.selectedTimeAction = (second) =>
{
sceneTargetDevicesList.Add(second);
RefreshTargetListView();
};
};
cancelBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
};
selectFL.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
};
};
targetAdd.MouseUpEventHandler += targetAddHander;
targetFL.MouseUpEventHandler += targetAddHander;
target.MouseUpEventHandler += targetAddHander;
addTargetFL.MouseUpEventHandler += targetAddHander;
//确定添加目标
confirmBtn.MouseUpEventHandler += async (sender, e) =>
{
if (curRoom == null)
{
RoomCommon.ShowTipNoRoom();
return;
}
if (curRoom.IsSharedRoom)
{
RoomCommon.ShowTipRoomIsShared();
return;
}
if(isModify)
{
if (string.IsNullOrEmpty(nameRow.NameText.Text))
{
CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
return;
}
else
{
try
{
var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
var fileName = $"SceneIcon_{tradeTime}.png";
if (modifySceneUI.Name != nameRow.NameText.Text.Trim())
{
if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
{
CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
return;
}
var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim());
var reName = r.sceneRenameResponseData.Result;
if (reName == 0)
{
return;
}
else if (reName == 1)
{
modifySceneUI.Name = nameRow.NameText.Text.Trim();
}
else if (reName == 2)
{
return;
}
}
if (OldIconPathType != 0)
{
Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath));
HdlAutoBackupLogic.DeleteFile(OldBackgroundImagePath);
}
if (IconPathType == 1 || IconPathType == 2)
{
Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
HdlAutoBackupLogic.AddOrEditorFile(fileName);
modifySceneUI.IconPath = fileName;
}
else
{
modifySceneUI.IconPath = backGround.ImagePath;
}
modifySceneUI.IconPathType = IconPathType;
CommonPage.Loading.Start();
var memberDataList = new List();
for (int i = 0; i < sceneTargetDevicesList.Count; i++)
{
var sceneTarget = sceneTargetDevicesList[i];
if (sceneTarget.Type == 0)
{
if (sceneTarget.DeviceUI == null || sceneTarget.DeviceUI.CommonDevice == null)
{
continue;
}
var memberData = new AddSceneMemberData
{
Type = 0,
ScenesId = 0,
DeviceAddr = sceneTarget.DeviceUI.CommonDevice.DeviceAddr,
Epoint = sceneTarget.DeviceUI.CommonDevice.DeviceEpoint,
TaskList = sceneTarget.TaskList,
DelayTime = 0,
MemberNumber = i + 1
};
memberDataList.Add(memberData);
}
else if (sceneTarget.Type == 1)
{
var memberData = new AddSceneMemberData
{
Type = 1,
ScenesId = 0,
ElseScenesId = sceneTarget.ElseScenesId,
DelayTime = 0,
MemberNumber = i + 1
};
memberDataList.Add(memberData);
}
else if (sceneTarget.Type == 2)
{
var memberData = new AddSceneMemberData
{
Type = 2,
ScenesId = 0,
DelayTime = sceneTarget.DelayTime,
MemberNumber = i + 1
};
memberDataList.Add(memberData);
}
}
var sceneRemoveMemberData = new SceneRemoveMemberData { };
var removeSceneDeviceListInfoList = new List { };
for (int i = 0; i < modifySceneTargetDevicesList.Count; i++)
{
var sceneTarget = modifySceneTargetDevicesList[i];
if (sceneTarget.Type == 0)
{
if (sceneTarget.DeviceUI == null || sceneTarget.DeviceUI.CommonDevice == null)
{
continue;
}
var removeDevice = new RemoveSceneDeviceListInfo
{
Type = 0,
DeviceAddr = sceneTarget.DeviceUI.CommonDevice.DeviceAddr,
Epoint = sceneTarget.DeviceUI.CommonDevice.DeviceEpoint,
MemberNumber = sceneTarget.DelayTimeSerialNumber
};
removeSceneDeviceListInfoList.Add(removeDevice);
}
else if (sceneTarget.Type == 1)
{
var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
{
Type = 1,
ElseScenesId = sceneTarget.ElseScenesId,
MemberNumber = sceneTarget.DelayTimeSerialNumber
};
removeSceneDeviceListInfoList.Add(removeDevice);
}
else
{
var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
{
Type = 2,
DelayTime = sceneTarget.DelayTime,
MemberNumber = sceneTarget.DelayTimeSerialNumber
};
removeSceneDeviceListInfoList.Add(removeDevice);
}
}
sceneRemoveMemberData.DeviceList = removeSceneDeviceListInfoList;
sceneRemoveMemberData.ScenesId = modifySceneUI.Id;
var result = await curRoom.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList);
if (result == 1)
{
if (modifyRoom != curRoom)
{
modifyRoom.SceneUIList.Remove(modifySceneUI);
modifyRoom.SceneUIFilePathList.Remove(modifySceneUI.FileName);
curRoom.SceneUIList.Add(modifySceneUI);
curRoom.SceneUIFilePathList.Add(modifySceneUI.FileName);
modifyRoom.Save();
curRoom.Save();
}
EditorAction?.Invoke(modifySceneUI, curRoom);
RemoveFromParent();
}
else if (result == 0)
{
CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
}
else if (result == -1)
{
CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
}
}
catch (Exception ex)
{
System.Console.WriteLine($"分类添加场景出错{ex.Message}");
}
finally
{
CommonPage.Loading.Hide();
}
}
}
else
{
//新增
if (string.IsNullOrEmpty(nameRow.NameText.Text))
{
CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
return;
}
else
{
try
{
var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
var fileName = $"SceneIcon_{tradeTime}.png";
string imgPath;
if (IconPathType == 1 || IconPathType == 2)
{
Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
HdlAutoBackupLogic.AddOrEditorFile(fileName);
imgPath = fileName;
}
else
{
imgPath = backGround.ImagePath;
}
//if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
//{
// CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
// return;
//}
CommonPage.Loading.Start();
var memberDataList = new List();
for (int i = 0; i < sceneTargetDevicesList.Count; i++)
{
var sceneTarget = sceneTargetDevicesList[i];
if (sceneTarget.Type == 0)
{
if (sceneTarget.DeviceUI == null || sceneTarget.DeviceUI.CommonDevice == null)
{
continue;
}
var memberData = new AddSceneMemberData
{
Type = 0,
ScenesId = 0,
DeviceAddr = sceneTarget.DeviceUI.CommonDevice.DeviceAddr,
Epoint = sceneTarget.DeviceUI.CommonDevice.DeviceEpoint,
TaskList = sceneTarget.TaskList,
DelayTime = 0,
MemberNumber = i+1
};
memberDataList.Add(memberData);
}
else if (sceneTarget.Type == 1)
{
var memberData = new AddSceneMemberData
{
Type = 1,
ScenesId = 0,
ElseScenesId = sceneTarget.ElseScenesId,
DelayTime = 0,
MemberNumber = i+1
};
memberDataList.Add(memberData);
}
else if (sceneTarget.Type == 2)
{
var memberData = new AddSceneMemberData
{
Type = 2,
ScenesId = 0,
DelayTime = sceneTarget.DelayTime,
MemberNumber = i+1
};
memberDataList.Add(memberData);
}
}
var result = await curRoom.AddScene(nameRow.NameText.Text, imgPath, memberDataList, IconPathType);
if (result == 1)
{
AddAction?.Invoke();
RemoveFromParent();
}
else if (result == 0)
{
CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AddSceneFail));
}
else if (result == -1)
{
CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
}
}
catch (Exception ex)
{
System.Console.WriteLine($"分类添加场景出错{ex.Message}");
}
finally
{
CommonPage.Loading.Hide();
}
}
}
};
#endregion
}
#endregion
#region 编辑设备____________________________________
///
/// ShowSelectAction
///
///
private void ShowSelectAction(DeviceUI device, SceneTargetDeviceUI sceneTarget)
{
var dialog = new FrameLayout()
{
BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
};
AddChidren(dialog);
dialog.MouseUpEventHandler += (sender, e) =>
{
dialog.RemoveFromParent();
};
if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
{
SelectOnoffOutput(dialog, device, sceneTarget);
}
else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
{
SelectOnoffOutput(dialog, device, sceneTarget);
}
else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
{
SelectDimmableLight(dialog, device, sceneTarget);
}
else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
{
SelectWindowCoveringDevice(dialog, device, sceneTarget);
}
else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
{
SelectThermostat(dialog, device, sceneTarget);
}
}
///
/// 灯光
///
///
///
///
private void SelectOnoffOutput(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
{
var selectFL = new FrameLayout
{
Y = Application.GetRealHeight(1391),
Height = Application.GetRealHeight(530),
};
dialog.AddChidren(selectFL);
//selectFL.Animate = Animate.DownToUp;
var titleBG = new FrameLayout
{
Height = Application.GetRealHeight(138 * 2),
Radius = (uint)Application.GetRealHeight(58),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
selectFL.AddChidren(titleBG);
var titleFL = new FrameLayout
{
Height = Application.GetRealHeight(138),
};
selectFL.AddChidren(titleFL);
var line = new Button
{
Y = titleFL.Height - 1,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
titleFL.AddChidren(line);
var cancleBtn = new Button
{
X = Application.GetRealWidth(80),
Width = Application.GetRealWidth(200),
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
TextSize = 14,
TextAlignment = TextAlignment.CenterLeft,
TextID = R.MyInternationalizationString.Cancel
};
titleFL.AddChidren(cancleBtn);
var deviceName = new Button
{
Width = Application.GetRealWidth(600),
Gravity = Gravity.CenterHorizontal,
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
TextSize = 16,
Text = Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)
};
titleFL.AddChidren(deviceName);
var comfrimBtn = new Button
{
X = Application.GetRealWidth(800),
Width = Application.GetRealWidth(200),
TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
TextSize = 14,
TextAlignment = TextAlignment.CenterRight,
TextID = R.MyInternationalizationString.Complete
};
titleFL.AddChidren(comfrimBtn);
var itemFL = new FrameLayout
{
Y = titleFL.Bottom,
Height = Application.GetRealHeight(392),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
selectFL.AddChidren(itemFL);
var open = new SelectSceneStatuRow(0, 60);
itemFL.AddChidren(open);
open.Init();
open.SetTitle(R.MyInternationalizationString.Open);
open.IsSelected = true;
var shut = new SelectSceneStatuRow(0, 60 + 127 + 30);
itemFL.AddChidren(shut);
shut.Init();
shut.hideLine(true);
shut.SetTitle(R.MyInternationalizationString.Shut);
open.ClickButton.MouseUpEventHandler += (sender, e) =>
{
open.IsSelected = true;
shut.IsSelected = false;
};
shut.ClickButton.MouseUpEventHandler += (sender, e) =>
{
open.IsSelected = false;
shut.IsSelected = true;
};
cancleBtn.MouseUpEventHandler = (sender, e) =>
{
dialog.RemoveAll();
dialog.RemoveFromParent();
};
if (sceneTarget.TaskList.Count > 0)
{
if (sceneTarget.TaskList[0].Data1 == 1)
{
open.IsSelected = true;
shut.IsSelected = false;
}
else
{
open.IsSelected = false;
shut.IsSelected = true;
}
}
comfrimBtn.MouseUpEventHandler = (sender, e) =>
{
var taskList = new List { };
int taskType = 1;
int data1 = 0;
int data2 = 0;
if (open.IsSelected)
{
//开
data1 = 1;
data2 = 0;
}
else
{
//关
data1 = 0;
data2 = 0;
}
var taskInfo = new ZigBee.Device.Scene.TaskListInfo
{
TaskType = taskType,
Data1 = data1,
Data2 = data2
};
taskList.Add(taskInfo);
sceneTarget.TaskList = taskList;
sceneTarget.DeviceUI = device;
selectedAction?.Invoke(sceneTarget);
dialog.RemoveFromParent();
};
}
///
/// 窗帘
///
///
///
///
private void SelectWindowCoveringDevice(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
{
var selectFL = new FrameLayout
{
Y = Application.GetRealHeight(1169),
Height = Application.GetRealHeight(752),
};
dialog.AddChidren(selectFL);
//selectFL.Animate = Animate.DownToUp;
var titleBG = new FrameLayout
{
Height = Application.GetRealHeight(138 * 2),
Radius = (uint)Application.GetRealHeight(58),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
selectFL.AddChidren(titleBG);
var titleFL = new FrameLayout
{
Height = Application.GetRealHeight(138),
};
selectFL.AddChidren(titleFL);
var line = new Button
{
Y = titleFL.Height - 1,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
titleFL.AddChidren(line);
var cancleBtn = new Button
{
X = Application.GetRealWidth(80),
Width = Application.GetRealWidth(200),
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
TextSize = 14,
TextAlignment = TextAlignment.CenterLeft,
TextID = R.MyInternationalizationString.Cancel
};
titleFL.AddChidren(cancleBtn);
var deviceName = new Button
{
Width = Application.GetRealWidth(600),
Gravity = Gravity.CenterHorizontal,
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
TextSize = 16,
Text = Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)
};
titleFL.AddChidren(deviceName);
var comfrimBtn = new Button
{
X = Application.GetRealWidth(800),
Width = Application.GetRealWidth(200),
TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
TextSize = 14,
TextAlignment = TextAlignment.CenterRight,
TextID = R.MyInternationalizationString.Complete
};
titleFL.AddChidren(comfrimBtn);
var itemFL = new FrameLayout
{
Y = titleFL.Bottom,
Height = Application.GetRealHeight(613),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
selectFL.AddChidren(itemFL);
var open = new SelectDeviceWithSeekBarRow(0, 60);
itemFL.AddChidren(open);
open.Init();
open.SetTitle(R.MyInternationalizationString.Open);
open.IsSelected = true;
var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
itemFL.AddChidren(shut);
shut.Init();
shut.hideLine(true);
shut.SetTitle(R.MyInternationalizationString.Shut);
open.ClickButton.MouseUpEventHandler += (sender, e) =>
{
open.IsSelected = true;
shut.IsSelected = false;
};
shut.ClickButton.MouseUpEventHandler += (sender, e) =>
{
open.IsSelected = false;
shut.IsSelected = true;
};
cancleBtn.MouseUpEventHandler = (sender, e) =>
{
dialog.RemoveAll();
dialog.RemoveFromParent();
};
open.SeekBar.OnProgressChangedEvent += (sender, e) =>
{
open.IsSelected = true;
shut.IsSelected = false;
open.SetSeekBarTitle();
};
if (sceneTarget.TaskList.Count > 0)
{
if (sceneTarget.TaskList[0].Data1 == 1)
{
open.IsSelected = false;
shut.IsSelected = true;
}
else
{
open.IsSelected = true;
shut.IsSelected = false;
open.SetSeekBarProgress(sceneTarget.TaskList[0].Data2);
}
}
comfrimBtn.MouseUpEventHandler = (sender, e) =>
{
var taskList = new List { };
int taskType = 6;
int data1 = 0;
int data2 = 0;
if (shut.IsSelected)
{
//关
data1 = 1;
data2 = 0;
}
else
{
//百分比
data1 = 5;
data2 = open.SeekBar.Progress;
}
var taskInfo = new ZigBee.Device.Scene.TaskListInfo
{
TaskType = taskType,
Data1 = data1,
Data2 = data2
};
taskList.Add(taskInfo);
sceneTarget.TaskList = taskList;
sceneTarget.DeviceUI = device;
selectedAction?.Invoke(sceneTarget);
dialog.RemoveFromParent();
};
}
///
/// 调光灯
///
///
///
///
private void SelectDimmableLight(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
{
var selectFL = new FrameLayout
{
Y = Application.GetRealHeight(1169),
Height = Application.GetRealHeight(752),
};
dialog.AddChidren(selectFL);
//selectFL.Animate = Animate.DownToUp;
var titleBG = new FrameLayout
{
Height = Application.GetRealHeight(138 * 2),
Radius = (uint)Application.GetRealHeight(58),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
selectFL.AddChidren(titleBG);
var titleFL = new FrameLayout
{
Height = Application.GetRealHeight(138),
};
selectFL.AddChidren(titleFL);
var line = new Button
{
Y = titleFL.Height - 1,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
titleFL.AddChidren(line);
var cancleBtn = new Button
{
X = Application.GetRealWidth(80),
Width = Application.GetRealWidth(200),
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
TextSize = 14,
TextAlignment = TextAlignment.CenterLeft,
TextID = R.MyInternationalizationString.Cancel
};
titleFL.AddChidren(cancleBtn);
var deviceName = new Button
{
Width = Application.GetRealWidth(600),
Gravity = Gravity.CenterHorizontal,
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
TextSize = 16,
TextAlignment = TextAlignment.CenterLeft,
Text = Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)
};
titleFL.AddChidren(deviceName);
var comfrimBtn = new Button
{
X = Application.GetRealWidth(800),
Width = Application.GetRealWidth(200),
TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
TextSize = 14,
TextAlignment = TextAlignment.CenterRight,
TextID = R.MyInternationalizationString.Complete
};
titleFL.AddChidren(comfrimBtn);
var itemFL = new FrameLayout
{
Y = titleFL.Bottom,
Height = Application.GetRealHeight(613),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
selectFL.AddChidren(itemFL);
var open = new SelectDeviceWithSeekBarRow(0, 60);
itemFL.AddChidren(open);
open.Init(254);
open.SetTitle(R.MyInternationalizationString.Open);
open.IsSelected = true;
var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
itemFL.AddChidren(shut);
shut.Init();
shut.hideLine(true);
shut.SetTitle(R.MyInternationalizationString.Shut);
open.ClickButton.MouseUpEventHandler += (sender, e) =>
{
open.IsSelected = true;
shut.IsSelected = false;
};
shut.ClickButton.MouseUpEventHandler += (sender, e) =>
{
open.IsSelected = false;
shut.IsSelected = true;
};
cancleBtn.MouseUpEventHandler = (sender, e) =>
{
dialog.RemoveAll();
dialog.RemoveFromParent();
};
open.SeekBar.OnProgressChangedEvent += (sender, e) =>
{
open.IsSelected = true;
shut.IsSelected = false;
open.SetSeekBarTitle();
};
if (sceneTarget.TaskList.Count > 0)
{
if (sceneTarget.TaskList[0].Data1 == 0)
{
open.IsSelected = false;
shut.IsSelected = true;
}
else
{
open.IsSelected = true;
shut.IsSelected = false;
open.SetSeekBarProgress(sceneTarget.TaskList[0].Data1);
}
}
comfrimBtn.MouseUpEventHandler = (sender, e) =>
{
var taskList = new List { };
int taskType = 3;
int data1 = 0;
int data2 = 0;
if (shut.IsSelected)
{
//关
data1 = 0;
data2 = 0;
}
else
{
//百分比
data1 = open.SeekBar.Progress;
data2 = 0;
}
var taskInfo = new ZigBee.Device.Scene.TaskListInfo
{
TaskType = taskType,
Data1 = data1,
Data2 = data2
};
taskList.Add(taskInfo);
sceneTarget.TaskList = taskList;
sceneTarget.DeviceUI = device;
selectedAction?.Invoke(sceneTarget);
dialog.RemoveFromParent();
};
}
///
/// 空调
///
///
///
///
private void SelectThermostat(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
{
/// 温度
int tempId=0;
/// 模式
int modelId=0;
/// 风速
int fanid=0;
var selectFL = new FrameLayout
{
Y = Application.GetRealHeight(815),
Height = Application.GetRealHeight(1106),
};
dialog.AddChidren(selectFL);
//selectFL.Animate = Animate.DownToUp;
var titleBG = new FrameLayout
{
Height = Application.GetRealHeight(138 * 2),
Radius = (uint)Application.GetRealHeight(58),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
selectFL.AddChidren(titleBG);
var titleFL = new FrameLayout
{
Height = Application.GetRealHeight(138),
};
selectFL.AddChidren(titleFL);
var line = new Button
{
Y = titleFL.Height - 1,
Height = 1,
BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
titleFL.AddChidren(line);
var cancleBtn = new Button
{
X = Application.GetRealWidth(80),
Width = Application.GetRealWidth(200),
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
TextSize = 14,
TextAlignment = TextAlignment.CenterLeft,
TextID = R.MyInternationalizationString.Cancel
};
titleFL.AddChidren(cancleBtn);
var deviceName = new Button
{
Width = Application.GetRealWidth(600),
Gravity = Gravity.CenterHorizontal,
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
TextSize = 16,
TextAlignment = TextAlignment.CenterLeft,
Text = Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)
};
titleFL.AddChidren(deviceName);
var comfrimBtn = new Button
{
X = Application.GetRealWidth(800),
Width = Application.GetRealWidth(200),
TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
TextSize = 14,
TextAlignment = TextAlignment.CenterRight,
TextID = R.MyInternationalizationString.Complete
};
titleFL.AddChidren(comfrimBtn);
var itemFL = new FrameLayout
{
Y = titleFL.Bottom,
Height = Application.GetRealHeight(968),
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
selectFL.AddChidren(itemFL);
var open = new SelectDeviceWithPickViewRow(0, 60);
itemFL.AddChidren(open);
open.Init();
open.SetTitle(R.MyInternationalizationString.Open);
open.IsSelected = true;
open.pickerView.OnSelectChangeEvent = (l1, l2, l3) =>
{
tempId = l1;
modelId = l2;
fanid = l3;
};
var shut = new SelectSceneStatuRow(0, 60 + 703 + 30);
itemFL.AddChidren(shut);
shut.Init();
shut.hideLine(true);
shut.SetTitle(R.MyInternationalizationString.Shut);
open.ClickButton.MouseUpEventHandler += (sender, e) =>
{
open.IsSelected = true;
shut.IsSelected = false;
};
shut.ClickButton.MouseUpEventHandler += (sender, e) =>
{
open.IsSelected = false;
shut.IsSelected = true;
};
cancleBtn.MouseUpEventHandler = (sender, e) =>
{
dialog.RemoveAll();
dialog.RemoveFromParent();
};
if (sceneTarget.TaskList.Count > 0)
{
if (sceneTarget.TaskList.Count == 1)
{
open.IsSelected = false;
shut.IsSelected = true;
}
else
{
open.IsSelected = true;
shut.IsSelected = false;
for (int i = 0; i < sceneTarget.TaskList.Count; i++)
{
var tasklist = sceneTarget.TaskList[i];
if (tasklist.Data1 == 6)
{
fanid = open.fanList.IndexOf(tasklist.Data2);
}
if (tasklist.Data1 == 3)
{
modelId = open.modeList.IndexOf(tasklist.Data2);
}
if (tasklist.Data1 == 4 || tasklist.Data1 == 5)
{
tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100);
}
}
open.pickerView.setCurrentItems(tempId, modelId, fanid);
}
}
comfrimBtn.MouseUpEventHandler = (sender, e) =>
{
var taskList = new List { };
int taskType = 5;
int data1 = 0;
int data2 = 0;
if (shut.IsSelected)
{
//关
data1 = 3;
data2 = 0;
var taskInfo = new ZigBee.Device.Scene.TaskListInfo
{
TaskType = taskType,
Data1 = data1,
Data2 = data2
};
taskList.Add(taskInfo);
}
else
{
//fan
var taskInfo = new ZigBee.Device.Scene.TaskListInfo
{
TaskType = taskType,
Data1 = 6,
Data2 = open.fanList[fanid]
};
taskList.Add(taskInfo);
//mode
var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo
{
TaskType = taskType,
Data1 = 3,
Data2 = open.modeList[modelId]
};
taskList.Add(taskInfo2);
//tem
if (open.modeList[modelId] == 4)
{
//heat
var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
{
TaskType = taskType,
Data1 = 4,
Data2 = open.temperatureList[tempId] * 100
};
taskList.Add(taskInfo3);
}
else
{
//heat
var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
{
TaskType = taskType,
Data1 = 5,
Data2 = open.temperatureList[tempId] * 100
};
taskList.Add(taskInfo3);
}
}
sceneTarget.TaskList = taskList;
sceneTarget.DeviceUI = device;
selectedAction?.Invoke(sceneTarget);
dialog.RemoveFromParent();
};
}
#endregion
}
}