From c47c3ec2488961b3a006aaebcb03dba582f8b19b Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期四, 12 三月 2020 17:08:42 +0800 Subject: [PATCH] 2020-03-12-1 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 2154 ++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 1,237 insertions(+), 917 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs index 84db891..fd44e41 100644 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -7,6 +7,8 @@ using Shared.Phone.Device.CommonForm; using Shared.Phone.Device.AC; using Shared.Phone.UserCenter.DoorLock; +using Shared.Phone.Device.DeviceLogic; +using Shared.Phone.UserCenter; namespace Shared.Phone.Device.Category { @@ -24,7 +26,7 @@ /// <summary> /// low_High /// </summary> - private const int low_High= 127; + private const int low_High = 127; /// <summary> /// 鍔熻兘 /// </summary> @@ -84,7 +86,7 @@ /// <summary> /// 鍔熻兘绫诲瀷鎸夐挳 /// </summary> - private FunctionButton functionTypeIMG; + //private FunctionButton functionTypeIMG; /// <summary> /// 鍔熻兘绫诲瀷 /// </summary> @@ -92,7 +94,7 @@ /// <summary> /// 璁惧绫诲瀷RowLayout /// </summary> - private FrameLayout typeRowLayout; + //private FrameLayout typeRowLayout; /// <summary> /// 妤煎眰 /// </summary> @@ -102,6 +104,22 @@ /// </summary> private Button selectFloorBtn; + /// <summary> + /// 鐩稿悓绫诲瀷鐨勮澶囧垪琛� + /// </summary> + private Dictionary<int, List<CommonDevice>> typeDeviceDic; + /// <summary> + /// 璁惧绫诲瀷鐨勫浘id + /// </summary> + private Dictionary<int, DeviceConcreteType> typeIdDic; + /// <summary> + /// dList + /// </summary> + private List<CommonDevice> devList; + /// <summary> + /// sceneList + /// </summary> + private List<SceneUI> sceneList; #endregion #region 鈼� 鎺ュ彛____________________________ @@ -148,42 +166,40 @@ { try { + if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0) + { + return; + } for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++) { var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout; - var deviceUI = rowLayout.Tag as DeviceUI; - if (deviceUI == null || deviceUI.CommonDevice == null) + var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString()); + if (deviceUI == null) { continue; } - if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint) + if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint) { continue; } - switch (deviceUI.CommonDevice.Type) + switch (deviceUI.Type) { case DeviceType.OnOffOutput: //寮�鍏冲姛鑳� if (common.DeviceStatusReport.CluterID == 6) { - var light = deviceUI.CommonDevice as ToggleLight; + var light = deviceUI as ToggleLight; light.DeviceStatusReport = common.DeviceStatusReport; - if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0) - { - continue; - } light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(light.OnOffStatus == 1); - row.SetStatuText(deviceUI.GetDeviceStatu()); + row.IsSelected = light.OnOffStatus == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); light.LastDateTime = DateTime.Now; } if (common.DeviceStatusReport.CluterID == 3) { - deviceUI.CommonDevice.IsOnline = 1; - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(true); + deviceUI.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; } break; @@ -191,24 +207,18 @@ //寮�鍏冲姛鑳� if (common.DeviceStatusReport.CluterID == 6) { - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; + var airSwitch = deviceUI as ZigBee.Device.AirSwitch; airSwitch.DeviceStatusReport = common.DeviceStatusReport; - if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) - { - return; - } airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(airSwitch.OnOffStatus == 1); - row.SetStatuText(deviceUI.GetDeviceStatu()); + row.IsSelected = airSwitch.OnOffStatus == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); airSwitch.LastDateTime = DateTime.Now; } if (common.DeviceStatusReport.CluterID == 3) { - deviceUI.CommonDevice.IsOnline = 1; - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(true); + deviceUI.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; } break; case DeviceType.WindowCoveringDevice: @@ -218,7 +228,7 @@ if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0) { //绐楀笜绫诲瀷 - var rollerShade = deviceUI.CommonDevice as Rollershade; + var rollerShade = deviceUI as Rollershade; rollerShade.DeviceStatusReport = common.DeviceStatusReport; rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData; rollerShade.LastDateTime = DateTime.Now; @@ -227,19 +237,18 @@ { var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; //绐楀笜鐧惧垎姣� - var rollerShade = deviceUI.CommonDevice as Rollershade; + var rollerShade = deviceUI as Rollershade; rollerShade.DeviceStatusReport = common.DeviceStatusReport; rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData; - row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}"); + row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)}"); + row.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0; rollerShade.LastDateTime = DateTime.Now; } } if (common.DeviceStatusReport.CluterID == 3) { - deviceUI.CommonDevice.IsOnline = 1; - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; - row.SetStatu(true); + deviceUI.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; } break; @@ -248,119 +257,161 @@ if (common.DeviceStatusReport.CluterID == 513) { var attriButeList = common.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - return; - } - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + var ac = deviceUI as ZigBee.Device.AC; ac.DeviceStatusReport = common.DeviceStatusReport; - - var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; - switch (attriButeList[0].AttributeId) + foreach (var attList in attriButeList) { - case 0: - ac.currentLocalTemperature = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 17: - ac.currentCoolingSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 18: - ac.currentHeatingSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 4096: - ac.currentAutoSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 28: - //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡 - ac.currentSystemMode = attriButeList[0].AttriButeData; - ac.LastDateTime = DateTime.Now; - break; - - case 4099: - var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0'); - var modeStr = value.Substring(value.Length - 5, 5); - for (int j = 0; j < modeStr.Length; j++) - { - ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; - } - break; - - case 4097: - //杩囪檻缃戞竻娲楁爣蹇�:42 - ac.CleanStatu = attriButeList[0].AttriButeData == 42; - break; + var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; + switch (attList.AttributeId) + { + case 0: + ac.currentLocalTemperature = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 17: + ac.currentCoolingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 18: + ac.currentHeatingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentAutoSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 28: + ac.currentSystemMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4097: + //杩囪檻缃戞竻娲楁爣蹇�:42 + ac.CleanStatu = attList.AttriButeData == 42; + break; + } } - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(ac.currentSystemMode != 0); - row.SetStatuText(deviceUI.GetDeviceStatu()); + row.IsSelected = ac.currentSystemMode != 0; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); } if (common.DeviceStatusReport.CluterID == 514) { - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + var ac = deviceUI as ZigBee.Device.AC; var attriButeList = common.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - return; - } ac.DeviceStatusReport = common.DeviceStatusReport; - switch (attriButeList[0].AttributeId) + foreach (var attList in attriButeList) { - case 0: - ac.currentFanMode = attriButeList[0].AttriButeData; - ac.LastDateTime = DateTime.Now; - break; - case 4096: - ac.currentFanSwingMode = attriButeList[0].AttriButeData; - ac.LastDateTime = DateTime.Now; - break; + switch (attList.AttributeId) + { + case 0: + ac.currentFanMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentFanSwingMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + } } var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(ac.currentSystemMode != 0); - row.SetStatuText(deviceUI.GetDeviceStatu()); + row.IsSelected = ac.currentSystemMode != 0; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); } if (common.DeviceStatusReport.CluterID == 3) { - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + var ac = deviceUI as ZigBee.Device.AC; ac.IsOnline = 1; ac.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(true); } break; case DeviceType.DimmableLight: //璋冨厜鐏姛鑳� if (common.DeviceStatusReport.CluterID == 6) { - var dimmableLight = deviceUI.CommonDevice as DimmableLight; + var dimmableLight = deviceUI as DimmableLight; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; - //璁板綍銆佹洿鏂扮姸鎬� - if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) - { - continue; - } dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(dimmableLight.OnOffStatus == 1); - row.SetStatuText(deviceUI.GetDeviceStatu()); + row.IsSelected = dimmableLight.OnOffStatus == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + dimmableLight.LastDateTime = DateTime.Now; + } + if (common.DeviceStatusReport.CluterID == 8) + { + var dimmableLight = deviceUI as DimmableLight; + dimmableLight.DeviceStatusReport = common.DeviceStatusReport; + dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = dimmableLight.OnOffStatus == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); dimmableLight.LastDateTime = DateTime.Now; } if (common.DeviceStatusReport.CluterID == 3) { - deviceUI.CommonDevice.IsOnline = 1; - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(true); + deviceUI.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.TemperatureSensor: + //娓╁害 + if (common.DeviceStatusReport.CluterID == 1026) + { + var tempera = deviceUI as TemperatureSensor; + foreach (var data in common.DeviceStatusReport.AttriBute) + { + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) + { + if (data.AttriButeData == 0) + { + tempera.Temperatrue = 0; + } + else if (data.AttriButeData > 32767) + { + //璐熸暟(鐗规畩澶勭悊) + string strValue = (data.AttriButeData - 65536).ToString(); + //灏忔暟鐐归渶瑕佷竴浣� + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + } + else + { + //灏忔暟鐐归渶瑕佷竴浣� + string strValue = data.AttriButeData.ToString(); + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + } + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + } + } + } + //婀垮害 + if (common.DeviceStatusReport.CluterID == 1029) + { + var tempera = deviceUI as TemperatureSensor; + foreach (var data in common.DeviceStatusReport.AttriBute) + { + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) + { + if (data.AttriButeData == 0) + { + tempera.Humidity = 0; + } + else + { + //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟) + string strValue = data.AttriButeData.ToString(); + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + tempera.LastDateTime = DateTime.Now; + } + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + } + } } break; } @@ -381,50 +432,79 @@ for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++) { var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout; - var deviceUI = rowLayout.Tag as DeviceUI; - if (deviceUI == null || deviceUI.CommonDevice == null) + var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString()); + if (deviceUI == null) { continue; } - if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint) + if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint) { continue; } - switch (deviceUI.CommonDevice.Type) + switch (deviceUI.Type) { case DeviceType.OnOffOutput: - deviceUI.CommonDevice.IsOnline = common.IsOnline; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(deviceUI.CommonDevice.IsOnline == 1); - deviceUI.CommonDevice.LastDateTime = DateTime.Now; + deviceUI.IsOnline = common.IsOnline; + deviceUI.LastDateTime = DateTime.Now; break; case DeviceType.AirSwitch: - deviceUI.CommonDevice.IsOnline = common.IsOnline; - var row1 = rowLayout.GetChildren(0) as CategoryFunctionRow; - row1.SetStatu(deviceUI.CommonDevice.IsOnline == 1); - deviceUI.CommonDevice.LastDateTime = DateTime.Now; + deviceUI.IsOnline = common.IsOnline; + deviceUI.LastDateTime = DateTime.Now; break; case DeviceType.WindowCoveringDevice: - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - deviceUI.CommonDevice.IsOnline = common.IsOnline; - var row2 = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; - row2.SetStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceUI.LastDateTime = DateTime.Now; + deviceUI.IsOnline = common.IsOnline; break; case DeviceType.DimmableLight: - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - deviceUI.CommonDevice.IsOnline = common.IsOnline; - var row3 = rowLayout.GetChildren(0) as CategoryFunctionRow; - row3.SetStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceUI.LastDateTime = DateTime.Now; + deviceUI.IsOnline = common.IsOnline; break; case DeviceType.Thermostat: - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - deviceUI.CommonDevice.IsOnline = common.IsOnline; - var row5 = rowLayout.GetChildren(0) as CategoryFunctionRow; - row5.SetStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceUI.LastDateTime = DateTime.Now; + deviceUI.IsOnline = common.IsOnline; + break; + } + } + } + catch (Exception ex) + { + System.Console.WriteLine($"鍒嗙被璁惧鐘舵��-Error:{ex.Message}"); + } + }); + } + else if (typeTag == "IASInfoReport") + { + Application.RunOnMainThread(() => + { + try + { + for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++) + { + var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout; + var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString()); + if (deviceUI == null) + { + continue; + } + if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint) + { + continue; + } + switch (deviceUI.Type) + { + case DeviceType.IASZone: + //寮�鍏冲姛鑳� + var ias = common as IASZone; + var iAS = deviceUI as ZigBee.Device.IASZone; + iAS.iASInfo = ias.iASInfo; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = iAS.iASInfo?.Alarm1 == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + iAS.LastDateTime = DateTime.Now; break; } } @@ -465,6 +545,8 @@ /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param> public void Show(int selectedBtn = 1) { + InitData(); + RemoveAll(); #region topview @@ -484,8 +566,9 @@ Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.Category, - TextSize = 20, + TextSize = 24, TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, + IsBold = true }; topView.AddChidren(title); @@ -518,19 +601,21 @@ midFL.AddChidren(functionSceneAutoBG); //鍦烘櫙 - sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68); + sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34); functionSceneAutoBG.AddChidren(sceneBtn); sceneBtn.Init(); sceneBtn.SetTitle(R.MyInternationalizationString.Scence); //鍔熻兘 - functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68); + functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34); functionSceneAutoBG.AddChidren(functionBtn); functionBtn.Init(); functionBtn.SetTitle(R.MyInternationalizationString.Function); + functionBtn.X = sceneBtn.Right; //鑷姩鍖� - automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68); + automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20 + 50, 34); automationBtn.Init(); automationBtn.SetTitle(R.MyInternationalizationString.Automation); + automationBtn.X = functionBtn.Right; //闅愯棌鑷姩鍖� if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3) { @@ -545,6 +630,8 @@ Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterRight, TextColor = ZigbeeColor.Current.GXCTextBlackColor, + TextSize = 14, + IsBold = true }; selectFloorBtn = new Button() @@ -591,6 +678,7 @@ #endregion //缁戝畾鎸夐挳浜嬩欢 BindEvent(); + } #endregion @@ -611,7 +699,7 @@ addBtn.MouseUpEventHandler += AddBtn_MouseUpEventHandler; selectFloorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; - floorBtn.MouseUpEventHandler+= SelectedFloor_MouseUpEventHandler; + floorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; } @@ -622,13 +710,14 @@ /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> private void SelectedFloor_MouseUpEventHandler(object sender, MouseEventArgs mouseEventArgs) { - var floors = new SelectFloor (); + var floors = new SelectFloor(); AddChidren(floors); - floors.Init(580,330,Direction.Right); + floors.Init(580, 330, Direction.Right); floors.changeFloor = true; floors.FloorAction += (floorId) => { floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId); + HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom(); RefreshBodyView(); }; } @@ -712,6 +801,10 @@ UserView.HomePage.Instance.AddChidren(scene); UserView.HomePage.Instance.PageIndex += 1; scene.Show(); + scene.AddAction = () => + { + ShowScene(); + }; } /// <summary> @@ -723,7 +816,6 @@ Common.Logic.CurrentLogic = new Common.Logic(); Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑 Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1); - //Common.Logic.CurrentLogic.LogicCustomPushText =Common.Logic.CurrentLogic.LogicName+Language.StringByID(MyInternationalizationString.defaulttext); var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage(); UserView.HomePage.Instance.AddChidren(addLogicPage); UserView.HomePage.Instance.PageIndex += 1; @@ -765,6 +857,45 @@ } } + /// <summary> + /// InitData + /// </summary> + private void InitData() + { + typeDeviceDic = new Dictionary<int, List<CommonDevice>> { }; + typeIdDic = new Dictionary<int, DeviceConcreteType> { }; + } + + /// <summary> + /// RefreshData + /// </summary> + private void RefreshData(Common.Room room) + { + devList = HdlRoomLogic.Current.GetRoomListDevice(room); + sceneList = HdlSceneLogic.Current.GetRoomSceneList(room); + typeDeviceDic.Clear(); + typeIdDic.Clear(); + foreach (var device in devList) + { + var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device); + if (info.BeloneType == DeviceBeloneType.A骞叉帴鐐� || info.BeloneType == DeviceBeloneType.A涓户鍣�) + { + continue; + } + if (typeDeviceDic.ContainsKey(info.BeloneTextId) == false) + { + var sameDevList = new List<CommonDevice> { }; + sameDevList.Add(device); + typeDeviceDic[info.BeloneTextId] = sameDevList; + } + else + { + typeDeviceDic[info.BeloneTextId].Add(device); + } + typeIdDic[info.BeloneTextId] = info.ConcreteType; + } + } + #endregion #region 鈼� 鍔熻兘____________________________ @@ -783,10 +914,10 @@ { var noFunction = new Button() { - Y=Application.GetRealHeight(320), - Width=Application.GetMinRealAverage(757), + Y = Application.GetRealHeight(320), + Width = Application.GetMinRealAverage(757), Height = Application.GetMinRealAverage(435), - UnSelectedImagePath="Item/NoFunction.png", + UnSelectedImagePath = "Item/NoFunction.png", Gravity = Gravity.CenterHorizontal }; functionSceneBodyView.AddChidren(noFunction); @@ -797,10 +928,10 @@ Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(700), Gravity = Gravity.CenterHorizontal, - Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"), + Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, - IsMoreLines=true + IsMoreLines = true }; functionSceneBodyView.AddChidren(noFunctionTip); } @@ -811,720 +942,913 @@ /// <param name="room"></param> private void RefreshFunction(Common.Room room) { + RefreshData(room); //绉婚櫎鐩戝惉 RemoveAllUpdateControlDeviceStatuAction(); functionSceneBodyView.RemoveAll(); - if (room.DeviceUIList.Count == 0) + if (typeDeviceDic.Count == 0) { ShowNoFunctionTip(); } else { + var functionTypeView1 = new FrameLayout + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(160), + Width = Application.GetRealWidth(1028), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + functionSceneBodyView.AddChidren(functionTypeView1); + functionTypeView1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft); + + var functionTypeView2 = new FrameLayout + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Y = Application.GetRealHeight(150), + Height = Application.GetRealHeight(279 - 150), + Width = Application.GetRealWidth(1028), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + functionSceneBodyView.AddChidren(functionTypeView2); + functionTypeView2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); + functionTypeScrowView = new HorizontalScrolViewLayout { X = Application.GetRealWidth(CommonFormResouce.X_Left), Height = Application.GetRealHeight(279), Width = Application.GetRealWidth(1028), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor }; functionSceneBodyView.AddChidren(functionTypeScrowView); deviceListScrolView = new VerticalScrolViewLayout { X = Application.GetRealWidth(CommonFormResouce.X_Left), - Y = Application.GetRealHeight(35+275), + Y = Application.GetRealHeight(35 + 279), Width = Application.GetRealWidth(1028), - Height = Application.GetRealHeight(938) - 1, + Height = Application.GetRealHeight(942), BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor }; functionSceneBodyView.AddChidren(deviceListScrolView); + deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); + tempFunctionTypeBtn = new FunctionButton(); + tempFunctionTypeBtn.Init("", ""); - EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) => + foreach (var deviceType in typeIdDic) { - tempFunctionTypeBtn.IsSelected = false; - tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton; - ((typeSender as Button).Parent as FunctionButton).IsSelected = true; - - deviceListScrolView.RemoveAll(); - - var sameTypeList = new List<DeviceUI> { }; - foreach (var devieceUI in room.DeviceUIList) + var typeRowLayout = new FrameLayout() { - if (devieceUI == null || devieceUI.CommonDevice == null) - { - continue; - } - if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString()) - { - if (!sameTypeList.Contains(devieceUI)) - { - sameTypeList.Add(devieceUI); - } - } - } - foreach (var deviceUI in sameTypeList) - { - //鍒犻櫎璁惧 - EventHandler<MouseEventArgs> delEvent = (delSender, delE) => - { - var alert = new CustomAlert(); - AddChidren(alert); - alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); - alert.ResultEventHandler += (e2) => - { - if (e2) - { - Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); - deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); - sameTypeList.Remove(deviceUI); - if (sameTypeList.Count == 0) - { - RefreshBodyView(); - } - } - }; - }; - EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => - { - var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; - UserView.HomePage.Instance.AddChidren(detailInfo); - UserView.HomePage.Instance.PageIndex += 1; - detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom); - detailInfo.action = RefreshBodyView; - }; - - if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput) - { - //鐏� - var light = deviceUI.CommonDevice as ToggleLight; - //琛ヤ笂闈炶繙绋� - if (light.Gateway == null) - { - continue; - } - if (light.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(light, () => - { - light.ReadOnOffStatus(); - light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� - if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) - { - light.ReadOnOffStatus(); - light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new CategoryFunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(light.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(light.OnOffStatus == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - (send2 as Button).IsSelected = !(send2 as Button).IsSelected; - deviceRow.IsSelected = (send2 as Button).IsSelected; - if ((send2 as Button).IsSelected) - { - light.SwitchControl(1); - } - else - { - light.SwitchControl(0); - } - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�) - { - var lightControl = new Phone.Device.Light.OnOffControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); - } - else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇) - { - var lightControl = new Phone.Device.Light.PlugControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); - } - else - { - var lightControl = new Phone.Device.Light.LightControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); - } - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) - { - //绌烘皵寮�鍏� - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - //琛ヤ笂闈炶繙绋� - if (airSwitch.Gateway == null) - { - continue; - } - if (airSwitch.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(airSwitch, () => - { - airSwitch.ReadOnOffStatus(); - airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - airSwitch.ReadOnOffStatus(); - airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new CategoryFunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1); - deviceRow.SetStatu(airSwitch.OnOffStatus == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as Button).IsSelected = !(send2 as Button).IsSelected; - if ((send2 as Button).IsSelected) - { - airSwitch.SwitchControl(1); - } - else - { - airSwitch.SwitchControl(0); - } - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - - var lightControl = new Phone.Device.Light.AirSwitchControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) - { - //璋冨厜鐏� - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - //琛ヤ笂闈炶繙绋� - if (dimmableLight.Gateway == null) - { - continue; - } - if (dimmableLight.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(dimmableLight, () => - { - dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - dimmableLight.ReadOnOffStatus(); - dimmableLight.ReadLevel(); - }); - } - else - { - if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - dimmableLight.ReadOnOffStatus(); - dimmableLight.ReadLevel(); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new CategoryFunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(dimmableLight.OnOffStatus == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as Button).IsSelected = !(send2 as Button).IsSelected; - if ((send2 as Button).IsSelected) - { - dimmableLight.SwitchControl(1); - } - else - { - dimmableLight.SwitchControl(0); - } - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); - UserView.HomePage.Instance.AddChidren(dimmableLightControl); - UserView.HomePage.Instance.PageIndex += 1; - UserView.HomePage.Instance.ScrollEnabled = false; - //dimmableLightControl.action = RefreshBodyView; - dimmableLightControl.Show(deviceUI, room); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) - { - //绌鸿皟 - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - //琛ヤ笂闈炶繙绋� - if (ac.Gateway == null) - { - continue; - } - if (ac.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - UserView.UserHomeView.ReadStatus(ac, () => - { - ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - ac.ReadAutoSetpoint(); - ac.ReadFanMode(); - ac.ReadSystemMode(); - ac.ReadSystemFansSwingMode(); - ac.ReadModeSupport(); - ac.ReadCleanStatu(); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� - if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - ac.ReadAutoSetpoint(); - ac.ReadFanMode(); - ac.ReadSystemMode(); - ac.ReadSystemFansSwingMode(); - ac.ReadModeSupport(); - ac.ReadCleanStatu(); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new CategoryFunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(ac.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(ac.currentSystemMode != 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as Button).IsSelected = !(send2 as Button).IsSelected; - if ((send2 as Button).IsSelected) - { - ac.Open(); - } - else - { - ac.Close(); - } - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - var acControl = new Phone.Device.AC.ACControl(); - UserView.HomePage.Instance.AddChidren(acControl); - UserView.HomePage.Instance.PageIndex += 1; - UserView.HomePage.Instance.ScrollEnabled = false; - //rollerShadeControl.action = RefreshBodyView; - acControl.Show(deviceUI, room); - }; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) - { - //鍗峰笜 - var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; - //涓嶄笂闈炶繙绋� - if (rollerShade.Gateway == null) - { - continue; - } - if (rollerShade.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(rollerShade, () => - { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - rollerShade.ReadWcdCurrentPositionLiftPercentage(); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇 - if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - rollerShade.ReadWcdCurrentPositionLiftPercentage(); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new CategoryFunctionForWinRow(0, 35); - deviceRow.Init(deviceUI); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0); - deviceRow.SetRollerShadeIcon(rollerShade.WcdType); - deviceTypeRowLayout.AddChidren(deviceRow); - - if (rollerShade.WcdType == -1) - { - CommonPage.Loading.Start(); - new System.Threading.Thread(() => - { - Rollershade.ReadWcdTypeAction(rollerShade, () => - { - Application.RunOnMainThread(() => - { - deviceRow.SetRollerShadeIcon(rollerShade.WcdType); - CommonPage.Loading.Hide(); - }); - }); - }) - { IsBackground = true }.Start(); - } - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl(); - UserView.HomePage.Instance.AddChidren(rollerShadeControl); - UserView.HomePage.Instance.PageIndex += 1; - UserView.HomePage.Instance.ScrollEnabled = false; - //rollerShadeControl.action = RefreshBodyView; - rollerShadeControl.Show(deviceUI, room); - }; - } - else if(deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DoorLock) - { - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new CategoryFunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.HideSwitchBtn(true); - deviceTypeRowLayout.AddChidren(deviceRow); - - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - var userDoorLockPage = new UserDoorLockPage(room, deviceUI); - HomePage.Instance.AddChidren(userDoorLockPage); - HomePage.Instance.PageIndex += 1; - userDoorLockPage.Show(); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else - { - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new CategoryFunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.HideSwitchBtn(true); - deviceTypeRowLayout.AddChidren(deviceRow); - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - } - }; - - foreach (var deviceType in Common.Room.GetdeviceTypes(room)) - { - typeRowLayout = new FrameLayout() - { - Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5), - Tag = deviceType + Width = Application.GetRealWidth(220), }; functionTypeScrowView.AddChidren(typeRowLayout); - functionTypeIMG = new FunctionButton() + var functionTypeIMG = new FunctionButton() { - Tag = deviceType + Tag = deviceType.Key }; - functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType)); - functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType)); + string imgPath = string.Empty; + string imgSeletedPath = string.Empty; + Common.LocalDevice.Current.GetDeviceObjectIcon(deviceType.Value, ref imgPath, ref imgSeletedPath); + functionTypeIMG.Init(imgPath, imgSeletedPath); + functionTypeIMG.SetTitle(deviceType.Key); typeRowLayout.AddChidren(functionTypeIMG); functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; - - if (deviceType == room.DeviceUIList[0].CommonDevice.Type) + if (functionTypeScrowView.ChildrenCount == 1) { ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); } } } } + + /// <summary> + /// 鏄剧ず鐩稿悓绫诲瀷鐨勫姛鑳� + /// </summary> + /// <param name="typeSender">typeSender.</param> + /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> + private void ShowSameTypeFunction(object typeSender, MouseEventArgs mouseEventArgs) + { + tempFunctionTypeBtn.IsSelected = false; + tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton; + ((typeSender as Button).Parent as FunctionButton).IsSelected = true; + + deviceListScrolView.RemoveAll(); + + var sameTypeList = new List<CommonDevice> { }; + sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())]; + + for (int i = 0; i < sameTypeList.Count; i++) + { + var deviceUI = sameTypeList[i]; + new System.Threading.Thread(() => + { + Application.RunOnMainThread(() => + { + try + { + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCClearColor, + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI), + SubViewWidth = Application.GetRealWidth(184) + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + if (deviceUI.Type == DeviceType.OnOffOutput) + { + //鐏� + var light = deviceUI as ToggleLight; + if (light.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (light.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(light, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = light.OnOffStatus == 1; + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI); + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + light.SwitchControl(1); + } + else + { + light.SwitchControl(0); + } + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var lightControl = new Phone.Device.Light.OnOffControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.AirSwitch) + { + //绌烘皵寮�鍏� + var airSwitch = deviceUI as AirSwitch; + if (airSwitch.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (airSwitch.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(airSwitch, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI); + }); + } + else + { + if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.IsSelected = airSwitch.OnOffStatus == 1; + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceTypeRowLayout.AddChidren(deviceRow); + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI); + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + airSwitch.SwitchControl(1); + } + else + { + airSwitch.SwitchControl(0); + } + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + + var lightControl = new Phone.Device.Light.AirSwitchControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + + }; + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.DimmableLight) + { + //璋冨厜鐏� + var dimmableLight = deviceUI as ZigBee.Device.DimmableLight; + if (dimmableLight.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (dimmableLight.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(dimmableLight, () => + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI); + }); + } + else + { + if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = dimmableLight.OnOffStatus == 1; + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI); + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + dimmableLight.SwitchControl(1); + } + else + { + dimmableLight.SwitchControl(0); + } + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); + UserView.HomePage.Instance.AddChidren(dimmableLightControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + dimmableLightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + dimmableLightControl.action += (curDev, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.Thermostat) + { + //绌鸿皟 + var ac = deviceUI as ZigBee.Device.AC; + if (ac.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (ac.Gateway.IsVirtual) + { + //鍙戦�佽鍙栫姸鎬佸懡浠� + UserView.UserHomeView.ReadStatus(ac, () => + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� + if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = ac.currentSystemMode != 1; + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI); + + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + ac.Open(); + } + else + { + ac.Close(); + } + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var acControl = new Phone.Device.AC.ACControl(); + UserView.HomePage.Instance.AddChidren(acControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + acControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + acControl.action += (curDev, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + + }; + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.WindowCoveringDevice) + { + //鍗峰笜 + var rollerShade = deviceUI as ZigBee.Device.Rollershade; + if (rollerShade.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (rollerShade.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(rollerShade, () => + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇 + if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionForWinRow(0, 35); + deviceRow.Init(deviceUI); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0; + deviceRow.SetRollerShadeIcon(rollerShade.WcdType); + deviceTypeRowLayout.AddChidren(deviceRow); + + if (rollerShade.WcdType == -1) + { + CommonPage.Loading.Start(); + new System.Threading.Thread(() => + { + Rollershade.ReadWcdTypeAction(rollerShade, () => + { + Application.RunOnMainThread(() => + { + deviceRow.SetRollerShadeIcon(rollerShade.WcdType); + CommonPage.Loading.Hide(); + }); + }); + }) + { IsBackground = true }.Start(); + } + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl(); + UserView.HomePage.Instance.AddChidren(rollerShadeControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + rollerShadeControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + rollerShadeControl.action += (curDev, curRoom) => + { + ReFreshDeviceActionForWin(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceActionForWin(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.DoorLock) + { + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var userDoorLockPage = new UserDoorLockPage(HdlRoomLogic.Current.CurrentRoom, deviceUI); + HomePage.Instance.AddChidren(userDoorLockPage); + HomePage.Instance.PageIndex += 1; + userDoorLockPage.Show(); + }; + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + else if (deviceUI.Type == DeviceType.IASZone) + { + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = (deviceUI as IASZone).iASInfo?.Alarm1 == 1; + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + else if (deviceUI.Type == DeviceType.TemperatureSensor) + { + var tempera = deviceUI as TemperatureSensor; + if (tempera.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (tempera.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(tempera, () => + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI); + } + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - tempera.LastDateTime).TotalSeconds) + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI); + } + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = false; + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else + { + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + + //鍒犻櫎璁惧 + EventHandler<MouseEventArgs> delEvent = (delSender, delE) => + { + var alert = new UserCenter.ShowMsgControl(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.DeleteFunction)); + alert.Show(); + alert.ConfirmClickEvent += () => + { + if (HdlRoomLogic.Current.CurrentRoom.IsLove) + { + HdlRoomLogic.Current.DeleteLoveDevice(deviceUI); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); + } + else + { + HdlRoomLogic.Current.DeleteDevice(deviceUI); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); + + HdlRoomLogic.Current.DeleteLoveDevice(deviceUI); + } + if (sameTypeList.Count == 0) + { + RefreshBodyView(); + } + }; + }; + var delBtn = new CommonForm.RowLayoutDeleteButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } + catch { } + }); + }) + { IsBackground = true }.Start(); + } + } + + /// <summary> + /// ReFreshDeviceAction + /// </summary> + /// <param name="curRoom"></param> + /// <param name="sameTypeList"></param> + /// <param name="devListScrolView"></param> + /// <param name="deviceRow"></param> + private void ReFreshDeviceAction(CommonDevice deviceUI, Common.Room curRoom, List<CommonDevice> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionRow deviceRow) + { + if (HdlRoomLogic.Current.CurrentRoom.IsLove) + { + deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false) + { + devListScrolView.RemoveViewByTag(deviceUI); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshFunction(HdlRoomLogic.Current.CurrentRoom); + } + } + } + else + { + if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id) + { + HdlRoomLogic.Current.DeleteDevice(deviceUI); + devListScrolView.RemoveViewByTag(deviceUI); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshFunction(HdlRoomLogic.Current.CurrentRoom); + } + } + else + { + deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + } + } + } + + /// <summary> + /// ReFreshDeviceAction + /// </summary> + /// <param name="curRoom"></param> + /// <param name="sameTypeList"></param> + /// <param name="devListScrolView"></param> + /// <param name="deviceRow"></param> + private void ReFreshDeviceActionForWin(CommonDevice deviceUI, Common.Room curRoom, List<CommonDevice> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionForWinRow deviceRow) + { + if (HdlRoomLogic.Current.CurrentRoom.IsLove) + { + deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false) + { + devListScrolView.RemoveViewByTag(deviceUI); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshFunction(HdlRoomLogic.Current.CurrentRoom); + } + } + } + else + { + if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id) + { + HdlRoomLogic.Current.DeleteDevice(deviceUI); + devListScrolView.RemoveViewByTag(deviceUI); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshFunction(HdlRoomLogic.Current.CurrentRoom); + } + } + else + { + deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + } + } + } + /// <summary> /// AddRoomView @@ -1544,44 +1868,33 @@ functionSceneBodyView = new FrameLayout() { Y = roomFL.Bottom, - Height = Application.GetRealHeight(973+279), + Height = Application.GetRealHeight(973 + 279), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; functionSceneAutoBodyView.AddChidren(functionSceneBodyView); - Button curBtn = new Button(); - foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) + RoomButton curBtn = new RoomButton(0, 0); + var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom(); + foreach (var room in lisrRoom) { var row = new FrameLayout() { - Width = Application.GetRealWidth(187 + 50), + Width = Application.GetRealWidth(255), Height = Application.GetRealHeight(167) }; roomFL.AddChidren(row); - var roomBtn = new Button() - { - Width = Application.GetRealWidth(187), - Height = Application.GetRealHeight(78), - Radius = (uint)Application.GetRealHeight(78 / 2), - Gravity = Gravity.Center, - Text = room.Name, - TextColor = ZigbeeColor.Current.GXCTextGrayColor, - SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, - BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor3, - SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor, - BorderColor = ZigbeeColor.Current.GXCBorderUnSelectedColor, - BorderWidth = 1 - }; + RoomButton roomBtn = new RoomButton(0, 0); + roomBtn.Gravity = Gravity.Center; + roomBtn.Init(); + roomBtn.SetTitle(room.Name); row.AddChidren(roomBtn); - roomBtn.SetViewShadow(true,5); - if (room.IsLove) + if (room.Id == HdlRoomLogic.Current.CurrentRoom.Id) { roomBtn.IsSelected = true; curBtn = roomBtn; - - if(sceneBtn.IsSelected) + if (sceneBtn.IsSelected) { RefreshScene(room); } @@ -1589,17 +1902,18 @@ { RefreshFunction(room); } - } - roomBtn.MouseUpEventHandler += (sender, e) => + + roomBtn.ButtonClickEvent += (sender, e) => { - if ((sender as Button) == curBtn) + if (sender == curBtn) { return; } - (sender as Button).IsSelected = true; + sender.IsSelected = true; curBtn.IsSelected = false; - curBtn = sender as Button; + curBtn = sender; + HdlRoomLogic.Current.CurrentRoom = room; if (sceneBtn.IsSelected) { RefreshScene(room); @@ -1610,7 +1924,6 @@ } }; } - } #endregion @@ -1630,8 +1943,8 @@ /// <param name="room"></param> public void RefreshScene(Common.Room room) { + RefreshData(room); functionSceneBodyView.RemoveAll(); - var sceneList = room.SceneUIList; if (sceneList.Count == 0) { ShowNoSceneTip(); @@ -1645,7 +1958,6 @@ var sceneView = new SceneCategoryView(0, 0); sceneScrolView.AddChidren(sceneView); sceneView.Init(scene, room); - sceneView.SetViewShadow(true); GetDelayScene(sceneScrolView); } } @@ -1672,7 +1984,7 @@ Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(700), Gravity = Gravity.CenterHorizontal, - Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"), + Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, IsMoreLines = true @@ -1685,67 +1997,75 @@ /// GetDelayScene /// </summary> /// <param name="scrolViewLayout"></param> - private void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) + private async void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) { - new System.Threading.Thread(async () => + var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync(); + if (catDelaySceneResponseAllData == null) { - var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync(); - if (catDelaySceneResponseAllData == null) - { - return; - } - var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData; - if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0) - { - return; - } - var delayList = catDelaySceneResponseData.DelayScenesList; + return; + } + var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData; + if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0) + { + return; + } + var delayList = catDelaySceneResponseData.DelayScenesList; - Application.RunOnMainThread(() => + for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++) + { + var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView; + foreach (var delayScenesListResponseInfo in delayList) { - for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++) + if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) { - var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView; - foreach (var delayScenesListResponseInfo in delayList) + sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime; + var remainTime = delayScenesListResponseInfo.RemainTime; + if (remainTime > 0) { - if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) + new System.Threading.Thread(() => { - sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime; - new System.Threading.Thread(() => + while (remainTime-- > 0) { - while (sceneView.scene.RemainTime > 0) - { - System.Threading.Thread.Sleep(1000); - Application.RunOnMainThread(() => - { - sceneView.SetTimeText(CommonFormResouce.GetTimeString(sceneView.scene.RemainTime)); - }); - sceneView.scene.RemainTime -= 1; - } + System.Threading.Thread.Sleep(1000); Application.RunOnMainThread(() => { - sceneView.SetTimeImage(); + sceneView.SetTimeText(CommonFormResouce.GetTimeString(remainTime)); }); - }) - { IsBackground = true }.Start(); - - break; - } + } + Application.RunOnMainThread(() => + { + sceneView.scene.RemainTime = 0; + sceneView.SetTimeImage(); + }); + }) + { IsBackground = true }.Start(); } + break; } - }); + } + } + } + + /// <summary> + /// GetExecScene + /// </summary> + /// <param name="scrolViewLayout"></param> + private void GetExecScene(VerticalScrolViewLayout scrolViewLayout) + { + new System.Threading.Thread(() => + { + }) { IsBackground = true }.Start(); } - #endregion #region 鈼� 鑷姩鍖朹_________________________ - + /// <summary> /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙� /// </summary> - private void ShowAutotion() + private void ShowAutotion() { // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; #region ---鎺ㄨ崘妯℃澘鐨勭粍浠� @@ -1754,11 +2074,11 @@ { Width = Application.GetRealWidth(1080 - 58), Height = Application.GetRealHeight(170), - BackgroundColor =ZigbeeColor.Current.LogicBackgroundColor, + BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, X = Application.GetRealWidth(58), //Radius = (uint)Application.GetRealHeight(50), Y = Application.GetRealHeight(30), - + }; functionSceneAutoBodyView.AddChidren(bjFrameLayout); bjFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); @@ -1910,26 +2230,26 @@ } logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight; logicScrolView.Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight; - Automationview(logicScrolView,no); + Automationview(logicScrolView, no); }; //涓嬫媺鍒锋柊鑷姩鍖栧垪琛ㄧ殑浜嬩欢 logicScrolView.BeginHeaderRefreshingAction += () => { //閲嶆柊鍒锋柊logic鍒楄〃 Common.Logic.LogicList.Clear(); - Read(logicScrolView,no); + Read(logicScrolView, no); //鍏抽棴鍒锋柊View锛� logicScrolView.EndHeaderRefreshing(); }; - - Read(logicScrolView,no); + + Read(logicScrolView, no); } /// <summary> /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱 /// </summary> /// <param name="logicScrolView"></param> - private async void Read(VerticalRefreshLayout logicScrolView,bool no) + private async void Read(VerticalRefreshLayout logicScrolView, bool no) { CommonPage.Loading.Start(); if (Common.Logic.LogicList.Count == 0) @@ -1951,23 +2271,23 @@ } } //鑷姩鍖� - Automationview(logicScrolView,no); + Automationview(logicScrolView, no); CommonPage.Loading.Hide(); } /// <summary> /// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈� /// </summary> /// <param name="refresview">Refresview.</param> - private async void Automationview(VerticalRefreshLayout refresview,bool no) + private async void Automationview(VerticalRefreshLayout refresview, bool no) { refresview.RemoveAll(); - if (Common.Logic.LogicList.Count == 0&&no==false) + if (Common.Logic.LogicList.Count == 0 && no == false) { //灏辨槸涓轰簡鏄剧ず寮曞娣诲姞鍥炬爣; refresview.BackgroundColor = 0x00000000; var noFrameLayout = new FrameLayout { - Height = Application.GetRealHeight(434+ 200+32+160), + Height = Application.GetRealHeight(434 + 200 + 32 + 160), //BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; refresview.AddChidren(noFrameLayout); @@ -1975,7 +2295,7 @@ var noIconBtn = new Button { - Y=Application.GetRealHeight(160), + Y = Application.GetRealHeight(160), Width = Application.GetMinRealAverage(756), Height = Application.GetMinRealAverage(434), UnSelectedImagePath = "Item/NoFunction.png", @@ -1986,14 +2306,14 @@ var noTextBtn = new Button() { Y = noIconBtn.Bottom, - Height = Application.GetRealHeight(200)+Application.GetRealHeight(32), + Height = Application.GetRealHeight(200) + Application.GetRealHeight(32), Width = Application.GetRealWidth(700), //Gravity = Gravity.CenterHorizontal, Text = Language.StringByID(MyInternationalizationString.automationaddtext).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, IsMoreLines = true, - X = Application.GetRealWidth(190-58), + X = Application.GetRealWidth(190 - 58), }; noFrameLayout.AddChidren(noTextBtn); @@ -2014,14 +2334,14 @@ foreach (var logic in Common.Logic.LogicList) { - + var logicRowlayout = new RowLayout { Height = Application.GetRealHeight(190 + 30), - Width = Application.GetRealWidth(1080-58), + Width = Application.GetRealWidth(1080 - 58), LineColor = ZigbeeColor.Current.LogicBackgroundColor, - BackgroundColor =ZigbeeColor.Current.LogicBackgroundColor, - + BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, + }; refresview.AddChidren(logicRowlayout); @@ -2096,7 +2416,7 @@ var logicCommunalPage = new Logic.LogicCommunalPage(); HomePage.Instance.AddChidren(logicCommunalPage); HomePage.Instance.PageIndex += 1; - logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview,no); }); + logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); }); }; @@ -2118,7 +2438,7 @@ if (e1) { Common.Logic.LogicList.Remove(logic); - Automationview(refresview,no); + Automationview(refresview, no); Logic.Send.DelLogic(logic.LogicId); } }; @@ -2128,7 +2448,7 @@ var line = new Button { Y = Application.GetRealHeight(215), - Height = Application.GetRealHeight(5), + Height = Application.GetRealHeight(5), Width = Application.GetRealWidth(1080 - 58), BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor, X = Application.GetRealWidth(58), @@ -2158,7 +2478,7 @@ logicRowlayout.AddChidren(logictimeBtn); ///鏄剧ず鎵ц鍛ㄦ湡 - Logic.Method.UpdateWeek(logictimeBtn,logic); + Logic.Method.UpdateWeek(logictimeBtn, logic); List<string> indexlist = new List<string>(); -- Gitblit v1.8.0