using System;
using System.Collections.Generic;
using Shared.Common;
using ZigBee.Device;
using static ZigBee.Device.BindObj;
using static ZigBee.Device.Panel;
namespace Shared.Phone.UserCenter.DeviceBind
{
///
/// 普通面板的绑定场景界面【只可绑定1个场景】
///
public class AddScenePage : BindCommonLayout
{
/// 构造函数
///
///
public AddScenePage(ZigBee.Device.Panel key)
{
this.currentKey = key;
}
#region 变量申明
///
/// 当前按键
///
ZigBee.Device.Panel currentKey;
///
/// 显示被绑定设备或场景的view
///
VerticalScrolViewLayout midVerticalScrolViewLayout;
///
/// 显示房间的view
///
HorizontalScrolViewLayout btnHorizontalScrolViewLayout;
///
/// 按键配置的目标列表
///
List targetListDevice = new List();
///
/// 按键配置的场景目标列表
///
List targetListScene = new List();
///
/// 本地房间列表
///
List roomList = new List();
///
/// 当绑定表变化后的回调
///
public Action> action;
///
/// 保存完成按钮
///
Button btnFinish;
///
/// 楼层文本
///
Button btnFloorText;
///
/// 楼层列表
///
Dictionary dicFloor;
List currentKeyAllRoomSceneList = new List();
#endregion
///
/// 添加场景页显示
///
public void Show()
{
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.AddScene));
EventHandler eHandlerBack = (sender, e) =>
{
RemoveFromParent();
};
this.btnTitle.Width = Application.GetRealWidth(1080 - 161 - 300);
this.btnBack.MouseUpEventHandler += eHandlerBack;
this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
this.MidFrameLayout(this);
var btnAddFrameLayout = new FrameLayout
{
X = Application.GetRealWidth(619),
};
this.titleFrameLayout.AddChidren(btnAddFrameLayout);
btnFloorText = new Button
{
Width = Application.GetRealWidth(300 - 69 - 58),
X = Application.GetRealWidth(15),
Text = Language.StringByID(R.MyInternationalizationString.FirstFloor),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextSize = 14,
IsBold = true,
TextAlignment = TextAlignment.CenterRight,
};
btnAddFrameLayout.AddChidren(btnFloorText);
var btnBindDownFrameLayout = new FrameLayout
{
Width = Application.GetMinReal(69 + 58),
X = Application.GetRealWidth(300 - 69 - 58),
};
btnAddFrameLayout.AddChidren(btnBindDownFrameLayout);
var btnBindDown = new Button
{
Height = Application.GetMinReal(69),
Width = Application.GetMinReal(69),
UnSelectedImagePath = "BindPic/BindDown.png",
Gravity = Gravity.CenterVertical,
};
btnBindDownFrameLayout.AddChidren(btnBindDown);
EventHandler eHandlerBindDown = (sender, e) =>
{
SideslipFramelayout();
};
btnBindDown.MouseDownEventHandler += eHandlerBindDown;
btnBindDownFrameLayout.MouseDownEventHandler += eHandlerBindDown;
if (Common.Config.Instance.Home.FloorDics.Count == 0)
{
btnAddFrameLayout.Width = 0;
}
else
{
btnAddFrameLayout.Width = Application.GetRealWidth(300);
}
MidFrameLayoutContent(btnFloorText);
}
///
/// 中部布局
///
async void MidFrameLayoutContent(Button btnFloorText)
{
#region UI
var btnMidTopLayout = new FrameLayout
{
Height = Application.GetRealHeight(389 - 184),
};
this.midFrameLayout.AddChidren(btnMidTopLayout);
btnHorizontalScrolViewLayout = new HorizontalScrolViewLayout
{
X = Application.GetRealWidth(58),
};
btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout);
midVerticalScrolViewLayout = new VerticalScrolViewLayout()
{
Y = btnMidTopLayout.Bottom,
Height = Application.GetRealHeight(1145),
};
this.midFrameLayout.AddChidren(midVerticalScrolViewLayout);
var bottomFrameLayout = new FrameLayout()
{
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight(127),
Y = Application.GetRealHeight(1472),
};
this.midFrameLayout.AddChidren(bottomFrameLayout);
btnFinish = new Button()
{
Width = Application.GetRealWidth(907),
Gravity = Gravity.CenterHorizontal,
Radius = (uint)Application.GetRealHeight(127) / 2,
TextID = R.MyInternationalizationString.Save,
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
IsBold = true,
TextSize = 16,
};
bottomFrameLayout.AddChidren(btnFinish);
#endregion
#region 数据处理
//获取楼层
dicFloor = HdlRoomLogic.Current.GetFloorSortList();
currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
if (Common.Config.Instance.Home.FloorDics.Count == 0)
{
// 获取没有楼层房间
foreach (var room in listAllRoom)
{
if (string.IsNullOrEmpty(room.FloorId))
{
roomList.Add(room);
}
}
}
else
{
// 获取楼层对应对房间
foreach (var room in listAllRoom)
{
if (room.FloorId == currentKey.currentSelectFloorId)
{
roomList.Add(room);
}
}
}
if (roomList.Count == 0)
{
return;
}
//首次拿到所有房间中按键的目标并存储
GetALlDispalyRoomSceneList();
if (currentKeyAllRoomSceneList.Count != 0)
{
if (currentKey.bindList.Count != 0)
{
foreach (var scTemp in currentKeyAllRoomSceneList)
{
var sc = currentKey.bindList.Find(obj => (obj != null) && (obj.BindScenesId == scTemp.Id));
if (sc != null)
{
targetListScene.Add(scTemp);
}
}
}
}
Shared.Common.Room curRoom = roomList[0];
int index = 0;
RefreshRoomList(curRoom, ref index);
if (curRoom.ListSceneId.Count == 0)
{
btnFinish.Enable = false;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
}
else
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
if (targetListDevice.Count == 0 && targetListScene.Count == 0)
{
btnFinish.Enable = false;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
}
else
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
btnFinish.MouseUpEventHandler += (sender, e) =>
{
bool isFinish = false;
System.Threading.Tasks.Task.Run(() =>
{
try
{
if (targetListDevice.Count == 0 && targetListScene.Count == 0)
{
Application.RunOnMainThread(() =>
{
var myTip = new Tip();
myTip.Direction = AMPopTipDirection.None;
myTip.CloseTime = 2;
myTip.Text = Language.StringByID(R.MyInternationalizationString.BindDeviceTargetIsEmpty);
myTip.Show(Common.CommonPage.Instance);
});
return;
}
Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
if (currentKey.bindList.Count != 0)
{
var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
if (bindResult != null && bindResult.clearBindInfoResponseData != null)
{
if (bindResult.clearBindInfoResponseData.Result != 0)
{
Application.RunOnMainThread(() =>
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
CommonPage.Loading.Hide();
});
return;
}
else
{
currentKey.bindList.Clear();
}
}
else
{
Application.RunOnMainThread(() =>
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
CommonPage.Loading.Hide();
var myTip = new Tip();
myTip.Direction = AMPopTipDirection.None;
myTip.CloseTime = 2;
myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")";
myTip.Show(Common.CommonPage.Instance);
});
return;
}
}
var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Scene_Trigger);
if (temp == null || temp.setWritableValueResponData == null)
{
Application.RunOnMainThread(() =>
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
CommonPage.Loading.Hide();
var myTip = new Tip();
myTip.Direction = AMPopTipDirection.None;
myTip.CloseTime = 2;
myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "120_ 6533" + ")";
myTip.Show(Common.CommonPage.Instance);
});
return;
}
if (temp.setWritableValueResponData.Status != 0)
{
Application.RunOnMainThread(() =>
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
var myTip = new Tip();
myTip.Direction = AMPopTipDirection.None;
myTip.CloseTime = 2;
myTip.Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode);
myTip.Show(Common.CommonPage.Instance);
CommonPage.Loading.Hide();
});
return;
}
else
{
currentKey.panelMode = 1;
var addBindeDev = new AddBindData();
addBindeDev.DeviceAddr = currentKey.DeviceAddr;
addBindeDev.Epoint = currentKey.DeviceEpoint;
foreach (var de in targetListDevice)
{
if (de.DeviceAddr != null)
{
var addBindInfo = new AddBindListObj();
addBindInfo.BindType = 0;
addBindInfo.BindCluster = 6;
addBindInfo.BindMacAddr = de.DeviceAddr;
addBindInfo.BindEpoint = de.DeviceEpoint;
addBindeDev.BindList.Add(addBindInfo);
}
}
foreach (var de in targetListScene)
{
var addBindInfo = new AddBindListObj();
addBindInfo.BindType = 1;
addBindInfo.BindCluster = 6;
addBindInfo.BindScenesId = de.Id;
addBindeDev.BindList.Add(addBindInfo);
}
var dev = new AddedDeviceBindResponseAllData();
dev = HdlDeviceBindLogic.Current.AddDeviceBindAsync(addBindeDev);
if (dev != null && dev.addedDeviceBindResponseData != null)
{
if (dev.addedDeviceBindResponseData.Result == 0)
{
currentKey.bindList = dev.addedDeviceBindResponseData.BindList;
targetListDevice.Clear();
targetListScene.Clear();
isFinish = true;
Application.RunOnMainThread(() =>
{
if (isFinish)
{
if (action != null)
{
action(currentKey.bindList);
}
this.RemoveFromParent();
}
else
{
this.RemoveFromParent();
}
CommonPage.Loading.Hide();
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
});
}
else if (dev.addedDeviceBindResponseData.Result == 1)
{
Application.RunOnMainThread(() =>
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
CommonPage.Loading.Hide();
new Tip()
{
MaxWidth = 150,
Text = Language.StringByID(R.MyInternationalizationString.BindFailed),
Direction = AMPopTipDirection.Up,
CloseTime = 1
}.Show(btnFinish);
});
return;
}
else
{
Application.RunOnMainThread(() =>
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
CommonPage.Loading.Hide();
new Tip()
{
MaxWidth = 150,
Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError),
Direction = AMPopTipDirection.Up,
CloseTime = 1
}.Show(btnFinish);
});
return;
}
}
else
{
Application.RunOnMainThread(() =>
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
CommonPage.Loading.Hide();
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5001" + ")", Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
});
return;
}
}
}
catch { }
});
};
#endregion
}
///
/// 按键绑定场景表显示
///
/// Gateway.
/// Key.
void RefreshRoomList(Shared.Common.Room curRoom, ref int index2)
{
if (roomList.Count == 0)
{
return;
}
btnHorizontalScrolViewLayout.RemoveAll();
Button curentOldRoom = null;
FrameLayout curentOldRoomFrameLayout = null;
int index = 0;
var roomTempList = new List();
for (int i = 0; i < roomList.Count; i++)
{
var room = roomList[i];
//如果房间为喜爱,则不显示
if (room.IsLove == true)
{
continue;
}
//如果房间中没有场景,则不显示
if (room.ListSceneId.Count == 0)
{
continue;
}
else
{
roomTempList.Add(room);
}
}
for (int i = 0; i < roomTempList.Count; i++)
{
var room = roomTempList[i];
curRoom = roomTempList[0];
var btnRoomFrameLayout = new FrameLayout
{
Height = Application.GetMinReal(159),
Width = Application.GetMinReal(255),
Y = Application.GetRealHeight(23),
X = Application.GetRealWidth(5),
BackgroundImagePath = "Item/RoomIconBackground.png",
BorderWidth = 1,
};
btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayout);
var btnRoom = new Button
{
Height = Application.GetRealHeight(58),
Width = Application.GetRealWidth(255),
Y = Application.GetRealHeight(58),
X = Application.GetRealWidth(14),
Text = room.Name,
TextSize = 12,
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
Gravity = Gravity.Center,
};
btnRoomFrameLayout.AddChidren(btnRoom);
btnRoom.IsSelected = false;
if (index == 0)
{
btnRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
curentOldRoom = btnRoom;
curentOldRoomFrameLayout = btnRoomFrameLayout;
}
if (index == roomTempList.Count - 1 && index > 2)
{
var btnRoomFrameLayoutEmpty = new FrameLayout
{
Height = Application.GetMinReal(159),
Width = Application.GetMinReal(50),
Y = Application.GetRealHeight(23),
X = Application.GetRealWidth(5),
BorderWidth = 1,
};
btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayoutEmpty);
}
EventHandler eHandlerRoom = (sender, e) =>
{
if (!btnRoom.IsSelected)
{
if (curentOldRoom != null)
{
curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
}
curentOldRoom = btnRoom;
curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
}
if (btnRoomFrameLayout.BorderWidth == 1)
{
if (curentOldRoomFrameLayout != null)
{
curentOldRoomFrameLayout.BorderWidth = 1;
curentOldRoomFrameLayout.BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange;
curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackground.png";
}
curentOldRoomFrameLayout = btnRoomFrameLayout;
curentOldRoomFrameLayout.BorderWidth = 0;
curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
}
curRoom = room;
if (curRoom.ListSceneId.Count == 0)
{
btnFinish.Enable = false;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
}
else
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
if (targetListDevice.Count == 0 && targetListScene.Count == 0)
{
btnFinish.Enable = false;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
}
else
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
RefreshSceneList(curRoom);
};
btnRoom.MouseUpEventHandler += eHandlerRoom;
btnRoomFrameLayout.MouseUpEventHandler += eHandlerRoom;
index++;
}
BindInfo.FinishDisplay(roomTempList, btnFinish);
RefreshSceneList(curRoom);
}
///
/// 按键绑定场景表显示
///
///
void RefreshSceneList(Shared.Common.Room curRoom)
{
midVerticalScrolViewLayout.RemoveAll();
if (curRoom.ListSceneId.Count == 0)
{
return;
}
Button oldScene = null;
int curIndex = 0;
var currentSceneUIList = GetMatchSceneUIList(curRoom);
if (currentSceneUIList.Count == 0)
{
btnFinish.Enable = false;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
return;
}
foreach (var scene in currentSceneUIList)
{
#region 绑定表UI显(无数据处理)
var rowLayout = new FrameLayout()
{
Height = Application.GetRealHeight(23 + 127),
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
};
midVerticalScrolViewLayout.AddChidren(rowLayout);
var devicePic = new Button()
{
X = Application.GetMinRealAverage(58),
Y = Application.GetMinRealAverage(46),
Width = Application.GetMinReal(81),
Height = Application.GetMinReal(81),
UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath,
};
rowLayout.AddChidren(devicePic);
var btnBindName = new Button()
{
Width = Application.GetRealWidth(790),
X = devicePic.Right + Application.GetRealWidth(20),
TextColor = Shared.Common.ZigbeeColor.Current.TextBlack,
TextAlignment = TextAlignment.CenterLeft,
TextSize = 15,
};
rowLayout.AddChidren(btnBindName);
var btnChoose = new Button()
{
Width = Application.GetMinReal(60),
Height = Application.GetMinReal(60),
X = Application.GetRealWidth(861 + 81),
Y = Application.GetRealHeight(35),
SelectedImagePath = "DoorLock/SelectedIcon.png",
Visible = false,
};
rowLayout.AddChidren(btnChoose);
var line2 = new Button()
{
Y = rowLayout.Height - 1,
X = devicePic.Right + Application.GetRealWidth(20),
Width = Application.GetRealWidth(965 - 116),
Height = 1,
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
};
rowLayout.AddChidren(line2);
if (curIndex == curRoom.ListSceneId.Count - 1)
{
line2.Visible = false;
}
#endregion
if (scene.Name == null)
{
btnBindName.Text = Language.StringByID(R.MyInternationalizationString.Unknown);
}
else
{
btnBindName.Text = scene.Name;
}
if (targetListDevice.Count == 0 && targetListScene.Count == 0)
{
foreach (var bindedSc in currentKey.bindList)
{
if (scene.Id == bindedSc.BindScenesId)
{
btnChoose.IsSelected = true;
btnChoose.Visible = true;
oldScene = btnChoose;
targetListScene.Add(scene);
}
}
}
else
{
foreach (var bindedSc in targetListScene)
{
if (scene.Id == bindedSc.Id)
{
btnChoose.IsSelected = true;
btnChoose.Visible = true;
oldScene = btnChoose;
}
}
}
EventHandler hander = (sender, e) =>
{
if (currentKey.bindList.Count != 0)
{
if (btnChoose.IsSelected)
{
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindExist), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnBindName);
return;
}
}
if (!btnChoose.IsSelected)
{
if (oldScene != null)
{
oldScene.IsSelected = false;
oldScene.Visible = false;
}
oldScene = btnChoose;
oldScene.IsSelected = true;
oldScene.Visible = true;
targetListDevice.Clear();
targetListScene.Clear();
targetListScene.Add(scene);
}
if (targetListDevice.Count == 0 && targetListScene.Count == 0)
{
btnFinish.Enable = false;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
}
else
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
};
rowLayout.MouseUpEventHandler += hander;
devicePic.MouseUpEventHandler += hander;
btnBindName.MouseUpEventHandler += hander;
btnChoose.MouseUpEventHandler += hander;
curIndex++;
}
if (targetListDevice.Count == 0 && targetListScene.Count == 0)
{
btnFinish.Enable = false;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
}
else
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
}
///
/// 楼层选择的侧边导航栏
///
void SideslipFramelayout()
{
var dialog = new Dialog
{
};
dialog.Show();
var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
dialog.AddChidren(flMain);
flMain.MouseUpEventHandler += (sender11, e11) =>
{
dialog.Close();
};
var sidelipFrameLayout = new FrameLayout()
{
Width = Application.GetMinReal(449),
Y = Application.GetRealHeight(161),
X = Application.GetRealWidth(596),
BackgroundImagePath = "DoorLock/SideslipPic.png",
};
flMain.AddChidren(sidelipFrameLayout);
var btnSelectFloor = new Button()
{
Width = Application.GetRealWidth(200),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(81),
Y = Application.GetRealHeight(81),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextSize = 14,
IsBold = true,
TextAlignment = TextAlignment.CenterLeft,
TextID = R.MyInternationalizationString.SelectFloor,
};
sidelipFrameLayout.AddChidren(btnSelectFloor);
var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
{
Height = Application.GetRealHeight(600),
Y = btnSelectFloor.Bottom + Application.GetRealHeight(45),
};
sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
Button oldbutton = null;
Button oldbuttonText = null;
int count = 0;
foreach (var floorId in dicFloor.Keys)
{
count++;
var rowFrameLayout = new RowLayout()
{
Height = Application.GetRealHeight(152),
LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
X = Application.GetRealWidth(81),
};
sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout);
var btnAllMethod = new Button()
{
Width = Application.GetMinReal(81),
Height = Application.GetMinReal(81),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "Floor/Floor.png",
SelectedImagePath = "Floor/FloorSelected.png",
};
rowFrameLayout.AddChidren(btnAllMethod);
var btnMethodText = new Button()
{
Width = Application.GetRealWidth(311),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(92),
Gravity = Gravity.CenterVertical,
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
TextSize = 14,
TextAlignment = TextAlignment.CenterLeft,
Text = dicFloor[floorId],
};
rowFrameLayout.AddChidren(btnMethodText);
if (currentKey.currentSelectFloorId == floorId)
{
btnAllMethod.IsSelected = true;
btnAllMethod.IsBold = true;
btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
string curFloorId = floorId;
EventHandler hander = (sender, e) =>
{
if (currentKey.currentSelectFloorId == curFloorId)
{
return;
}
currentKey.currentSelectFloorId = curFloorId;
btnFloorText.Text = dicFloor[floorId];
roomList.Clear();
if (!btnMethodText.IsSelected)
{
if (oldbutton != null)
{
oldbutton.IsSelected = false;
}
if (oldbuttonText != null)
{
oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
}
oldbutton = btnMethodText;
oldbuttonText = btnMethodText;
btnMethodText.IsSelected = true;
oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
oldbuttonText.IsBold = true;
}
//获取楼层对应的房间
var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
foreach (var room in listAllRoom)
{
if (room.FloorId == currentKey.currentSelectFloorId)
{
roomList.Add(room);
}
}
Shared.Common.Room curRoom = new Shared.Common.Room();
if (roomList.Count != 0)
{
curRoom = roomList[0];
}
else
{
curRoom = new Shared.Common.Room();
roomList.Add(curRoom);
}
int index = 0;
RefreshRoomList(curRoom, ref index);
RefreshSceneList(roomList[0]);
if (targetListDevice.Count == 0 && targetListScene.Count == 0)
{
btnFinish.Enable = false;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
}
else
{
btnFinish.Enable = true;
btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
dialog.Close();
};
btnAllMethod.MouseUpEventHandler += hander;
rowFrameLayout.MouseUpEventHandler += hander;
btnMethodText.MouseUpEventHandler += hander;
}
if (count == 0)
{
sidelipFrameLayout.Height = 0;
}
else if (count <= 4 && count > 0)
{
sidelipFrameLayout.Height = Application.GetRealHeight(180) + count * Application.GetRealHeight(150);
}
else
{
sidelipFrameLayout.Height = Application.GetMinReal(780);
}
}
///
/// 当前按键所有显示房间的所有场景处理
///
///
List GetALlDispalyRoomSceneList()
{
currentKeyAllRoomSceneList.Clear();
// 获取所有房间
var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
foreach (var room in listAllRoom)
{
//如果房间为喜爱,则不显示
if (room.IsLove == true)
{
continue;
}
//如果房间中没有场景,则不显示
if (room.ListSceneId.Count == 0)
{
continue;
}
foreach (var sceneId in room.ListSceneId)
{
var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
if (scene == null)
{
continue;
}
currentKeyAllRoomSceneList.Add(scene);
}
}
return currentKeyAllRoomSceneList;
}
///
/// 获取网关中存在的本地场景列表
///
///
///
List GetMatchSceneUIList(Shared.Common.Room curRoom)
{
var tempSceneUIList = new List();
foreach (var sceneId in curRoom.ListSceneId)
{
var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
if (scene == null)
{
continue;
}
tempSceneUIList.Add(scene);
}
return tempSceneUIList;
}
}
}