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; } } }