From f6e34a69f1d1e0b0b3a6252fe20acddca7fe56e5 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期二, 17 三月 2020 15:43:44 +0800
Subject: [PATCH] 2020-03-17-1

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs |  104 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 68 insertions(+), 36 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
index 4c7a4f8..e21099e 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>
@@ -40,6 +44,10 @@
         /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍔熻兘
         /// </summary>
         private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>();
+        /// <summary>
+        /// 淇℃伅缂栬緫鎺т欢
+        /// </summary>
+        private InformationEditorControl tableContr = null;
 
         #endregion
 
@@ -48,10 +56,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));
@@ -72,15 +82,11 @@
             this.ClearBodyFrame();
 
             //鍒濆鍖栨甯�
-            var tableContr = new InformationEditorControl();
+            this.tableContr = new InformationEditorControl();
             this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1128);
 
             //鍒濆鍖栬澶囧洖璺浘鏍�
             this.InitDeviceEpointIcon();
-
-            //鍒濆鍖栨甯冨畬鎴�
-            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
-            tableContr = null;
 
             //淇濆瓨
             var btnFinish = new BottomClickButton();
@@ -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;
@@ -198,11 +204,13 @@
             rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
                 //鍙樻洿鎴块棿
-                Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, roomKeys);
+                HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
             };
 
             //娣诲姞鍔熻兘绫诲瀷琛�
             this.AddFunctionTypeRow();
+            //鍒濆鍖栨甯冨畬鎴�
+            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
         }
 
         #endregion
@@ -214,6 +222,11 @@
         /// </summary>
         private void InitTopRightMenu()
         {
+            //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
+            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false)
+            {
+                return;
+            }
             var btnIcon = new MostRightIconControl(69, 69);
             btnIcon.UnSelectedImagePath = "Item/More.png";
             topFrameLayout.AddChidren(btnIcon);
@@ -234,11 +247,11 @@
             string deviceMenu = string.Empty;
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
             bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
-            if (canTest == true)
-            {
-                menuCount = 2;
-            }
-            var frame = new TopRightMenuControl(menuCount);
+            //if (canTest == true)
+            //{
+            //    menuCount = 2;
+            //}
+            var frame = new TopRightMenuControl(menuCount, 1);
             if (canTest == true)
             {
                 //瀹氫綅
@@ -251,10 +264,10 @@
             }
 
             //鍒犻櫎
-            deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
-            frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
-            {
-            });
+            //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
+            //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
+            //{
+            //});
         }
 
         #endregion
@@ -320,7 +333,7 @@
                         //鏍囬:閫夋嫨鍔熻兘绫诲瀷
                         var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
 
-                        var form = new BottomDialogSelectForm();
+                        var form = new BottomItemSelectForm();
                         form.AddForm(title, listText, nowSelectNo);
                         form.FinishSelectEvent += (selectNo) =>
                         {
@@ -362,7 +375,8 @@
             frameBorder.Gravity = Gravity.CenterHorizontal;
             frameBorder.Width = Application.GetRealWidth(887);
             frameBorder.Height = Application.GetRealHeight(423);
-            frameBorder.BorderWidth = (uint)Application.GetMinRealAverage(3);
+            frameBorder.Radius = (uint)Application.GetRealHeight(6);
+            frameBorder.BorderWidth = 1;
             frameBorder.BorderColor = 0xffd0d0d0;
             bodyFrameLayout.AddChidren(frameBorder);
 
@@ -374,7 +388,7 @@
                 //闇�瑕佹粦鍔ㄦ帶浠�
                 var listControl = new VerticalScrolViewLayout();
                 listControl.Height = frameBorder.Height;
-                bodyFrameLayout.AddChidren(listControl);
+                frameBorder.AddChidren(listControl);
 
                 listControl.AddChidren(frameBack);
             }
@@ -388,11 +402,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 +421,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 +437,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;
             //闂磋窛
@@ -437,7 +452,7 @@
                 btnIcon.Name = "btn" + listDevice[i].DeviceEpoint;
                 btnIcon.X = defultXX + i * (frame.Height + space);
                 btnIcon.Radius = (uint)frame.Height / 2;
-                btnIcon.BorderWidth = (uint)Application.GetMinRealAverage(6);
+                btnIcon.BorderWidth = 2;
                 btnIcon.BorderColor = 0xff979797;
                 btnIcon.TextAlignment = TextAlignment.Center;
                 btnIcon.TextColor = UserCenterColor.Current.TextGrayColor3;
@@ -447,12 +462,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 +480,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 +490,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 +511,12 @@
                 }
                 return -1;
             });
+            if (hadDevice == false)
+            {
+                //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓�
+                this.deviceObj = listRelay[0];
+            }
+
             //浠庝笅寰�涓�4涓负涓�缁�
             var listIcon = new List<List<CommonDevice>>();
             var listTemp = new List<CommonDevice>();
@@ -536,7 +568,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