| | |
| | | using System.Collections.Generic; |
| | | using Microsoft.AppCenter.Crashes; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.Light; |
| | | using Shared.Phone.UserCenter.Device; |
| | | using ZigBee.Device; |
| | | using static ZigBee.Device.BindObj; |
| | |
| | | |
| | | namespace Shared.Phone.UserCenter.DeviceBind |
| | | { |
| | | public class AddScenePage : BindCommonLayout, ZigBee.Common.IStatus |
| | | public class AddScenePage : BindCommonLayout |
| | | { |
| | | /// <summary> |
| | | /// 按键模式接收 |
| | | /// </summary> |
| | | /// <param name="common">Common.</param> |
| | | public void Changed(CommonDevice common) |
| | | { |
| | | Shared.Application.RunOnMainThread(() => |
| | | { |
| | | }); |
| | | } |
| | | |
| | | /// 构造函数 |
| | | /// </summary> |
| | | /// <param name="doorLock"></param> |
| | |
| | | gwCurScenesList = gwScenesList; |
| | | } |
| | | |
| | | #region ◆ 变量申明__________________________ |
| | | #region 变量申明 |
| | | /// <summary> |
| | | /// 当前按键 |
| | | /// </summary> |
| | | ZigBee.Device.Panel currentKey; |
| | | //显示被绑定设备或场景的view |
| | | /// <summary> |
| | | /// 显示被绑定设备或场景的view |
| | | /// </summary> |
| | | VerticalScrolViewLayout midVerticalScrolViewLayout; |
| | | /// <summary> |
| | | /// 显示房间的view |
| | | /// </summary> |
| | | HorizontalScrolViewLayout btnHorizontalScrolViewLayout; |
| | | /// <summary> |
| | | /// 按键配置的目标列表 |
| | | /// </summary> |
| | | List<CommonDevice> targetList = new List<CommonDevice>();//临时目标列表 |
| | | List<Room> roomList = new List<Room>();//本地房间列表 |
| | | List<CommonDevice> targetList = new List<CommonDevice>(); |
| | | /// <summary> |
| | | /// 本地房间列表 |
| | | /// </summary> |
| | | List<Room> roomList = new List<Room>(); |
| | | /// <summary> |
| | | /// 当绑定表变化后的回调 |
| | | /// </summary> |
| | | public Action<List<BindListResponseObj>> action; |
| | | /// <summary> |
| | | /// 保存完成按钮 |
| | | /// </summary> |
| | | Button btnFinifh; |
| | | /// <summary> |
| | | /// 楼层文本 |
| | | /// </summary> |
| | | Button btnFloorText; |
| | | Dictionary<string, string> dicFloor;//楼层列表 |
| | | /// <summary> |
| | | /// 楼层列表 |
| | | /// </summary> |
| | | Dictionary<string, string> dicFloor; |
| | | List<SceneUI> currentKeyAllRoomSceneList = new List<SceneUI>(); |
| | | public List<ScenesListInfo> gwCurScenesList = new List<ScenesListInfo>();//网关中的场景列表 |
| | | /// <summary> |
| | | /// 网关中的场景列表 |
| | | /// </summary> |
| | | public List<ScenesListInfo> gwCurScenesList = new List<ScenesListInfo>(); |
| | | #endregion |
| | | |
| | | /// <summary> |
| | |
| | | Text = Language.StringByID(R.MyInternationalizationString.FirstFloor), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | TextSize = 14, |
| | | IsBold =true, |
| | | IsBold = true, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | }; |
| | | btnAddFrameLayout.AddChidren(btnFloorText); |
| | | |
| | | var btnBindDown = new Button |
| | | { |
| | | Height = Application.GetRealHeight(69), |
| | | Width = Application.GetRealWidth(69), |
| | | Height = Application.GetMinReal(69), |
| | | Width = Application.GetMinReal(69), |
| | | X = Application.GetRealWidth(200 - 77), |
| | | UnSelectedImagePath = "BindPic/BindDown.png", |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | MidFrameLayoutContent(btnFloorText); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 中部布局 |
| | | /// </summary> |
| | | async void MidFrameLayoutContent(Button btnFloorText) |
| | | { |
| | | #region UI |
| | |
| | | TextID = R.MyInternationalizationString.Save, |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, |
| | | IsBold =true, |
| | | IsBold = true, |
| | | TextSize = 16, |
| | | }; |
| | | bottomFrameLayout.AddChidren(btnFinifh); |
| | |
| | | |
| | | #region 数据处理 |
| | | //获取楼层 |
| | | dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); |
| | | dicFloor = HdlRoomLogic.Current.GetFloorSortList(); |
| | | currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId(); |
| | | btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName(); |
| | | |
| | | btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
|
| | |
|
| | | var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); |
| | | if (Common.Config.Instance.Home.FloorDics.Count == 0) |
| | | { |
| | | // 获取没有楼层房间 |
| | | foreach (var room in Shared.Common.Room.Lists) |
| | | foreach (var room in listAllRoom) |
| | | { |
| | | if (string.IsNullOrEmpty(room.FloorId)) |
| | | { |
| | |
| | | else |
| | | { |
| | | // 获取楼层对应对房间 |
| | | foreach (var room in Shared.Common.Room.Lists) |
| | | foreach (var room in listAllRoom) |
| | | { |
| | | if (room.FloorId == currentKey.currentSelectFloorId) |
| | | { |
| | |
| | | Shared.Common.Room curRoom = roomList[0]; |
| | | int index = 0; |
| | | RefreshRoomList(curRoom, ref index); |
| | | //RefreshSceneList(roomList[index]); |
| | | |
| | | if (curRoom.SceneUIList.Count == 0) |
| | | if (curRoom.ListSceneId.Count == 0) |
| | | { |
| | | btnFinifh.Enable = false; |
| | | btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; |
| | |
| | | } |
| | | |
| | | //如果房间中没有场景,则不显示 |
| | | if (room.SceneUIList.Count == 0) |
| | | if (room.ListSceneId.Count == 0) |
| | | { |
| | | continue; |
| | | } |
| | |
| | | |
| | | var btnRoomFrameLayout = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(159), |
| | | Width = Application.GetRealWidth(255), |
| | | Height = Application.GetMinReal(159), |
| | | Width = Application.GetMinReal(255), |
| | | Y = Application.GetRealHeight(23), |
| | | X = Application.GetRealWidth(5), |
| | | BackgroundImagePath = "Item/RoomIconBackground.png", |
| | |
| | | } |
| | | curRoom = room; |
| | | currentKey.RoomId = room.Id; |
| | | if (curRoom.SceneUIList.Count == 0) |
| | | if (curRoom.ListSceneId.Count == 0) |
| | | { |
| | | btnFinifh.Enable = false; |
| | | btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; |
| | |
| | | RefreshSceneList(curRoom); |
| | | } |
| | | |
| | | //按键绑定场景表显示 |
| | | /// <summary> |
| | | /// 按键绑定场景表显示 |
| | | /// </summary> |
| | | /// <param name="curRoom"></param> |
| | | void RefreshSceneList(Shared.Common.Room curRoom) |
| | | { |
| | | midVerticalScrolViewLayout.RemoveAll(); |
| | | if (curRoom.SceneUIList.Count == 0) |
| | | if (curRoom.ListSceneId.Count == 0) |
| | | { |
| | | return; |
| | | } |
| | |
| | | { |
| | | X = Application.GetMinRealAverage(58), |
| | | Y = Application.GetMinRealAverage(46), |
| | | Width = Application.GetMinRealAverage(81), |
| | | Height = Application.GetMinRealAverage(81), |
| | | Width = Application.GetMinReal(81), |
| | | Height = Application.GetMinReal(81), |
| | | UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath,
|
| | | }; |
| | | rowLayout.AddChidren(devicePic); |
| | | |
| | | var btnBindName = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(500 - 120), |
| | | Width = Application.GetRealWidth(790), |
| | | X = devicePic.Right + Application.GetRealWidth(20), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.TextBlack, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize =15, |
| | | TextSize = 15, |
| | | }; |
| | | rowLayout.AddChidren(btnBindName); |
| | | |
| | | var btnChoose = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(60), |
| | | Height = Application.GetRealHeight(60), |
| | | Width = Application.GetMinReal(60), |
| | | Height = Application.GetMinReal(60), |
| | | X = Application.GetRealWidth(861 + 81), |
| | | Y = Application.GetRealHeight(35), |
| | | SelectedImagePath = "DoorLock/SelectedIcon.png", |
| | |
| | | }; |
| | | rowLayout.AddChidren(line2); |
| | | |
| | | if (curIndex == curRoom.SceneUIList.Count - 1) |
| | | if (curIndex == curRoom.ListSceneId.Count - 1) |
| | | { |
| | | line2.Visible = false; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | // 侧边导航栏 |
| | | /// <summary> |
| | | /// 楼层选择的侧边导航栏 |
| | | /// </summary> |
| | | void SideslipFramelayout() |
| | | { |
| | | var dialog = new Dialog |
| | |
| | | |
| | | var sidelipFrameLayout = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(783), |
| | | Width = Application.GetRealWidth(449), |
| | | Height = Application.GetMinReal(783), |
| | | Width = Application.GetMinReal(449), |
| | | Y = Application.GetRealHeight(161), |
| | | X = Application.GetRealWidth(596), |
| | | BackgroundImagePath = "DoorLock/SideslipPic.png", |
| | |
| | | |
| | | var btnAllMethod = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(81), |
| | | Height = Application.GetRealHeight(81), |
| | | Width = Application.GetMinReal(81), |
| | | Height = Application.GetMinReal(81), |
| | | Y = Application.GetRealHeight(55), |
| | | UnSelectedImagePath = "Floor/Floor.png", |
| | | SelectedImagePath = "Floor/FloorSelected.png", |
| | |
| | | btnMethodText.IsSelected = true; |
| | | oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; |
| | | oldbuttonText.IsBold = true; |
| | | } |
| | | |
| | | //获取楼层对应的房间 |
| | | foreach (var room in Shared.Common.Room.Lists) |
| | | }
|
| | |
|
| | | //获取楼层对应的房间
|
| | | var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); |
| | | foreach (var room in listAllRoom) |
| | | { |
| | | if (room.FloorId == currentKey.currentSelectFloorId) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | //当前按键所有显示房间的所有场景处理 |
| | | /// <summary> |
| | | /// 当前按键所有显示房间的所有场景处理 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | List<SceneUI> GetALlDispalyRoomSceneList() |
| | | { |
| | | currentKeyAllRoomSceneList.Clear(); |
| | | // 获取所有房间 |
| | | foreach (var room in Shared.Common.Room.Lists) |
| | | currentKeyAllRoomSceneList.Clear();
|
| | | // 获取所有房间 |
| | | var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); |
| | | foreach (var room in listAllRoom) |
| | | { |
| | | //如果房间为喜爱,则不显示 |
| | | if (room.IsLove == true) |
| | |
| | | continue; |
| | | } |
| | | //如果房间中没有场景,则不显示 |
| | | if (room.SceneUIList.Count == 0) |
| | | if (room.ListSceneId.Count == 0) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | foreach (var scene in room.SceneUIList) |
| | | { |
| | | foreach (var sceneId in room.ListSceneId) |
| | | {
|
| | | var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId); |
| | | if (scene == null) |
| | | { |
| | | continue; |
| | | } |
| | | currentKeyAllRoomSceneList.Add(scene); |
| | | } |
| | | } |
| | | return currentKeyAllRoomSceneList; |
| | | } |
| | | //获取网关中存在的本地场景列表 |
| | | /// <summary> |
| | | /// 获取网关中存在的本地场景列表 |
| | | /// </summary> |
| | | /// <param name="curRoom"></param> |
| | | /// <returns></returns> |
| | | List<SceneUI> GetMatchSceneUIList(Shared.Common.Room curRoom) |
| | | { |
| | | var tempSceneUIList = new List<SceneUI>(); |
| | | foreach (var scene in curRoom.SceneUIList) |
| | | foreach (var sceneId in curRoom.ListSceneId) |
| | | { |
| | | var gwSc = gwCurScenesList.Find(obj => (obj.ScenesId == scene.Id)); |
| | | var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
|
| | | if (scene == null)
|
| | | {
|
| | | continue;
|
| | | } |
| | | var gwSc = gwCurScenesList.Find(obj => (obj.ScenesId == sceneId)); |
| | | if (gwSc != null) |
| | | { |
| | | tempSceneUIList.Add(scene); |
| | | } |
| | | } |
| | | return tempSceneUIList; |
| | | } |
| | | |
| | | public void DeviceInfoChange(CommonDevice common, string typeTag) |
| | | { |
| | | } |
| | | |
| | | public void ChangedILogicStatus(ZigBee.Device.Logic logic) |
| | | { |
| | | } |
| | | |
| | | public void ChangedISceneStatus(Scene scene) |
| | | { |
| | | } |
| | | } |
| | | } |