From 081ea8d273048fd03756718ac6fb48a3c09218e9 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期二, 29 十月 2019 13:10:00 +0800 Subject: [PATCH] Merge branch 'dev-tzy' into DEV_GXC --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs | 68 +++++++++++++++++++++++----------- 1 files changed, 46 insertions(+), 22 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs index 15b929a..dab5d02 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs @@ -3,7 +3,7 @@ using System.Text; using ZigBee.Device; -namespace Shared.Phone.UserCenter.DeviceRelay +namespace Shared.Phone.UserCenter.Device { /// <summary> /// 璁惧鐨勫姛鑳借缃晫闈� @@ -29,9 +29,13 @@ /// </summary> private FrameCaptionInputControl btnDeviceName = null; /// <summary> - /// 璁惧Mac鍦板潃 + /// 璁惧鐨勬煇涓�鍥炶矾 /// </summary> - private string deviceMac = string.Empty; + private CommonDevice deviceObj = null; + /// <summary> + /// 鍙樉绀哄悓涓�绉嶇被鍨嬬殑鍥炶矾 + /// </summary> + private bool onlyType = false; /// <summary> /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧 /// </summary> @@ -48,10 +52,12 @@ /// <summary> /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) /// </summary> - /// <param name="i_deviceMac">璁惧Mac鍦板潃</param> - public void ShowForm(string i_deviceMac) + /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param> + /// <param name="i_onlyType">鍙樉绀哄悓涓�绉嶇被鍨嬬殑鍥炶矾</param> + public void ShowForm(CommonDevice i_device, bool i_onlyType) { - this.deviceMac = i_deviceMac; + this.deviceObj = i_device; + this.onlyType = i_onlyType; //璁剧疆澶撮儴淇℃伅 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp)); @@ -94,7 +100,7 @@ this.ShowProgressBar(); foreach (var epoint in dicDeviceSaveName.Keys) { - var device = Common.LocalDevice.Current.GetDevice(deviceMac, epoint); + var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint); if (device == null || dicDeviceSaveName[epoint] == string.Empty) { //涓嶈兘鍏佽绌虹櫧鍚嶅瓧 @@ -116,7 +122,7 @@ } foreach (var epoint in dicDeviceFuncType.Keys) { - var device = Common.LocalDevice.Current.GetDevice(deviceMac, epoint); + var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint); if (device == null) { continue; @@ -238,7 +244,7 @@ { menuCount = 2; } - var frame = new TopRightMenuControl(this, menuCount); + var frame = new TopRightMenuControl(menuCount); if (canTest == true) { //瀹氫綅 @@ -360,9 +366,9 @@ var frameBorder = new FrameLayout(); frameBorder.Y = Application.GetRealHeight(147); frameBorder.Gravity = Gravity.CenterHorizontal; - frameBorder.Width = Application.GetRealWidth(887); - frameBorder.Height = Application.GetRealHeight(423); - frameBorder.BorderWidth = (uint)Application.GetMinRealAverage(3); + frameBorder.Width = Application.GetMinRealAverage(887); + frameBorder.Height = Application.GetMinRealAverage(423); + frameBorder.BorderWidth = 3; frameBorder.BorderColor = 0xffd0d0d0; bodyFrameLayout.AddChidren(frameBorder); @@ -374,7 +380,7 @@ //闇�瑕佹粦鍔ㄦ帶浠� var listControl = new VerticalScrolViewLayout(); listControl.Height = frameBorder.Height; - bodyFrameLayout.AddChidren(listControl); + frameBorder.AddChidren(listControl); listControl.AddChidren(frameBack); } @@ -388,11 +394,11 @@ for (int i = 0; i < listIcon.Count; i++) { var frame = new FrameLayout(); - frame.Width = Application.GetMinRealAverage(887); + frame.Width = frameBorder.Width; frame.Height = Application.GetMinRealAverage(124); frameBack.AddChidren(frame); //鍒濆鍖栦竴琛岃澶囧浘鏍� - this.InitDeviceIconFrame(frame, listIcon[i], i == 0, ref index); + this.InitDeviceIconFrame(frame, listIcon[i], ref index); if (listIcon.Count == 1) { @@ -407,7 +413,9 @@ if (listIcon.Count > 2) { //璁$畻鐪熷疄楂樺害 - int realHeight = Application.GetMinRealAverage(58 + 58) + (frameBack.ChildrenCount - 1) * Application.GetMinRealAverage(124 + 60); + int realHeight = Application.GetMinRealAverage(58 + 58);//涓婁笅闂磋窛 + realHeight += frameBack.ChildrenCount * Application.GetMinRealAverage(124);//鍦嗗湀楂樺害 + realHeight += (frameBack.ChildrenCount-1) * Application.GetMinRealAverage(60);//鍦嗗湀闂磋窛 if (realHeight > frameBack.Height) { //鍙樻洿楂樺害 @@ -421,10 +429,9 @@ /// </summary> /// <param name="frame"></param> /// <param name="listDevice"></param> - /// <param name="isFirstRow"></param> /// <param name="index"></param> /// <returns></returns> - private void InitDeviceIconFrame(FrameLayout frame, List<CommonDevice> listDevice, bool isFirstRow, ref int index) + private void InitDeviceIconFrame(FrameLayout frame, List<CommonDevice> listDevice, ref int index) { NormalViewControl btnTemp = null; //闂磋窛 @@ -447,12 +454,12 @@ //鐐瑰嚮浜嬩欢 btnIcon.ButtonClickEvent += this.DeviceEpointSelectEvent; - if (i == 0 && isFirstRow == true) + if (listDevice[i].DeviceEpoint == deviceObj.DeviceEpoint) { btnTemp = btnIcon; } } - if (isFirstRow == true) + if (btnTemp != null) { //鍒濆鍖栬彍鍗曡 this.DeviceEpointSelectEvent(btnTemp, null); @@ -465,7 +472,8 @@ /// <returns></returns> private List<List<CommonDevice>> GetAllDeviceGroup() { - var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); + bool hadDevice = false; + var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr); var listRelay = new List<CommonDevice>(); foreach (var device in listDevice) { @@ -474,7 +482,17 @@ //杩欎釜鐣岄潰涓嶅鐞嗗共鎺ョ偣 continue; } + if (this.onlyType == true && device.Type != deviceObj.Type) + { + //鍙鍚屼竴绉嶇被鍨嬬殑 + continue; + } listRelay.Add(device); + if (device.DeviceEpoint == deviceObj.DeviceEpoint) + { + //鑳藉鍖归厤寰楀埌杩欎釜鍥炶矾 + hadDevice = true; + } } //鎺掑簭 listRelay.Sort((obj1, obj2) => @@ -485,6 +503,12 @@ } return -1; }); + if (hadDevice == false) + { + //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓� + this.deviceObj = listRelay[0]; + } + //浠庝笅寰�涓�4涓负涓�缁� var listIcon = new List<List<CommonDevice>>(); var listTemp = new List<CommonDevice>(); @@ -536,7 +560,7 @@ nowContr.TextColor = UserCenterColor.Current.TextColor1; nowSelectControl = nowContr; - nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceMac, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty))); + nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty))); //閲嶆柊鍒濆鍖栬彍鍗曡 this.InitMenuRow(); -- Gitblit v1.8.0