From 23532fa8ad34c89b6d24b01eaef6475fd0aad898 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期三, 15 四月 2020 18:08:24 +0800 Subject: [PATCH] ??????? --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs | 196 +++++++++++++++++++++++++++++++----------------- 1 files changed, 127 insertions(+), 69 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs index 2d29c23..72394ac 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs @@ -2,7 +2,6 @@ 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; @@ -10,42 +9,59 @@ 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> - public AddScenePage(ZigBee.Device.Panel key) + public AddScenePage(ZigBee.Device.Panel key, List<ScenesListInfo> gwScenesList) { this.currentKey = key; + gwCurScenesList = gwScenesList; } - #region 鈼� 鍙橀噺鐢虫槑__________________________ + #region 鍙橀噺鐢虫槑 + /// <summary> + /// 褰撳墠鎸夐敭 + /// </summary> ZigBee.Device.Panel currentKey; - //鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew + /// <summary> + /// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew + /// </summary> VerticalScrolViewLayout midVerticalScrolViewLayout; + /// <summary> + /// 鏄剧ず鎴块棿鐨剉iew + /// </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>(); + /// <summary> + /// 缃戝叧涓殑鍦烘櫙鍒楄〃 + /// </summary> + public List<ScenesListInfo> gwCurScenesList = new List<ScenesListInfo>(); #endregion /// <summary> @@ -76,15 +92,16 @@ X = Application.GetRealWidth(15), Text = Language.StringByID(R.MyInternationalizationString.FirstFloor), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, - TextSize = 15, + TextSize = 14, + 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, @@ -105,6 +122,9 @@ MidFrameLayoutContent(btnFloorText); } + /// <summary> + /// 涓儴甯冨眬 + /// </summary> async void MidFrameLayoutContent(Button btnFloorText) { #region UI @@ -143,6 +163,7 @@ TextID = R.MyInternationalizationString.Save, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, + IsBold = true, TextSize = 16, }; bottomFrameLayout.AddChidren(btnFinifh); @@ -150,14 +171,15 @@ #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)) { @@ -168,7 +190,7 @@ else { // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂� - foreach (var room in Shared.Common.Room.Lists) + foreach (var room in listAllRoom) { if (room.FloorId == currentKey.currentSelectFloorId) { @@ -201,9 +223,8 @@ 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; @@ -447,7 +468,7 @@ } //濡傛灉鎴块棿涓病鏈夊満鏅紝鍒欎笉鏄剧ず - if (room.SceneUIList.Count == 0) + if (room.ListSceneId.Count == 0) { continue; } @@ -462,8 +483,8 @@ 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", @@ -517,7 +538,7 @@ } 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; @@ -548,17 +569,27 @@ 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; } Button oldScene = null; int curIndex = 0; - foreach (var scene in curRoom.SceneUIList) + var currentSceneUIList = GetMatchSceneUIList(curRoom); + if (currentSceneUIList.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + return; + } + foreach (var scene in currentSceneUIList) { #region 缁戝畾琛║I鏄撅紙鏃犳暟鎹鐞嗭級 var rowLayout = new FrameLayout() @@ -572,25 +603,26 @@ { 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, }; 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", @@ -608,7 +640,7 @@ }; rowLayout.AddChidren(line2); - if (curIndex == curRoom.SceneUIList.Count - 1) + if (curIndex == curRoom.ListSceneId.Count - 1) { line2.Visible = false; } @@ -710,7 +742,9 @@ } } - // 渚ц竟瀵艰埅鏍� + /// <summary> + /// 妤煎眰閫夋嫨鐨勪晶杈瑰鑸爮 + /// </summary> void SideslipFramelayout() { var dialog = new Dialog @@ -727,8 +761,8 @@ 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", @@ -741,8 +775,9 @@ Height = Application.GetRealHeight(58), X = Application.GetRealWidth(81), Y = Application.GetRealHeight(81), - TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 14, + IsBold = true, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.SelectFloor, }; @@ -769,8 +804,8 @@ 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", @@ -793,6 +828,7 @@ if (currentKey.currentSelectFloorId == floorId) { btnAllMethod.IsSelected = true; + btnAllMethod.IsBold = true; btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; } @@ -820,10 +856,12 @@ oldbuttonText = btnMethodText; btnMethodText.IsSelected = true; oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - } - - //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂� - foreach (var room in Shared.Common.Room.Lists) + oldbuttonText.IsBold = true; + } + + //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂� + var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); + foreach (var room in listAllRoom) { if (room.FloorId == currentKey.currentSelectFloorId) { @@ -862,12 +900,16 @@ } } - //褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夊満鏅鐞� + /// <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) @@ -875,29 +917,45 @@ 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; } - - public void DeviceInfoChange(CommonDevice common, string typeTag) + /// <summary> + /// 鑾峰彇缃戝叧涓瓨鍦ㄧ殑鏈湴鍦烘櫙鍒楄〃 + /// </summary> + /// <param name="curRoom"></param> + /// <returns></returns> + List<SceneUI> GetMatchSceneUIList(Shared.Common.Room curRoom) { - } - - public void ChangedILogicStatus(ZigBee.Device.Logic logic) - { - } - - public void ChangedISceneStatus(Scene scene) - { + var tempSceneUIList = new List<SceneUI>(); + foreach (var sceneId in curRoom.ListSceneId) + { + 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; } } } -- Gitblit v1.8.0