From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs | 305 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 209 insertions(+), 96 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs index 4b551d7..fb3e925 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs @@ -15,7 +15,7 @@ /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalListControl listview = null; + private FrameListControl listview = null; /// <summary> /// 褰撳墠閫夋嫨鐨勮澶� /// </summary> @@ -29,17 +29,25 @@ /// </summary> private FrameCaptionInputControl btnDeviceName = null; /// <summary> - /// 璁惧Mac鍦板潃 + /// 璁惧鐨勬煇涓�鍥炶矾 /// </summary> - private string deviceMac = string.Empty; + private CommonDevice deviceObj = null; /// <summary> /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧 /// </summary> private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>(); /// <summary> - /// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭� + /// 绠�绾﹂潰鏉跨殑闇囧姩鏁版嵁 /// </summary> - private DeviceEnumInfo deviceEnumInfo = null; + private HdlDevicePanelLogic.PanelVibrationInfo vibrationInfo = null; + /// <summary> + /// 鏄惁宸茬粡璇诲彇浜嗛渿鍔ㄦ暟鎹� + /// </summary> + private bool hadReadVibrationInfo = false; + /// <summary> + /// 淇℃伅缂栬緫鎺т欢 + /// </summary> + private InformationEditorControl tableContr = null; #endregion @@ -48,13 +56,10 @@ /// <summary> /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) /// </summary> - /// <param name="i_deviceMac">璁惧Mac鍦板潃</param> - public void ShowForm(string i_deviceMac) + /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param> + public void ShowForm(CommonDevice i_device) { - this.deviceMac = i_deviceMac; - var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); - //鑾峰彇杩欎竴鍫嗚澶囨椂灞炰簬浠�涔堢被鍨嬬殑 - this.deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice); + this.deviceObj = i_device; //璁剧疆澶撮儴淇℃伅 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPanelSettion)); @@ -74,22 +79,22 @@ //娓呯┖bodyFrame this.ClearBodyFrame(); + var listBackControl = new VerticalFrameControl(); + listBackControl.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listBackControl); + //鍒濆鍖栨甯� - var tableContr = new InformationEditorControl(); - this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1028); + this.tableContr = new InformationEditorControl(); + this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028); //鍒濆鍖栬澶囧洖璺浘鏍� - this.InitDeviceEpointIcon(); - - //鍒濆鍖栨甯冨畬鎴� - tableContr.FinishInitControl(bodyFrameLayout, this.listview); - tableContr = null; + this.InitDeviceEpointIcon(listBackControl); //淇濆瓨 var btnFinish = new BottomClickButton(); btnFinish.TextID = R.MyInternationalizationString.uSave; bodyFrameLayout.AddChidren(btnFinish); - btnFinish.ButtonClickEvent += async (sender, e) => + btnFinish.ButtonClickEvent += (sender, e) => { //璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧 dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim(); @@ -97,7 +102,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) { //涓嶈兘鍏佽绌虹櫧鍚嶅瓧 @@ -108,7 +113,7 @@ if (oldName != newName) { //璁惧鍚嶇О淇敼 - var result = await Common.LocalDevice.Current.ReName(device, newName); + var result = Common.LocalDevice.Current.ReName(device, newName); if (result == false) { //鍏抽棴 @@ -142,7 +147,7 @@ listview.AddChidren(btnDeviceName); btnDeviceName.InitControl(); btnDeviceName.AddBottomLine(); - btnDeviceName.txtInput.FinishInputEvent += async () => + btnDeviceName.txtInput.FinishInputEvent += () => { string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice); if (btnDeviceName.Text.Trim() == string.Empty) @@ -153,7 +158,7 @@ if (oldName != btnDeviceName.Text.Trim()) { //璁惧鍚嶇О淇敼 - var result = await Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim()); + var result = Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim()); if (result == false) { return; @@ -173,13 +178,18 @@ rowBeloneArea.SelectRoomEvent += (roomKeys) => { //鍙樻洿鎴块棿 - Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, roomKeys); + HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys); }; //娣诲姞缁戝畾鐩爣琛� this.AddBindRow(); //娣诲姞鑳屽厜鐏 this.AddBackLightRow(); + //娣诲姞闇囧姩鍙嶉琛� + this.AddVibrationFeedbackRow(); + + //鍒濆鍖栨甯冨畬鎴� + tableContr.FinishInitControl(); } #endregion @@ -191,6 +201,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); @@ -211,11 +226,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) { //瀹氫綅 @@ -228,10 +243,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 @@ -295,14 +310,102 @@ #endregion + #region 鈻� 闇囧姩鍙嶉___________________________ + + /// <summary> + /// 娣诲姞闇囧姩鍙嶉琛� + /// </summary> + private void AddVibrationFeedbackRow() + { + var listDevice = Common.LocalDevice.Current.GetDevicesByMac(nowSelectDevice.DeviceAddr, false); + var myType = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice); + //鍙湁绠�绾﹂潰鏉挎墠浼氭湁杩欎釜鑿滃崟 + if (myType.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleTwo + || myType.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleThree + || myType.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleFour + || myType.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FourButtonScene + || myType.ConcreteType == Common.DeviceConcreteType.ButtonPanel_TwoButtonCurtain) + { + //闇囧姩鍙嶉 + var rowContr = new FrameRowControl(listview.rowSpace / 2); + rowContr.UseClickStatu = false; + listview.AddChidren(rowContr); + rowContr.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uVibrationFeedback), 600); + //搴曠嚎 + rowContr.AddBottomLine(); + //鍙崇澶� + var btnSwitch = rowContr.AddMostRightSwitchIcon(); + if (vibrationInfo != null) + { + btnSwitch.IsSelected = vibrationInfo.A闇囧姩浣胯兘; + } + + btnSwitch.ButtonClickEvent += (sender, e) => + { + if (vibrationInfo == null) + { + //鑾峰彇鏁版嵁澶辫触鏃�,缁欎粬鐜�,浣嗘槸娌℃晥鏋� + btnSwitch.IsSelected = !btnSwitch.IsSelected; + return; + } + //鐐瑰嚮涓�娆′箣鍚�,涓嶈兘鍐嶆鐐瑰嚮 + btnSwitch.CanClick = false; + bool statu = !btnSwitch.IsSelected; + + HdlThreadLogic.Current.RunThread(() => + { + vibrationInfo.A闇囧姩浣胯兘 = statu; + //璁剧疆绠�绾﹂潰鏉块渿鍔ㄥ姛鑳界殑淇℃伅 + var result = HdlDevicePanelLogic.Current.SetPanelVibrationData(nowSelectDevice, vibrationInfo); + if (result == true) + { + HdlThreadLogic.Current.RunMain(() => + { + btnSwitch.IsSelected = statu; + }); + } + else + { + //澶辫触鏃�,鏁版嵁杩樺師 + vibrationInfo.A闇囧姩浣胯兘 = !vibrationInfo.A闇囧姩浣胯兘; + } + //鍏佽涓嬩竴娆$偣鍑� + btnSwitch.CanClick = true; + }); + }; + if (hadReadVibrationInfo == true) + { + //涓嶅啀璇诲彇 + return; + } + this.hadReadVibrationInfo = true; + + HdlThreadLogic.Current.RunThread(() => + { + //鑾峰彇绠�绾﹂潰鏉块渿鍔ㄥ姛鑳界殑淇℃伅(null琛ㄧず鍑洪敊) + vibrationInfo = HdlDevicePanelLogic.Current.GetPanelVibrationData(nowSelectDevice); + if (vibrationInfo != null) + { + HdlThreadLogic.Current.RunMain(() => + { + btnSwitch.IsSelected = vibrationInfo.A闇囧姩浣胯兘; + }); + } + }); + } + } + + #endregion + #region 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________ /// <summary> /// 鍒濆鍖栬澶囧洖璺浘鏍� /// </summary> - private void InitDeviceEpointIcon() + private void InitDeviceEpointIcon(VerticalFrameControl listBackControl) { - var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); + bool hadDevice = false; + var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr); var listOffSwitch = new List<CommonDevice>(); foreach (var device in listDevice) { @@ -310,6 +413,11 @@ { //鍙骞叉帴鐐� listOffSwitch.Add(device); + if (device.DeviceEpoint == deviceObj.DeviceEpoint) + { + //鑳藉鍖归厤寰楀埌杩欎釜鍥炶矾 + hadDevice = true; + } } } //鎺掑簭 @@ -321,16 +429,21 @@ } return -1; }); + if (hadDevice == false) + { + //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓� + this.deviceObj = listOffSwitch[0]; + } var frameBorder = new FrameLayout(); frameBorder.Y = Application.GetRealHeight(150); frameBorder.Gravity = Gravity.CenterHorizontal; - frameBorder.Width = Application.GetMinRealAverage(426); - frameBorder.Height = Application.GetMinRealAverage(426); - bodyFrameLayout.AddChidren(frameBorder); + frameBorder.Width = this.GetPictrueRealSize(426); + frameBorder.Height = this.GetPictrueRealSize(426); + listBackControl.frameTable.AddChidren(frameBorder); var btnPic = new PicViewControl(frameBorder.Width, frameBorder.Height, false); - btnPic.UnSelectedImagePath = "Device/PanelTable.png"; + btnPic.UnSelectedImagePath = "DeviceItem/PanelTable.png"; frameBorder.AddChidren(btnPic); if (listOffSwitch.Count == 4) @@ -357,18 +470,18 @@ /// <param name="device">璁惧瀵硅薄</param> /// <param name="isFirst">鏄惁鏄涓�涓�</param> /// <returns></returns> - private void InitDeviceIcon(FrameLayoutControl frame, CommonDevice device,bool isFirst) + private void InitDeviceIcon(FrameLayoutStatuControl frame, CommonDevice device) { //涓嶄娇鐢ㄧ偣鍑荤壒鏁� frame.UseClickStatu = false; - var btnIcon = new NormalViewControl(Application.GetMinRealAverage(52), Application.GetMinRealAverage(52), false); + var btnIcon = new NormalViewControl(this.GetPictrueRealSize(52), this.GetPictrueRealSize(52), false); btnIcon.Name = "btn" + device.DeviceEpoint; btnIcon.Gravity = Gravity.Center; - btnIcon.Radius = (uint)Application.GetMinRealAverage(6); + btnIcon.RadiusEx = 16; btnIcon.BorderWidth = 2; btnIcon.BorderColor = 0xff979797; - frame.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly); + frame.AddChidren(btnIcon, ChidrenBindMode.BindEvent); //鐐瑰嚮浜嬩欢 frame.ButtonClickEvent += (sender, e) => { @@ -376,7 +489,7 @@ this.DeviceEpointSelectEvent(btnIcon, null); }; - if (isFirst == true) + if (device.DeviceEpoint == deviceObj.DeviceEpoint) { //鍒濆鍖栬彍鍗曡 this.DeviceEpointSelectEvent(btnIcon, null); @@ -395,24 +508,24 @@ private void InitTwoButtonPanelIcon(FrameLayout frameBack, List<CommonDevice> listDevice) { //鎸夐敭1 - var frame1 = new FrameLayoutControl(); - frame1.Height = Application.GetMinRealAverage(110); - frame1.Width = Application.GetMinRealAverage(110); - frame1.Y = Application.GetMinRealAverage(63); + var frame1 = new FrameLayoutStatuControl(); + frame1.Height = this.GetPictrueRealSize(110); + frame1.Width = this.GetPictrueRealSize(110); + frame1.Y = this.GetPictrueRealSize(63); frame1.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame1, listDevice[0], true); + this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 - var frame2 = new FrameLayoutControl(); - frame2.Height = Application.GetMinRealAverage(110); - frame2.Width = Application.GetMinRealAverage(110); - frame2.Y = Application.GetMinRealAverage(245); + var frame2 = new FrameLayoutStatuControl(); + frame2.Height = this.GetPictrueRealSize(110); + frame2.Width = this.GetPictrueRealSize(110); + frame2.Y = this.GetPictrueRealSize(245); frame2.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame2, listDevice[1], false); + this.InitDeviceIcon(frame2, listDevice[1]); } #endregion @@ -427,34 +540,34 @@ private void InitThreeButtonPanelIcon(FrameLayout frameBack, List<CommonDevice> listDevice) { //鎸夐敭1 - var frame1 = new FrameLayoutControl(); - frame1.Height = Application.GetMinRealAverage(110); - frame1.Width = Application.GetMinRealAverage(110); - frame1.Y = Application.GetMinRealAverage(63); + var frame1 = new FrameLayoutStatuControl(); + frame1.Height = this.GetPictrueRealSize(110); + frame1.Width = this.GetPictrueRealSize(110); + frame1.Y = this.GetPictrueRealSize(63); frame1.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame1, listDevice[0], true); + this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 - var frame2 = new FrameLayoutControl(); - frame2.Height = Application.GetMinRealAverage(110); - frame2.Width = Application.GetMinRealAverage(110); - frame2.X = Application.GetMinRealAverage(63); - frame2.Y = Application.GetMinRealAverage(245); + var frame2 = new FrameLayoutStatuControl(); + frame2.Height = this.GetPictrueRealSize(110); + frame2.Width = this.GetPictrueRealSize(110); + frame2.X = this.GetPictrueRealSize(63); + frame2.Y = this.GetPictrueRealSize(245); frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame2, listDevice[1], false); + this.InitDeviceIcon(frame2, listDevice[1]); //鎸夐敭3 - var frame3 = new FrameLayoutControl(); - frame3.Height = Application.GetMinRealAverage(110); - frame3.Width = Application.GetMinRealAverage(110); - frame3.X = Application.GetMinRealAverage(245); - frame3.Y = Application.GetMinRealAverage(245); + var frame3 = new FrameLayoutStatuControl(); + frame3.Height = this.GetPictrueRealSize(110); + frame3.Width = this.GetPictrueRealSize(110); + frame3.X = this.GetPictrueRealSize(245); + frame3.Y = this.GetPictrueRealSize(245); frameBack.AddChidren(frame3); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame3, listDevice[2], false); + this.InitDeviceIcon(frame3, listDevice[2]); } #endregion @@ -469,44 +582,44 @@ private void InitFourButtonPanelIcon(FrameLayout frameBack, List<CommonDevice> listDevice) { //鎸夐敭1 - var frame1 = new FrameLayoutControl(); - frame1.Height = Application.GetMinRealAverage(110); - frame1.Width = Application.GetMinRealAverage(110); - frame1.X = Application.GetMinRealAverage(63); - frame1.Y = Application.GetMinRealAverage(63); + var frame1 = new FrameLayoutStatuControl(); + frame1.Height = this.GetPictrueRealSize(110); + frame1.Width = this.GetPictrueRealSize(110); + frame1.X = this.GetPictrueRealSize(63); + frame1.Y = this.GetPictrueRealSize(63); frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame1, listDevice[0], true); + this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 - var frame2 = new FrameLayoutControl(); - frame2.Height = Application.GetMinRealAverage(110); - frame2.Width = Application.GetMinRealAverage(110); - frame2.X = Application.GetMinRealAverage(245); - frame2.Y = Application.GetMinRealAverage(63); + var frame2 = new FrameLayoutStatuControl(); + frame2.Height = this.GetPictrueRealSize(110); + frame2.Width = this.GetPictrueRealSize(110); + frame2.X = this.GetPictrueRealSize(245); + frame2.Y = this.GetPictrueRealSize(63); frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame2, listDevice[1], false); + this.InitDeviceIcon(frame2, listDevice[1]); //鎸夐敭3 - var frame3 = new FrameLayoutControl(); - frame3.Height = Application.GetMinRealAverage(110); - frame3.Width = Application.GetMinRealAverage(110); - frame3.X = Application.GetMinRealAverage(63); - frame3.Y = Application.GetMinRealAverage(245); + var frame3 = new FrameLayoutStatuControl(); + frame3.Height = this.GetPictrueRealSize(110); + frame3.Width = this.GetPictrueRealSize(110); + frame3.X = this.GetPictrueRealSize(63); + frame3.Y = this.GetPictrueRealSize(245); frameBack.AddChidren(frame3); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame3, listDevice[2], false); + this.InitDeviceIcon(frame3, listDevice[2]); //鎸夐敭4 - var frame4 = new FrameLayoutControl(); - frame4.Height = Application.GetMinRealAverage(110); - frame4.Width = Application.GetMinRealAverage(110); - frame4.X = Application.GetMinRealAverage(245); - frame4.Y = Application.GetMinRealAverage(245); + var frame4 = new FrameLayoutStatuControl(); + frame4.Height = this.GetPictrueRealSize(110); + frame4.Width = this.GetPictrueRealSize(110); + frame4.X = this.GetPictrueRealSize(245); + frame4.Y = this.GetPictrueRealSize(245); frameBack.AddChidren(frame4); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame4, listDevice[3], false); + this.InitDeviceIcon(frame4, listDevice[3]); } #endregion @@ -537,7 +650,7 @@ nowContr.BorderColor = 0xfffb744a; 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