From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs | 153 ++++++++++++++++++++------------------------------ 1 files changed, 62 insertions(+), 91 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs index 82a86d1..374d5fb 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs @@ -23,11 +23,11 @@ /// <summary> /// 璁惧妗屽竷鎺т欢 /// </summary> - private FrameLayout frameDeviceTable = null; + private NormalFrameLayout frameDeviceTable = null; /// <summary> /// 璁惧妗屽竷鎺т欢 /// </summary> - private FrameLayout frameSceneTable = null; + private NormalFrameLayout frameSceneTable = null; /// <summary> /// 鍒犻櫎鎸夐挳 /// </summary> @@ -41,9 +41,9 @@ /// </summary> private Dictionary<string, CommonDevice> dicSelectDevice = new Dictionary<string, CommonDevice>(); /// <summary> - /// 褰撳墠閫夋嫨鐨勫垎鏀� 1锛氬満鏅� 2锛氬姛鑳� + /// 褰撳墠閫夋嫨鐨勫垎鏀� 0锛氬満鏅� 1锛氬姛鑳� /// </summary> - private int nowSwitchIndex = 1; + private int nowSwitchIndex = 0; /// <summary> /// 褰撳墠閫夋嫨鐨勮澶囩储寮� /// </summary> @@ -81,12 +81,12 @@ this.dicSelectScene = new Dictionary<int, Common.SceneUI>(); //鍒濆鍖栨甯冩帶浠� - this.frameSceneTable = new FrameLayout(); + this.frameSceneTable = new NormalFrameLayout(); frameSceneTable.Y = Application.GetRealHeight(132); frameSceneTable.Height = bodyFrameLayout.Height - Application.GetRealHeight(132); bodyFrameLayout.AddChidren(frameSceneTable); - this.frameDeviceTable = new FrameLayout(); + this.frameDeviceTable = new NormalFrameLayout(); frameDeviceTable.Y = frameSceneTable.Y; frameDeviceTable.Height = frameSceneTable.Height; bodyFrameLayout.AddChidren(frameDeviceTable); @@ -126,7 +126,7 @@ tabControl.SelectTabEvent += (tabIndex) => { this.nowSwitchIndex = tabIndex; - if (tabIndex == 1) + if (tabIndex == 0) { //鏄剧ず鍦烘櫙鍒楄〃 this.frameSceneTable.Visible = true; @@ -139,7 +139,11 @@ this.frameDeviceTable.Visible = true; } }; - tabControl.InitControl(); + //寮�濮嬪垵濮嬪寲鍦烘櫙鍔熻兘鍒囨崲鎺т欢 + var listTitle = new List<string>(); + listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence)); + listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction)); + tabControl.InitControl(listTitle); } #endregion @@ -155,12 +159,19 @@ this.frameSceneTable.RemoveAll(); var listScene = new List<Common.SceneUI>(); - for (int i = 0; i < lookRoom.SceneUIList.Count; i++) + for (int i = 0; i < lookRoom.ListSceneId.Count; i++) { - if (HdlShardLogic.Current.IsFileExists(lookRoom.SceneUIList[i].FileName) == true) + var byteData = HdlShardLogic.Current.GetShardFileContent($"Scene_{lookRoom.ListSceneId[i]}.json"); + if (byteData == null) { - listScene.Add(lookRoom.SceneUIList[i]); + continue; } + try + { + var sceneUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(System.Text.Encoding.UTF8.GetString(byteData)); + listScene.Add(sceneUi); + } + catch { } } if (listScene.Count == 0) { @@ -171,45 +182,24 @@ HdlThreadLogic.Current.RunMainInThread(() => { - var listView = new VerticalFrameControl(29); + var listView = new VerticalFrameControl(3); listView.Y = Application.GetRealHeight(53); listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(187); frameSceneTable.AddChidren(listView); foreach (var data in listScene) { - //鍦烘櫙鍥剧墖 - var frameContr = new FrameLayoutControl(); - frameContr.UseClickStatu = false; - frameContr.Height = Application.GetRealHeight(470); - listView.AddChidrenFrame(frameContr); - - //鍦烘櫙鍥剧墖 - var btnPic = new ImageView(); - btnPic.X = Application.GetRealWidth(179); - btnPic.Width = Application.GetRealWidth(844); - btnPic.Height = Application.GetRealHeight(420); - btnPic.ImagePath = data.IconPath; - btnPic.Radius = 17; - frameContr.AddChidren(btnPic); - - var btnName = new NormalViewControl(251, 282, true); - btnName.X = ControlCommonResourse.XXLeft; - btnName.Gravity = Gravity.CenterVertical; - btnName.BackgroundColor = 0xff333333; - btnName.Radius = 17; - btnName.Text = data.Name; - btnName.TextSize = 15; - btnName.TextColor = UserCenterColor.Current.White; - btnName.TextAlignment = TextAlignment.Center; - frameContr.AddChidren(btnName); + //鍦烘櫙鎺т欢 + var frameContr = new ScenePictrueControl(); + listView.AddChidren(frameContr); + frameContr.InitControl(data); var btnSelect = new IconViewControl(58); btnSelect.UnSelectedImagePath = "Item/ItemUnSelected.png"; btnSelect.SelectedImagePath = "Item/ItemSelected.png"; btnSelect.X = Application.GetRealWidth(887); btnSelect.Y = Application.GetRealHeight(35); - frameContr.AddChidren(btnSelect, ChidrenBindMode.BindEventOnly); + frameContr.AddChidren(btnSelect, ChidrenBindMode.BindEvent); if (dicSelectScene.ContainsKey(data.Id) == true) { btnSelect.IsSelected = true; @@ -236,6 +226,8 @@ } }; } + //璋冩暣涓�涓嬮珮搴� + listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(185)); }); } @@ -262,13 +254,13 @@ } else { - var frameBack = new FrameLayoutControl(false); + var frameBack = new FrameLayout(); frameBack.X = ControlCommonResourse.XXLeft; frameBack.Y = Application.GetRealHeight(178); frameBack.BackgroundColor = UserCenterColor.Current.White; frameBack.Width = bodyFrameLayout.Width; frameBack.Height = Application.GetRealHeight(1650); - frameBack.RadiusEx = 20; + frameBack.Radius = (uint)Application.GetRealHeight(58); frameDeviceTable.AddChidren(frameBack); var listView = new VerticalListControl(23); @@ -290,7 +282,7 @@ /// </summary> /// <param name="dicData"></param> /// <param name="listView"></param> - private void InitDeviceObjectRow(Dictionary<int, List<CommonDevice>> dicData, VerticalListControl listView) + private void InitDeviceObjectRow(Dictionary<string, List<CommonDevice>> dicData, VerticalListControl listView) { var scrolContr = new RoomDeviceGroupMenuControl(dicData); this.frameDeviceTable.AddChidren(scrolContr); @@ -317,6 +309,8 @@ private void AddDeviceRow(List<CommonDevice> listDevice, VerticalListControl listView) { listView.RemoveAll(); + //杩樺師楂樺害 + listView.RecoverHeight(); foreach (var device in listDevice) { @@ -365,6 +359,8 @@ } }; } + //鍒楄〃鑷繁鏈変釜23鐨刌杞村潗鏍� + listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(23), Application.GetRealHeight(300 - 23)); } #endregion @@ -375,53 +371,19 @@ /// 鑾峰彇鍒嗙粍鍚庣殑璁惧 /// </summary> /// <returns></returns> - private Dictionary<int, List<CommonDevice>> GetAllGroupDevice() + private Dictionary<string, List<CommonDevice>> GetAllGroupDevice() { //鍏ㄩ儴鐨勮澶� var listDevice = this.GetShardListDevice(); - var dic = new Dictionary<int, List<CommonDevice>>(); + var dic = new Dictionary<string, List<CommonDevice>>(); foreach (var device in listDevice) { - var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device }); - if (device.Type == DeviceType.IASZone) + var typeInfo = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device); + if (dic.ContainsKey(typeInfo.BeloneText) == false) { - //杩欎釜寮哄埗涓轰紶鎰熷櫒 - typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId1200; - typeInfo.ConcreteType = Common.DeviceConcreteType.Sensor; + dic[typeInfo.BeloneText] = new List<CommonDevice>(); } - if (device.Type == DeviceType.OnOffOutput) - { - //缁х數鍣ㄧ殑鏃跺��,闇�瑕佺壒娈婂鐞� - if (device.DfunctionType == DeviceFunctionType.A寮�鍏�) - { - typeInfo.BeloneTextId = R.MyInternationalizationString.uSwitch; - } - else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇) - { - typeInfo.BeloneTextId = R.MyInternationalizationString.uSocket1; - } - else if (device.DfunctionType == DeviceFunctionType.A鐏厜) - { - typeInfo.BeloneTextId = R.MyInternationalizationString.uLight; - } - else - { - //缁х數鍣� - typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId2300; - } - if (dic.ContainsKey(typeInfo.BeloneTextId) == false) - { - dic[typeInfo.BeloneTextId] = new List<CommonDevice>(); - } - } - else - { - if (dic.ContainsKey(typeInfo.BeloneTextId) == false) - { - dic[typeInfo.BeloneTextId] = new List<CommonDevice>(); - } - } - dic[typeInfo.BeloneTextId].Add(device); + dic[typeInfo.BeloneText].Add(device); } return dic; } @@ -451,10 +413,10 @@ //纭鍒犻櫎閫夋嫨鐨勫叡浜満鏅拰鍔熻兘锛� this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteShardContentMsg), () => { - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { //涓婁紶鏂囦欢 - var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.lookRoom, listDevice, listScene); + var result = HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.lookRoom, listDevice, listScene); if (result == true) { HdlThreadLogic.Current.RunMain(() => @@ -479,22 +441,31 @@ { //鑾峰彇杩欎釜鎴块棿閲岄潰鐨勫垎浜澶� var listDevice = new List<CommonDevice>(); - foreach (var deviceFile in this.lookRoom.DeviceUIFilePathList) + foreach (var deviceKeys in this.lookRoom.ListDevice) { + string deviceFile = HdlShardLogic.Current.GetShardDeviceFileName(deviceKeys); if (memberShardInfo.dicAllShardKeys.ContainsKey(deviceFile) == true) { - var strArry = deviceFile.Split('_'); - if (strArry.Length < 3) + //浠庡垎浜枃浠朵腑搴忓垪鍖栧洖鏉� + var deviceData = HdlShardLogic.Current.GetShardFileContent(deviceFile); + if (deviceData == null) { continue; } - //浠庡垎浜枃浠朵腑搴忓垪鍖栧洖鏉� - var deviceData = HdlShardLogic.Current.GetShardFileContent(deviceFile); - var device = ZigBee.Device.CommonDevice.CommonDeviceByByteString(strArry[1], System.Text.Encoding.UTF8.GetString(deviceData)); - if (device != null) + try { - listDevice.Add(device); + var jobject = Newtonsoft.Json.Linq.JObject.Parse(System.Text.Encoding.UTF8.GetString(deviceData)); + if (jobject.Property("DeviceID") == null) + { + continue; + } + var device = ZigBee.Device.CommonDevice.CommonDeviceByByteString(Convert.ToInt32(jobject["DeviceID"].ToString()), System.Text.Encoding.UTF8.GetString(deviceData)); + if (device != null) + { + listDevice.Add(device); + } } + catch { } } } return listDevice; -- Gitblit v1.8.0