From ecba45c93391066bc30c7bd602c3a7683fbb99a7 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期五, 31 七月 2020 10:56:12 +0800 Subject: [PATCH] 临时备份 --- ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs | 121 +++++++++++++++++++++++++++------------ 1 files changed, 83 insertions(+), 38 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs index 0828d24..d30d6cd 100755 --- a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs +++ b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs @@ -23,11 +23,11 @@ /// <summary> /// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView(楂樺害涓鸿澶囪彍鍗曠殑閭d釜鐧借壊鑳屾櫙鐨勪笂閮ㄥ埌灞忓箷搴曢儴) /// </summary> - public FrameLayout functionSceneBodyView; + public NormalFrameLayout functionSceneBodyView; /// <summary> /// 涓儴鑳屾櫙bodyView(楂樺害涓哄満鏅姛鑳藉垏鎹㈡帶浠剁殑搴曢儴鍒板睆骞曞簳閮�) /// </summary> - public FrameLayout functionSceneAutoBodyView; + public NormalFrameLayout functionSceneAutoBodyView; /// <summary> /// 鍙充笂瑙掓坊鍔犳寜閽� /// </summary> @@ -54,6 +54,7 @@ /// </summary> public CategoryMainForm() { + this.FormID = "CategoryMainForm"; BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; instance = this; } @@ -65,6 +66,10 @@ { //鍏堟竻闄ゅ惂 this.RemoveAll(); + + //鍒濆鍖栭粯璁ゆゼ灞侷D + this.InitDefultFloorId(); + //鍒濆鍖栧ご閮ㄦ帶浠� this.InitTopControl(); //鍒濆鍖栦腑闂存帶浠� @@ -81,7 +86,7 @@ private void InitTopControl() { //澶撮儴FrameLayout - this.topFrameLayout = new FrameLayout(); + this.topFrameLayout = new NormalFrameLayout(); topFrameLayout.Y = Application.GetRealHeight(104); topFrameLayout.Height = Application.GetRealHeight(127); topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; @@ -129,7 +134,7 @@ private void InitMidControls() { //搴旇鏄痓ody鍚� - this.bodyFrameLayout = new FrameLayout(); + this.bodyFrameLayout = new NormalFrameLayout(); bodyFrameLayout.Y = topFrameLayout.Bottom; bodyFrameLayout.Height = this.Height - topFrameLayout.Bottom; bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; @@ -151,18 +156,21 @@ btnFloorName.Y = Application.GetRealHeight(17); btnFloorName.TextAlignment = TextAlignment.CenterRight; btnFloorName.IsBold = true; - btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(Config.Instance.Home.CurrentFloorId); + btnFloorName.Text = Common.Config.Instance.Home.GetCurrentFloorName; frameSwitchBack.AddChidren(btnFloorName); btnFloorName.ButtonClickEvent += (sender, e) => { var floors = new SelectFloorForm(); + floors.CurFloorId = Config.Instance.Home.CurrentFloorId; AddChidren(floors); floors.Init(580, 330, Direction.Right); - floors.changeFloor = true; floors.FloorAction += (floorId) => { - btnFloorName.Text = Config.Instance.Home.GetFloorNameById(floorId); + btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(floorId); + Config.Instance.Home.CurrentFloorId = floorId; HdlRoomLogic.Current.NowCategoryRoom = HdlRoomLogic.Current.GetLoveRoom(); + //杩欎釜鏃跺�欓渶瑕佸埛鏂颁富椤� + UserPage.Instance.RefreshMainPageForm = true; //鍒锋柊bodyView this.RefreshBodyView(); }; @@ -180,13 +188,14 @@ } //鐩墠涓嶇煡閬撻儹闆煄鐨勮繖涓叿浣撴斁鍦ㄥ摢涓殑浣嶇疆 - this.functionSceneAutoBodyView = new FrameLayout(); + this.functionSceneAutoBodyView = new NormalFrameLayout(); functionSceneAutoBodyView.Y = frameSwitchBack.Bottom; functionSceneAutoBodyView.Height = bodyFrameLayout.Height - frameSwitchBack.Bottom; bodyFrameLayout.AddChidren(functionSceneAutoBodyView); //鍦烘櫙,鍔熻兘,鑷姩鍖栫殑鍒囨崲鎺т欢 var switchContr = new SceneFunctionSwitchControl(); + switchContr.Y = Application.GetRealHeight(40); switchContr.Width = Application.GetRealWidth(650); switchContr.Gravity = Gravity.CenterVertical; frameSwitchBack.AddChidren(switchContr); @@ -275,7 +284,7 @@ private void InitRoomMenuControl() { //褰撳墠妤煎眰鐨勫叏閮ㄦ埧闂� - var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom(); + var lisrRoom = HdlRoomLogic.Current.GetRoomsByFloorIdAppendLoveRoom(Config.Instance.Home.CurrentFloorId); if (HdlRoomLogic.Current.NowCategoryRoom == null) { //璁剧疆绗竴涓负鍒濆鎴块棿 @@ -316,7 +325,7 @@ }; //鍔熻兘鍜屽満鏅痓odyView - this.functionSceneBodyView = new FrameLayout(); + this.functionSceneBodyView = new NormalFrameLayout(); functionSceneBodyView.Y = roomSwitchContr.Bottom; functionSceneBodyView.Height = functionSceneAutoBodyView.Height - roomSwitchContr.Bottom; functionSceneAutoBodyView.AddChidren(functionSceneBodyView); @@ -390,9 +399,9 @@ //涓婁竴娆¢�夋嫨鐨勮彍鍗� MainPage.Controls.DeviceFunctionUnallocatedControl oldSelectContr = null; DeviceRowInfo nowSelectDeviceInfo = null; - foreach (int Textid in dicGroupDevice.Keys) + foreach (string strText in dicGroupDevice.Keys) { - var rowInfo = dicGroupDevice[Textid]; + var rowInfo = dicGroupDevice[strText]; //璁惧绫诲瀷鐨勫鍣� var devieFrame = new FrameLayout(); @@ -402,11 +411,11 @@ //鑿滃崟鍥剧墖鎺т欢 var deviceObjContr = new MainPage.Controls.DeviceFunctionUnallocatedControl(); devieFrame.AddChidren(deviceObjContr); - deviceObjContr.InitControl(Language.StringByID(Textid), rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys); + deviceObjContr.InitControl(strText, rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys); deviceObjContr.ButtonClickEvent += (sender, e) => { //閫夋嫨鐨勬槸鍚屼竴涓笢瑗跨殑璇�,涓嶅鐞� - if (nowSelectDeviceInfo.TextId != rowInfo.TextId) + if (nowSelectDeviceInfo.Text != rowInfo.Text) { //涓婁竴娆$殑鑿滃崟鍙栨秷,鏈鑿滃崟閫夋嫨 oldSelectContr.SetSelectStatu(false); @@ -532,6 +541,11 @@ { cardContr = new Controls.DeviceDoorLockRowControl(); } + //鑹叉俯鐏� + else if (device.Type == DeviceType.ColorTemperatureLight) + { + cardContr = new Controls.DeviceColorTemperatureRowControl(); + } //鏃犳硶璇嗗埆 else { @@ -622,14 +636,18 @@ HdlThreadLogic.Current.RunThread(() => { //浠庣綉鍏冲埛鏂板満鏅垪琛� - bool result = HdlSceneLogic.Current.RefreshSceneUIList(); + bool result = HdlSceneLogic.Current.RefreshSceneUIList(false); HdlThreadLogic.Current.RunMain(() => { listview1.EndHeaderRefreshing(); - if (result == true) + //listview1.Parent涓簄ull浠h〃瀹冨垏鎹㈡埧闂翠簡 + if (result == true && listview1.Parent != null) { + //鍒锋柊鍦烘櫙鐨勬椂鍊�,鍏抽棴宸﹀垝鑿滃崟鐨勬湭鍒嗛厤鐣岄潰 + MainPage.LeftListRoomViewFrom.Instance?.CloseUnallocatedRoomForm(); //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�) this.functionSceneBodyView.RemoveAll(); + HdlThreadLogic.Current.RunMainInThread(() => { //鍒锋柊鍦烘櫙鍒嗘敮鎺т欢 @@ -769,13 +787,13 @@ while (remainTime > 0 && this.Parent != null) { System.Threading.Thread.Sleep(1000); - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { sceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText)); - }); + }, ShowErrorMode.NO); remainTime--; } - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { if (listview.Parent != null) { @@ -783,7 +801,7 @@ //寮�鍚疞oading鐗规晥 sceneContr.StartLoadingApreal(); } - }); + }, ShowErrorMode.NO); }); } @@ -797,7 +815,7 @@ private void AddNormalDeviceReportEvent() { //璁惧灞炴�т笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊) - HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) => + HdlGatewayReceiveLogic.Current.AddAttributeEvent("CategoryMainFormDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) => { HdlThreadLogic.Current.RunMain(() => { @@ -810,13 +828,22 @@ //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉 2020.05.09:鍒犻櫎Ack涓婚 this.dicDeviceRowControl[mainKeys].SetHadGetResponeResultStatu(); //鍒锋柊鎺т欢 - this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice); + if (locadevice.Type != DeviceType.IASZone) + { + //浼犳劅鍣ㄤ笉闇�瑕佸睘鎬т笂鎶�(浣嗘槸閭d釜鐞冨瀷浼犳劅鍣ㄥ眳鐒朵細灞炴�т笂鎶�) + this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice); + } + else if (report.DeviceStatusReport.CluterID == 1) + { + //杩欎釜鏄數閲忔帹閫� + this.dicDeviceRowControl[mainKeys].RefreshBatteryStatu(); + } } }, ShowErrorMode.NO); }); //璁惧鍦ㄧ嚎涓婃姤(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊) - HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceOnline", ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤, (report) => + HdlGatewayReceiveLogic.Current.AddAttributeEvent("CategoryMainFormDeviceOnline", ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤, (report) => { HdlThreadLogic.Current.RunMain(() => { @@ -843,7 +870,7 @@ private void AddSensorDeviceReportEvent() { //浼犳劅鍣ㄤ笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊) - HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) => + HdlGatewayReceiveLogic.Current.AddAttributeEvent("CategoryMainFormSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) => { HdlThreadLogic.Current.RunMain(() => { @@ -851,10 +878,8 @@ string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report); if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true) { - //鏈湴璁惧瀵硅薄 - var locadevice = LocalDevice.Current.GetDevice(mainKeys); - //鍒锋柊鍗$墖淇℃伅 - this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice); + //寮�鍚闂儊鐗规晥 + this.dicDeviceRowControl[mainKeys].StartRowLightAppeal(); } }, ShowErrorMode.NO); @@ -869,7 +894,7 @@ /// 鑾峰彇鍒嗙粍鍚庣殑璁惧 /// </summary> /// <returns></returns> - private Dictionary<int, DeviceRowInfo> GetAllGroupDevice(Common.Room room) + private Dictionary<string, DeviceRowInfo> GetAllGroupDevice(Common.Room room) { //鍏ㄩ儴鐨勮澶� var listDeviceTemp = HdlRoomLogic.Current.GetRoomListDevice(room); @@ -886,23 +911,23 @@ //鏍规嵁璁惧鎵�灞炵被鍨嬫帓搴� listDevice = LocalDevice.Current.SortDeviceByBelongType(listDevice); - var dic = new Dictionary<int, DeviceRowInfo>(); + var dic = new Dictionary<string, DeviceRowInfo>(); foreach (var device in listDevice) { var typeInfo = LocalDevice.Current.GetDeviceBelongEnumInfo(device); //鎸夋墍灞濱D鍒嗙粍 - if (dic.ContainsKey(typeInfo.BeloneTextId) == false) + if (dic.ContainsKey(typeInfo.BeloneText) == false) { - dic[typeInfo.BeloneTextId] = new DeviceRowInfo(); + dic[typeInfo.BeloneText] = new DeviceRowInfo(); string path1 = string.Empty; string path2 = string.Empty; //鑾峰彇鍥剧墖 LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo.ConcreteType, ref path1, ref path2); - dic[typeInfo.BeloneTextId].IconPath = path1; - dic[typeInfo.BeloneTextId].IconPathSelected = path2; - dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId; + dic[typeInfo.BeloneText].IconPath = path1; + dic[typeInfo.BeloneText].IconPathSelected = path2; + dic[typeInfo.BeloneText].Text = typeInfo.BeloneText; } - dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device)); + dic[typeInfo.BeloneText].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device)); } return dic; } @@ -918,6 +943,9 @@ { //鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖ instance = null; + HdlGatewayReceiveLogic.Current.RemoveEvent("CategoryMainFormDeviceStatus"); + HdlGatewayReceiveLogic.Current.RemoveEvent("CategoryMainFormDeviceOnline"); + HdlGatewayReceiveLogic.Current.RemoveEvent("CategoryMainFormSensor"); base.CloseFormBefore(); } @@ -955,6 +983,23 @@ return timeStr; } + /// <summary> + /// 鍒濆鍖栭粯璁ゆゼ灞侷D + /// </summary> + private void InitDefultFloorId() + { + if (Config.Instance.Home.CurrentFloorId != string.Empty) + { + return; + } + var dicFloor = HdlRoomLogic.Current.GetFloorSortList(); + foreach (var floorId in dicFloor.Keys) + { + Config.Instance.Home.CurrentFloorId = floorId; + break; + } + } + #endregion #region 鈻� 缁撴瀯浣揰____________________________ @@ -965,9 +1010,9 @@ private class DeviceRowInfo { /// <summary> - /// 鏂囨湰ID,鐩墠鐢ㄦ潵鍋氫富閿� + /// 鏂囨湰,鐩墠鐢ㄦ潵鍋氫富閿� /// </summary> - public int TextId = 0; + public string Text = string.Empty; /// <summary> /// 鍥炬爣 /// </summary> -- Gitblit v1.8.0