From 5428935270159bfc42c2934ed7fb1091554fc9a4 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 09 七月 2020 17:12:42 +0800 Subject: [PATCH] 修改了 sokect --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs | 180 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 145 insertions(+), 35 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs index dff6a77..5a30994 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs @@ -32,41 +32,6 @@ #endregion - #region 鈻� 瀛愭帶浠剁殑Y杞村潗鏍嘷___________________ - - /// <summary> - /// 鎸囧畾浣嶇疆绫诲瀷鑾峰彇Rowlayout鐨勫瓙鎺т欢鐨刌杞村潗鏍�(璇风‘淇濆瓙鎺т欢涓嶅ぇ浜庣埗瀹瑰櫒) - /// </summary> - /// <param name="fatherCtrHeight">鐖舵帶浠剁殑鐪熷疄楂樺害</param> - /// <param name="ctrHeight">瀛愭帶浠剁殑鐪熷疄楂樺害</param> - /// <param name="alignment">浣嶇疆瀵归綈鏂瑰紡</param> - /// <param name="Space">涓婁笅闂寸殑绌虹櫧闂磋窛,鐪佺暐鏃讹紝鍙栬鎺т欢鍏遍�氬彉閲忕殑鍊笺�傝缃负-1鏃讹紝涓嶈绠楃┖鐧介棿璺�</param> - /// <returns></returns> - public int GetControlChidrenYaxis(int fatherCtrHeight, int ctrHeight, UViewAlignment alignment, int Space = 0) - { - if (Space < 0) - { - //涓嶈绠楅棿璺濆�� - Space = 0; - } - - if (alignment == UViewAlignment.Center) - { - return fatherCtrHeight / 2 - ctrHeight / 2; - } - else if (alignment == UViewAlignment.Top) - { - return (fatherCtrHeight / 2 - Space / 2) / 2 - ctrHeight / 2; - } - else - { - int top = fatherCtrHeight / 2 + Space / 2; - return top + (fatherCtrHeight - top) / 2 - ctrHeight / 2; - } - } - - #endregion - #region 鈻� 璁$畻鍥剧墖鐪熷疄澶у皬___________________ /// <summary> @@ -80,5 +45,150 @@ } #endregion + + #region 鈻� 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛╛____________ + + /// <summary> + /// 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛�(褰撹繕娌℃湁鎴块棿鏃�,浼氳繑鍥瀎alse) + /// </summary> + /// <param name="RoomKey">榛樿閫夋嫨鐨勬埧闂翠富閿�</param> + /// <param name="titleText">鏍囬淇℃伅</param> + /// <param name="SelectRoomEvent">纭閫夋嫨鎴块棿鐨勫洖璋冨嚱鏁�(鎴块棿ID,鎴块棿鍚�(浼氭嫾涓婃ゼ灞�))</param> + public bool ShowBottomListRoomView(string RoomKey, string titleText, Action<string, string> SelectRoomEvent) + { + //妤煎眰鍒楄〃鍚嶅瓧 + var listFloorName = new List<string>(); + //妤煎眰鍒楄〃涓婚敭 + var listFloorKeys = new List<string>(); + //鎴块棿鍚嶅瓧 + var listRoomName = new List<List<string>>(); + //鎴块棿涓婚敭 + var listRoomKeys = new List<List<string>>(); + + //鍒濆鍖栨埧闂村垪琛ㄦ暟鎹� + bool result = this.InitRoomListData(ref listFloorName, ref listFloorKeys, ref listRoomName, ref listRoomKeys); + if (result == false) + { + return false; + } + + var room = HdlRoomLogic.Current.GetRoomById(RoomKey); + int index1 = room != null ? listFloorKeys.IndexOf(room.FloorId) : 0; + if (index1 == -1) { index1 = 0; } + int index2 = listRoomKeys[index1].IndexOf(RoomKey); + if (index2 == -1) { index2 = 0; } + + if (listFloorKeys.Count == 0) + { + //鏃犳ゼ灞傛ā寮� + PickerView.Show(listRoomName[0], (value) => + { + RoomKey = listRoomKeys[0][value]; + string roomName = string.Empty; + if (RoomKey != string.Empty) + { + //鎴块棿 + roomName = listRoomName[0][value]; + } + else + { + roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom); + } + SelectRoomEvent?.Invoke(RoomKey, roomName); + + }, index2, titleText, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + } + else + { + //鏈夋ゼ灞傛ā寮� + PickerView.ShowSecondary(listFloorName, listRoomName, (value1, value2) => + { + RoomKey = listRoomKeys[value1][value2]; + string roomName = string.Empty; + if (RoomKey != string.Empty) + { + //妤煎眰+鎴块棿 + roomName = listFloorName[value1] + " " + listRoomName[value1][value2]; + } + else + { + roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom); + } + SelectRoomEvent?.Invoke(RoomKey, roomName); + + }, index1, index2, titleText, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + } + return true; + } + + /// <summary> + /// 鍒濆鍖栨埧闂村垪琛ㄦ暟鎹� + /// </summary> + /// <param name="listFloorName">妤煎眰鍒楄〃鍚嶅瓧</param> + /// <param name="listFloorKeys">妤煎眰鍒楄〃涓婚敭</param> + /// <param name="listRoomName">鎴块棿鍚嶅瓧</param> + /// <param name="listRoomKeys">鎴块棿涓婚敭</param> + private bool InitRoomListData(ref List<string> listFloorName, ref List<string> listFloorKeys, ref List<List<string>> listRoomName, ref List<List<string>> listRoomKeys) + { + var dicFloor = HdlRoomLogic.Current.GetFloorSortList(); + if (dicFloor.Count == 0) + { + //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤 + var listKeys = new List<string>() { "" }; + var listName = new List<string>() { Language.StringByID(R.MyInternationalizationString.uUndistributed) }; + //鎴块棿鍚嶅瓧鍜屼富閿敹闆� + var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty, false); + foreach (var myRoom in listRoom) + { + listName.Add(myRoom.Name); + listKeys.Add(myRoom.Id); + } + listRoomName.Add(listName); + listRoomKeys.Add(listKeys); + } + else + { + //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤(鏈垎閰嶆斁鍦ㄦゼ灞傞偅涓彍鍗�) + var listKeys = new List<string>() { "" }; + var listName = new List<string>() { "" }; + listRoomName.Add(listName); + listRoomKeys.Add(listKeys); + listFloorKeys.Add(""); + listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed)); + + foreach (string fKeys in dicFloor.Keys) + { + var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false); + if (listRoom.Count > 0) + { + //妤煎眰鍚嶅瓧鍜屼富閿敹闆� + listFloorKeys.Add(fKeys); + listFloorName.Add(dicFloor[fKeys]); + //鎴块棿鍚嶅瓧鍜屼富閿敹闆� + listName = new List<string>(); + listKeys = new List<string>(); + foreach (var myRoom in listRoom) + { + listName.Add(myRoom.Name); + listKeys.Add(myRoom.Id); + } + listRoomName.Add(listName); + listRoomKeys.Add(listKeys); + } + } + } + //娌℃湁寤虹珛鎴块棿 + if (listFloorKeys.Count == 0 && listRoomKeys.Count == 0) + { + return false; + } + return true; + } + + #endregion } } -- Gitblit v1.8.0