From 1f65fe366062b3f2cda6b03e1849afce6d2646f8 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 17 十月 2019 13:47:37 +0800 Subject: [PATCH] 2019.10.17 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 2091 ++++++++++++++++++++++++++--------------------------------- 1 files changed, 912 insertions(+), 1,179 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs old mode 100755 new mode 100644 index c41f1d2..92d523f --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -4,6 +4,7 @@ using Shared.Phone.UserView; using Shared.R; using ZigBee.Device; +using Shared.Phone.Device.CommonForm; namespace Shared.Phone.Device.Category { @@ -19,21 +20,29 @@ /// </summary> public static Category instance; /// <summary> + /// low_High + /// </summary> + private const int low_High= 127; + /// <summary> /// 鍔熻兘 /// </summary> - public Button functionBtn; + private ButtonLineForm functionBtn; /// <summary> /// 鍦烘櫙 /// </summary> - public Button sceneBtn; + private ButtonLineForm sceneBtn; /// <summary> /// 鑷姩鍖� /// </summary> - public Button automationBtn; + private ButtonLineForm automationBtn; + /// <summary> + /// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView + /// </summary> + public FrameLayout functionSceneBodyView; /// <summary> /// 涓儴鑳屾櫙bodyView /// </summary> - public FrameLayout functionSceneBodyView; + public FrameLayout functionSceneAutoBodyView; /// <summary> /// 鐩稿悓鐨勮澶囧垪琛� /// </summary> @@ -50,10 +59,6 @@ /// 鍙充笂瑙掓坊鍔犳寜閽� /// </summary> private Device.CommonForm.SelectedStatuButton addBtn; - /// <summary> - /// 鍒嗘爮搴曢儴绾挎潯. - /// </summary> - private Button line; /// <summary> /// 缃戝叧 /// </summary> @@ -73,11 +78,11 @@ /// <summary> /// 褰撳墠鍔熻兘绫诲瀷鎸夐挳 /// </summary> - private Button tempFunctionTypeBtn; + private FunctionButton tempFunctionTypeBtn; /// <summary> /// 鍔熻兘绫诲瀷鎸夐挳 /// </summary> - private Button functionTypeIMG; + private FunctionButton functionTypeIMG; /// <summary> /// 鍔熻兘绫诲瀷 /// </summary> @@ -86,6 +91,14 @@ /// 璁惧绫诲瀷RowLayout /// </summary> private RowLayout typeRowLayout; + /// <summary> + /// 妤煎眰 + /// </summary> + private Button floorBtn; + /// <summary> + /// 閫夋嫨妤煎眰 + /// </summary> + private Button selectFloorBtn; #endregion @@ -455,13 +468,13 @@ } } break; - case DeviceType.WindowCoveringDevice: + case DeviceType.WindowCoveringDevice: var rollerShape = deviceUI.CommonDevice as Rollershade; //璁板綍鍥炲鏃堕棿 rollerShape.LastDateTime = DateTime.Now; rollerShape.IsOnline = (common as Rollershade).IsOnline; for (int j = 0; j < rowLayout.ChildrenCount; j++) - { + { var tempView = rowLayout.GetChildren(j); if (tempView.Tag == null) { @@ -520,7 +533,7 @@ /// </summary> public Category() { - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; instance = this; } @@ -530,156 +543,131 @@ /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param> public void Show(int selectedBtn = 1) { + ZbGateway.StatusList.Add(this); RemoveAll(); + #region topview var topView = new FrameLayout() { - Height = Application.GetRealHeight(CommonPage.Navigation_Height), - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, + Y = Application.GetRealHeight(104), + Height = Application.GetRealHeight(low_High), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, }; this.AddChidren(topView); var title = new Button() { - Y = Application.GetRealHeight(CommonPage.NavigationTitle_Y), - Height = Application.GetRealHeight(CommonPage.Navigation_Height - CommonPage.NavigationTitle_Y), - TextAlignment = TextAlignment.Center, + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(95), + Width = Application.GetRealWidth(CommonFormResouce.TopTitle_Width), + Gravity = Gravity.CenterVertical, + TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.Category, TextSize = 20, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - Width = Application.GetRealWidth(CommonPage.AppRealWidth - 500), - Gravity = Gravity.CenterHorizontal + TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, }; topView.AddChidren(title); - addBtn = new Device.CommonForm.SelectedStatuButton() + addBtn = new SelectedStatuButton() { - Y = Application.GetRealHeight(CommonPage.NavigationTitle_Y), - Width = Application.GetMinRealAverage(100), - Height = Application.GetMinRealAverage(100), - UnSelectedImagePath = "Item/Add.png", - SelectedImagePath = "Item/AddSelected.png", - X = Application.GetRealWidth(CommonPage.AppRealWidth - 150), + X = Application.GetRealWidth(953), + Width = Application.GetMinRealAverage(104), + Height = Application.GetMinRealAverage(104), + Gravity = Gravity.CenterVertical, + UnSelectedImagePath = "Item/Add_Category.png", + SelectedImagePath = "Item/Add_Category.png" }; topView.AddChidren(addBtn); #endregion #region midFL - int functionSceneAuto_width; - //鎴愬憳娌℃湁鏉冮檺灞曠ず鑷姩鍖栫晫闈� - if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3) - { - functionSceneAuto_width = 1080 / 2; - } - else - { - functionSceneAuto_width = 1080 / 3; - } - var functionSceneAuto_height = 120; var midFL = new FrameLayout { Y = topView.Bottom, - Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - topView.Bottom + Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - topView.Bottom, + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; AddChidren(midFL); + var functionSceneAutoBG = new FrameLayout() { - Height = Application.GetRealHeight(functionSceneAuto_height), - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor + Height = Application.GetRealHeight(low_High), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; midFL.AddChidren(functionSceneAutoBG); //鍔熻兘 - functionBtn = new Button() - { - Width = Application.GetRealWidth(functionSceneAuto_width), - Height = Application.GetRealHeight(functionSceneAuto_height), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, - TextAlignment = TextAlignment.Center, - TextSize = 16, - TextID = R.MyInternationalizationString.Function, - IsSelected = false - }; - midFL.AddChidren(functionBtn); + functionBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68); + functionSceneAutoBG.AddChidren(functionBtn); + functionBtn.Init(); + functionBtn.SetTitle(R.MyInternationalizationString.Function); + //鍦烘櫙 - sceneBtn = new Button() - { - X = functionBtn.Right, - Width = Application.GetRealWidth(functionSceneAuto_width), - Height = Application.GetRealHeight(functionSceneAuto_height), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, - TextAlignment = TextAlignment.Center, - TextSize = 16, - TextID = R.MyInternationalizationString.Scence, - IsSelected = false - }; - midFL.AddChidren(sceneBtn); + sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68); + functionSceneAutoBG.AddChidren(sceneBtn); + sceneBtn.Init(); + sceneBtn.SetTitle(R.MyInternationalizationString.Scence); + //鑷姩鍖� - automationBtn = new Button() - { - X = sceneBtn.Right, - Width = Application.GetRealWidth(functionSceneAuto_width), - Height = Application.GetRealHeight(functionSceneAuto_height), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, - TextAlignment = TextAlignment.Center, - TextSize = 16, - TextID = R.MyInternationalizationString.Automation, - IsSelected = false - }; + automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68); + automationBtn.Init(); + automationBtn.SetTitle(R.MyInternationalizationString.Automation); //闅愯棌鑷姩鍖� if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3) { - midFL.AddChidren(automationBtn); + functionSceneAutoBG.AddChidren(automationBtn); } - var functionSceneBottomLine = new Button() + floorBtn = new Button() { - Y = functionBtn.Bottom, - Height = CommonPage.LineHeight, - X = functionBtn.X, - BackgroundColor = ZigbeeColor.Current.GXCLineColor + X = Application.GetRealWidth(750), + Width = Application.GetRealWidth(200), + Height = Application.GetRealHeight(60), + Gravity = Gravity.CenterVertical, + TextAlignment = TextAlignment.CenterRight, + TextColor = ZigbeeColor.Current.GXCTextBlackColor, }; - midFL.AddChidren(functionSceneBottomLine); - line = new Button() + + selectFloorBtn = new Button() { - Y = functionBtn.Bottom, - Height = CommonPage.LineHeight, - X = sceneBtn.X, - Width = Application.GetRealWidth(functionSceneAuto_width), - BackgroundColor = ZigbeeColor.Current.GXCButtonBlueColor + X = Application.GetRealWidth(950), + Width = Application.GetMinRealAverage(69), + Height = Application.GetMinRealAverage(69), + Gravity = Gravity.CenterVertical, + UnSelectedImagePath = "Item/Drop_Down.png" }; - midFL.AddChidren(line); - //鍔熻兘鍜屽満鏅痓odyView - functionSceneBodyView = new FrameLayout() + + if (Config.Instance.Home.FloorDics.Count > 0) { - Y = line.Bottom, - Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - functionBtn.Height - topView.Height - CommonPage.LineHeight, + floorBtn.Text = Config.Instance.Home.GetCurrentFloorName; + functionSceneAutoBG.AddChidren(floorBtn); + functionSceneAutoBG.AddChidren(selectFloorBtn); + } + + functionSceneAutoBodyView = new FrameLayout + { + Y = functionSceneAutoBG.Bottom, + Height = Application.GetRealHeight(1423), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; - midFL.AddChidren(functionSceneBodyView); + midFL.AddChidren(functionSceneAutoBodyView); if (selectedBtn == 0) { addBtn.Visible = false; functionBtn.IsSelected = true; - line.X = functionBtn.X; } else if (selectedBtn == 1) { addBtn.Visible = true; sceneBtn.IsSelected = true; - line.X = sceneBtn.X; } else if (selectedBtn == 2) { addBtn.Visible = true; automationBtn.IsSelected = true; - line.X = automationBtn.X; } RefreshBodyView(); - #endregion //缁戝畾鎸夐挳浜嬩欢 @@ -695,13 +683,34 @@ private void BindEvent() { //閫夋嫨鍔熻兘鍒嗘爮 - functionBtn.MouseUpEventHandler += FunctionBtn_MouseUpEventHandler; + functionBtn.NameBtn.MouseUpEventHandler += FunctionBtn_MouseUpEventHandler; //閫夋嫨鍦烘櫙鍒嗘爮 - sceneBtn.MouseUpEventHandler += SceneBtn_MouseUpEventHandler; + sceneBtn.NameBtn.MouseUpEventHandler += SceneBtn_MouseUpEventHandler; //閫変腑鑷姩鍖� - automationBtn.MouseUpEventHandler += AutomationBtn_MouseUpEventHandler; + automationBtn.NameBtn.MouseUpEventHandler += AutomationBtn_MouseUpEventHandler; //鍙充笂瑙掓坊鍔犳寜閽� addBtn.MouseUpEventHandler += AddBtn_MouseUpEventHandler; + + selectFloorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; + floorBtn.MouseUpEventHandler+= SelectedFloor_MouseUpEventHandler; + + } + + /// <summary> + /// 閫夋嫨妤煎眰 + /// </summary> + /// <param name="sender">Sender.</param> + /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> + private void SelectedFloor_MouseUpEventHandler(object sender, MouseEventArgs mouseEventArgs) + { + var floors = new SelectFloor (); + AddChidren(floors); + floors.Init(599,357,Direction.Right); + floors.FloorAction += (floorName) => + { + floorBtn.Text = floorName; + RefreshBodyView(); + }; } /// <summary> @@ -714,7 +723,6 @@ functionBtn.IsSelected = true; sceneBtn.IsSelected = false; automationBtn.IsSelected = false; - line.X = functionBtn.X; addBtn.Visible = false; RefreshBodyView(); } @@ -729,7 +737,6 @@ functionBtn.IsSelected = false; sceneBtn.IsSelected = true; automationBtn.IsSelected = false; - line.X = sceneBtn.X; addBtn.Visible = true; RefreshBodyView(); } @@ -744,7 +751,6 @@ functionBtn.IsSelected = false; sceneBtn.IsSelected = false; automationBtn.IsSelected = true; - line.X = automationBtn.X; addBtn.Visible = true; RefreshBodyView(); } @@ -782,11 +788,11 @@ UserView.HomePage.Instance.PageIndex += 1; CategoryAddScene.sceneTargetDevicesList?.Clear(); CategoryAddScene.SceneText = ""; - CategoryAddScene.CurrentRoom = Shared.Common.Room.CurrentRoom; + scene.curRoom = Shared.Common.Room.CurrentRoom; CategoryAddScene.ModifySceneUI = null; CategoryAddScene.Modify = false; - CategoryAddScene.ImagePath = "Scene/Scene0.png"; - scene.Show(); + CategoryAddScene.ImagePath = "SceneIcon/1.png"; + scene.Show(scene.curRoom); } /// <summary> @@ -812,7 +818,7 @@ /// </summary> public void RefreshBodyView() { - functionSceneBodyView.RemoveAll(); + functionSceneAutoBodyView.RemoveAll(); if (functionBtn.IsSelected) { ShowFunction(); @@ -835,16 +841,49 @@ /// </summary> public void ShowFunction() { + AddRoomView(); + } + + /// <summary> + /// 鎻愮ず娌℃湁鍔熻兘 + /// </summary> + private void ShowNoFunctionTip() + { + var noFunction = new Button() + { + Y=Application.GetRealHeight(320), + Width=Application.GetMinRealAverage(757), + Height = Application.GetMinRealAverage(435), + UnSelectedImagePath="Item/NoFunction.png", + Gravity = Gravity.CenterHorizontal + }; + functionSceneBodyView.AddChidren(noFunction); + + var noFunctionTip = new Button() + { + Y = noFunction.Bottom + Application.GetRealHeight(32), + Height = Application.GetRealHeight(200), + Width = Application.GetRealWidth(700), + Gravity = Gravity.CenterHorizontal, + Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"), + TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, + TextAlignment = TextAlignment.Center, + IsMoreLines=true + }; + functionSceneBodyView.AddChidren(noFunctionTip); + } + + /// <summary> + /// RefreshFunction + /// </summary> + /// <param name="room"></param> + private void RefreshFunction(Common.Room room) + { //绉婚櫎鐩戝惉 RemoveAllUpdateControlDeviceStatuAction(); - //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙� - Shared.Common.Room.GetAllRoomDeviceUIList(); - Shared.Common.Room.GetAllRoomDeviceTypeList(); - if (Common.Room.AllRoomDeviceUIList == null) - { - return; - } - if (Common.Room.AllRoomDeviceUIList.Count == 0) + functionSceneBodyView.RemoveAll(); + + if (room.DeviceUIList.Count == 0) { ShowNoFunctionTip(); } @@ -852,26 +891,538 @@ { functionTypeScrowView = new HorizontalScrolViewLayout { - Height = Application.GetRealHeight(CommonPage.RowHeight) - 1, - Width = Application.GetRealWidth(CommonPage.AppRealWidth) + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(279), + Width = Application.GetRealWidth(1028), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor }; functionSceneBodyView.AddChidren(functionTypeScrowView); - var typeLine = new Button() - { - Y = functionTypeScrowView.Bottom, - Width = Application.GetRealWidth(CommonPage.AppRealWidth), - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCLineColor - }; - functionSceneBodyView.AddChidren(typeLine); + deviceListScrolView = new VerticalScrolViewLayout { - Y = typeLine.Bottom, - Height = functionSceneBodyView.Height - Application.GetRealHeight(CommonPage.RowHeight) - 1 + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50), + Width = Application.GetRealWidth(1028), + Height = functionSceneBodyView.Height - Application.GetRealHeight(279 + 50) - 1, + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; functionSceneBodyView.AddChidren(deviceListScrolView); - tempFunctionTypeBtn = new Button(); - foreach (var deviceType in Common.Room.AllRoomDeviceTypeList) + tempFunctionTypeBtn = new FunctionButton(); + + EventHandler<MouseEventArgs> 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<DeviceUI> { }; + foreach (var devieceUI in room.DeviceUIList) + { + 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 == ZigBee.Device.DeviceType.OnOffOutput) + { + //鐏� + var light = deviceUI.CommonDevice as ZigBee.Device.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(127 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(light.IsOnline == 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 CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; + if ((send2 as CommonForm.SelectedStatuButton).IsSelected) + { + light.SwitchControl(1); + } + else + { + light.SwitchControl(0); + } + //鎺у埗寤舵椂鍥炶皟 + 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; + } + 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(127 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(airSwitch.IsOnline == 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 CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; + if ((send2 as CommonForm.SelectedStatuButton).IsSelected) + { + airSwitch.SwitchControl(1); + } + else + { + airSwitch.SwitchControl(0); + } + //鎺у埗寤舵椂鍥炶皟 + 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; + } + 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(127 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(dimmableLight.IsOnline == 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 CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; + if ((send2 as CommonForm.SelectedStatuButton).IsSelected) + { + dimmableLight.SwitchControl(1); + } + else + { + dimmableLight.SwitchControl(0); + } + //鎺у埗寤舵椂鍥炶皟 + 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; + + } + 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.ReadFanMode(); + ac.ReadSystemMode(); + ac.ReadLocalTemperature(); + ac.ReadCoolingSetpoint(); + ac.ReadHeatingSetpoint(); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� + if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + ac.ReadFanMode(); + ac.ReadSystemMode(); + ac.ReadLocalTemperature(); + ac.ReadCoolingSetpoint(); + ac.ReadHeatingSetpoint(); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(ac.IsOnline == 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 CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; + if ((send2 as CommonForm.SelectedStatuButton).IsSelected) + { + ac.Open(); + } + else + { + ac.Close(); + } + //鎺у埗寤舵椂鍥炶皟 + 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; + } + 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); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇 + if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + } + } + + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCLineColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(rollerShade.IsOnline == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + 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.SwitchBtn.MouseUpEventHandler += (sender, e) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (sender as CommonForm.SelectedStatuButton).IsSelected = !(sender as CommonForm.SelectedStatuButton).IsSelected; + if ((sender as CommonForm.SelectedStatuButton).IsSelected) + { + rollerShade.CurtainUpDownStopControl(0); + } + else + { + rollerShade.CurtainUpDownStopControl(1); + } + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + } + else + { + + } + } + }; + + foreach (var deviceType in Common.Room.GetdeviceTypes(room)) { typeRowLayout = new RowLayout() { @@ -880,760 +1431,115 @@ Tag = deviceType }; functionTypeScrowView.AddChidren(typeRowLayout); - functionTypeIMG = new Button() + + functionTypeIMG = new FunctionButton() { - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.Center, - UnSelectedImagePath = DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), - SelectedImagePath = DeviceUI.GetDeviceTypeSelectedImagePath(deviceType), Tag = deviceType }; + functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType)); + functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType)); typeRowLayout.AddChidren(functionTypeIMG); - functionTypeIMG.MouseUpEventHandler += ShowSameTypeFunction; - if (deviceType == Shared.Common.Room.AllRoomDeviceUIList[0].CommonDevice.Type) + functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction; + functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction; + functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction; + + if (deviceType == room.DeviceUIList[0].CommonDevice.Type) { - ShowSameTypeFunction(functionTypeIMG, null); + ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); } + } + + } } /// <summary> - /// 鏄剧ず鐩稿悓绫诲瀷鐨勫姛鑳� + /// AddRoomView /// </summary> - /// <param name="typeSender">typeSender.</param> - /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> - private void ShowSameTypeFunction(object typeSender, MouseEventArgs mouseEventArgs) + private void AddRoomView() { - //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙� - Shared.Common.Room.GetAllRoomDeviceUIList(); - tempFunctionTypeBtn.IsSelected = false; - (typeSender as Button).IsSelected = true; - tempFunctionTypeBtn = (typeSender as Button); - deviceListScrolView.RemoveAll(); - - var sameTypeList = new List<DeviceUI> { }; - foreach (var devieceUI in Common.Room.AllRoomDeviceUIList) + var roomFL = new HorizontalScrolViewLayout() { - 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 Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); - alert.Show(); - alert.ResultEventHandler += (send1, e2) => - { - if (e2) - { - Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice, false); - 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 == ZigBee.Device.DeviceType.OnOffOutput) - { - //鐏� - var light = deviceUI.CommonDevice as ZigBee.Device.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(CommonPage.RowHeight), - LineColor = ZigbeeColor.Current.GXCLineColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(CommonPage.XLeft), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = deviceUI.IconPath, - SelectedImagePath = deviceUI.OnlineIconPath, - Gravity = Gravity.CenterVertical, - IsSelected = light.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceTypeRowLayout.AddChidren(deviceIMG); - var deviceNameBtn = new Button() - { - X = Application.GetRealWidth(50) + deviceIMG.Right, - Width = Application.GetRealWidth(500), - Text = deviceUI.CommonDevice.DeviceEpointName, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.CenterLeft - }; - deviceTypeRowLayout.AddChidren(deviceNameBtn); - var switchBtn = new Button - { - X = deviceTypeRowLayout.Right - Application.GetRealWidth(200), - Width = Application.GetMinRealAverage(183), - Height = Application.GetMinRealAverage(123), - UnSelectedImagePath = "Item/Switch.png", - SelectedImagePath = "Item/SwitchSelected.png", - IsSelected = light.OnOffStatus == 1, - Tag = deviceStatus_OnOffStatus, - Gravity = Gravity.CenterVertical - }; - deviceTypeRowLayout.AddChidren(switchBtn); - - switchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - switchBtn.IsSelected = !switchBtn.IsSelected; - if (switchBtn.IsSelected == true) - { - light.SwitchControl(1); - } - else - { - light.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler; - deviceIMG.MouseUpEventHandler += deviceDetailHandler; - deviceNameBtn.MouseUpEventHandler += deviceDetailHandler; - } - 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(CommonPage.RowHeight), - LineColor = ZigbeeColor.Current.GXCLineColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(CommonPage.XLeft), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = deviceUI.IconPath, - SelectedImagePath = deviceUI.OnlineIconPath, - Gravity = Gravity.CenterVertical, - IsSelected = airSwitch.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceTypeRowLayout.AddChidren(deviceIMG); - var deviceNameBtn = new Button() - { - X = Application.GetRealWidth(50) + deviceIMG.Right, - Width = Application.GetRealWidth(500), - Text = deviceUI.CommonDevice.DeviceEpointName, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.CenterLeft - }; - deviceTypeRowLayout.AddChidren(deviceNameBtn); - var switchBtn = new Button - { - X = deviceTypeRowLayout.Right - Application.GetRealWidth(200), - Width = Application.GetMinRealAverage(183), - Height = Application.GetMinRealAverage(123), - UnSelectedImagePath = "Item/Switch.png", - SelectedImagePath = "Item/SwitchSelected.png", - IsSelected = airSwitch.OnOffStatus == 1, - Tag = deviceStatus_OnOffStatus, - Gravity = Gravity.CenterVertical - }; - deviceTypeRowLayout.AddChidren(switchBtn); - switchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - switchBtn.IsSelected = !switchBtn.IsSelected; - if (switchBtn.IsSelected == true) - { - airSwitch.SwitchControl(1); - } - else - { - airSwitch.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler; - deviceIMG.MouseUpEventHandler += deviceDetailHandler; - deviceNameBtn.MouseUpEventHandler += deviceDetailHandler; - } - 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(CommonPage.RowHeight), - LineColor = ZigbeeColor.Current.GXCLineColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(CommonPage.XLeft), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = deviceUI.IconPath, - SelectedImagePath = deviceUI.OnlineIconPath, - Gravity = Gravity.CenterVertical, - IsSelected = dimmableLight.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceTypeRowLayout.AddChidren(deviceIMG); - var deviceNameBtn = new Button() - { - X = Application.GetRealWidth(50) + deviceIMG.Right, - Width = Application.GetRealWidth(500), - Text = deviceUI.CommonDevice.DeviceEpointName, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.CenterLeft - }; - deviceTypeRowLayout.AddChidren(deviceNameBtn); - var switchBtn = new Button - { - X = deviceTypeRowLayout.Right - Application.GetRealWidth(200), - Width = Application.GetMinRealAverage(183), - Height = Application.GetMinRealAverage(123), - UnSelectedImagePath = "Item/Switch.png", - SelectedImagePath = "Item/SwitchSelected.png", - IsSelected = dimmableLight.OnOffStatus == 1, - Tag = deviceStatus_OnOffStatus, - Gravity = Gravity.CenterVertical - }; - deviceTypeRowLayout.AddChidren(switchBtn); - switchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - switchBtn.IsSelected = !switchBtn.IsSelected; - if (switchBtn.IsSelected == true) - { - dimmableLight.SwitchControl(1); - } - else - { - dimmableLight.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler; - deviceIMG.MouseUpEventHandler += deviceDetailHandler; - deviceNameBtn.MouseUpEventHandler += deviceDetailHandler; - } - 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.ReadFanMode(); - ac.ReadSystemMode(); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� - if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - ac.ReadFanMode(); - ac.ReadSystemMode(); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(CommonPage.RowHeight), - LineColor = ZigbeeColor.Current.GXCLineColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(CommonPage.XLeft), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = deviceUI.IconPath, - SelectedImagePath = deviceUI.OnlineIconPath, - Gravity = Gravity.CenterVertical, - IsSelected = ac.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceTypeRowLayout.AddChidren(deviceIMG); - var deviceNameBtn = new Button() - { - X = Application.GetRealWidth(50) + deviceIMG.Right, - Width = Application.GetRealWidth(500), - Text = deviceUI.CommonDevice.DeviceEpointName, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.CenterLeft - }; - deviceTypeRowLayout.AddChidren(deviceNameBtn); - var switchBtn = new Button - { - X = deviceTypeRowLayout.Right - Application.GetRealWidth(200), - Width = Application.GetMinRealAverage(183), - Height = Application.GetMinRealAverage(123), - UnSelectedImagePath = "Item/Switch.png", - SelectedImagePath = "Item/SwitchSelected.png", - IsSelected = Device.AC.ACControlBase.IsOpen(ac), - Tag = deviceStatus_OnOffStatus, - Gravity = Gravity.CenterVertical - }; - deviceTypeRowLayout.AddChidren(switchBtn); - switchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - switchBtn.IsSelected = !switchBtn.IsSelected; - if (switchBtn.IsSelected == true) - { - ac.Open(); - } - else - { - ac.Close(); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler; - deviceIMG.MouseUpEventHandler += deviceDetailHandler; - deviceNameBtn.MouseUpEventHandler += deviceDetailHandler; - } - 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); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇 - if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(CommonPage.RowHeight), - LineColor = ZigbeeColor.Current.GXCLineColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(CommonPage.XLeft), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = deviceUI.IconPath, - SelectedImagePath = deviceUI.OnlineIconPath, - Gravity = Gravity.CenterVertical, - IsSelected = rollerShade.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceTypeRowLayout.AddChidren(deviceIMG); - var deviceNameBtn = new Button() - { - X = Application.GetRealWidth(50) + deviceIMG.Right, - Width = Application.GetRealWidth(350), - Text = deviceUI.CommonDevice.DeviceEpointName, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.CenterLeft - }; - deviceTypeRowLayout.AddChidren(deviceNameBtn); - - var closeBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(50) + deviceNameBtn.Right, - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "WindowCovering/RollerShadeClose.png", - SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png", - }; - deviceTypeRowLayout.AddChidren(closeBtn); - var stopBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(50) + closeBtn.Right, - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "WindowCovering/RollerShadeStop.png", - SelectedImagePath = "WindowCovering/RollerShadeStopSelected.png", - }; - deviceTypeRowLayout.AddChidren(stopBtn); - var openBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(50) + stopBtn.Right, - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png", - SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png", - }; - deviceTypeRowLayout.AddChidren(openBtn); - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - //绐楀笜鍏� - closeBtn.MouseUpEventHandler += (sender, e) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - rollerShade.CurtainUpDownStopControl(1); - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - //绐楀笜鍋� - stopBtn.MouseUpEventHandler += (sender, e) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - rollerShade.CurtainUpDownStopControl(2); - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - //绐楀笜寮� - openBtn.MouseUpEventHandler += (sender, e) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - rollerShade.CurtainUpDownStopControl(0); - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler; - deviceIMG.MouseUpEventHandler += deviceDetailHandler; - deviceNameBtn.MouseUpEventHandler += deviceDetailHandler; - } - else - { - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(CommonPage.RowHeight), - LineColor = ZigbeeColor.Current.GXCLineColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(CommonPage.XLeft), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = deviceUI.IconPath, - SelectedImagePath = deviceUI.OnlineIconPath, - Gravity = Gravity.CenterVertical, - Tag = deviceStatus_Online - }; - deviceTypeRowLayout.AddChidren(deviceIMG); - var deviceNameBtn = new Button() - { - X = Application.GetRealWidth(50) + deviceIMG.Right, - Width = Application.GetRealWidth(500), - Text = deviceUI.CommonDevice.DeviceEpointName, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.CenterLeft - }; - deviceTypeRowLayout.AddChidren(deviceNameBtn); - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - deviceTypeRowLayout.MouseUpEventHandler += deviceDetailHandler; - deviceIMG.MouseUpEventHandler += deviceDetailHandler; - deviceNameBtn.MouseUpEventHandler += deviceDetailHandler; - } - } - } - - /// <summary> - /// 鎻愮ず娌℃湁鍔熻兘 - /// </summary> - private void ShowNoFunctionTip() - { - var noFunctionTip = new Button() - { - Height = Application.GetMinRealAverage(200), - TextID = R.MyInternationalizationString.NoFunction, - TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, - TextAlignment = TextAlignment.Center, - Gravity = Gravity.CenterVertical + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(167), + Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonFormResouce.X_Left), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; - functionSceneBodyView.AddChidren(noFunctionTip); + functionSceneAutoBodyView.AddChidren(roomFL); + + //鍔熻兘鍜屽満鏅痓odyView + functionSceneBodyView = new FrameLayout() + { + Y = roomFL.Bottom, + Height = Application.GetRealHeight(1316), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor + }; + functionSceneAutoBodyView.AddChidren(functionSceneBodyView); + + Button curBtn = new Button(); + foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) + { + var row = new RowLayout() + { + Width = Application.GetRealWidth(187 + 50), + Height = Application.GetRealHeight(167), + LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor + }; + 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 + }; + row.AddChidren(roomBtn); + if (room.IsLove) + { + roomBtn.IsSelected = true; + curBtn = roomBtn; + + if(sceneBtn.IsSelected) + { + RefreshScene(room); + } + else + { + RefreshFunction(room); + } + + } + roomBtn.MouseUpEventHandler += (sender, e) => + { + if ((sender as Button) == curBtn) + { + return; + } + (sender as Button).IsSelected = true; + curBtn.IsSelected = false; + curBtn = sender as Button; + if (sceneBtn.IsSelected) + { + RefreshScene(room); + } + else + { + RefreshFunction(room); + } + }; + } + } #endregion @@ -1644,133 +1550,122 @@ /// </summary> public void ShowScene() { - //鍒锋柊鍦烘櫙 - //var reFreshResult=await Shared.Common.Room.RefreshSceneUIList(); - Shared.Common.SceneRoomUI.GetAllSceneRoomUIList(); - if (SceneRoomUI.AllSceneRoomUIList == null) - { - return; - } - var sceneList = SceneRoomUI.AllSceneRoomUIList; - Shared.Common.Room.GetAllRoomDeviceUIList(); + AddRoomView(); + } + + /// <summary> + /// RefreshScene + /// </summary> + /// <param name="room"></param> + public void RefreshScene(Common.Room room) + { + var sceneList = room.SceneUIList; if (sceneList.Count == 0) { ShowNoSceneTip(); } else { - var sceneScrolView = new VerticalScrolViewLayout { }; + var sceneScrolView = new VerticalScrolViewLayout + { + Y = Application.GetRealHeight(58) + }; functionSceneBodyView.AddChidren(sceneScrolView); - foreach (var sceneRoomUI in sceneList) + foreach (var scene in sceneList) { var sceneFL = new FrameLayout() { - Width = Application.GetRealWidth(CommonPage.AppRealWidth - 100), - Height = Application.GetRealHeight(400), - Gravity = Gravity.CenterHorizontal, - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = sceneRoomUI + Height = Application.GetRealHeight(446), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, + Tag = scene }; sceneScrolView.AddChidren(sceneFL); - var sceneRowLayout = new RowLayout() + var sceneRowLayout = new RowLayout { - Y = Application.GetRealHeight(30), - Height = Application.GetRealHeight(400 - 30 - 10), - Gravity = Gravity.CenterHorizontal, - LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Y = Application.GetRealHeight(46), + Height = Application.GetRealHeight(446 - 46), + LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor, Radius = CommonPage.BigFormRadius }; sceneFL.AddChidren(sceneRowLayout); - var sceneItemFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - sceneRowLayout.AddChidren(sceneItemFL); + var sceneImg = new Button() { - UnSelectedImagePath = sceneRoomUI.sceneUI.IconPath, - Radius = CommonPage.BigFormRadius + X = Application.GetRealWidth(179), + Width = Application.GetRealWidth(844), + Height = Application.GetRealHeight(400), + BackgroundColor = ZigbeeColor.Current.GXCRedColor, + UnSelectedImagePath = scene.IconPath, + Radius = (uint)Application.GetRealHeight(17) }; sceneRowLayout.AddChidren(sceneImg); - var sceneBGBtn = new Button() + var leftFL = new FrameLayout { - BackgroundColor = ZigbeeColor.Current.GXCBlack70Color, - SelectedBackgroundColor = ZigbeeColor.Current.GXCBlack80Color, - Radius = CommonPage.BigFormRadius + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Y = Application.GetRealHeight(58), + Width = Application.GetRealWidth(251), + Height = Application.GetRealHeight(282), + BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2, + Radius = (uint)Application.GetRealHeight(17) }; - sceneRowLayout.AddChidren(sceneBGBtn); - var roomNameBtn = new Button() + sceneRowLayout.AddChidren(leftFL); + + var collectionBtn = new Button { - X = Application.GetRealWidth(30), - Y = Application.GetRealHeight(1), - Width = Application.GetRealWidth(600), - Height = Application.GetRealHeight(110), - Text = $"{sceneRoomUI.room.Name}", - TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - TextSize = 12, - TextAlignment = TextAlignment.CenterLeft + X = Application.GetRealWidth(23), + Y = Application.GetRealHeight(23), + Width = Application.GetMinRealAverage(65), + Height = Application.GetMinRealAverage(65), + UnSelectedImagePath = "Item/Collection.png", + SelectedImagePath = "Item/CollectionSelected.png" }; - sceneRowLayout.AddChidren(roomNameBtn); + leftFL.AddChidren(collectionBtn); var sceneNameBtn = new Button() { - Width = Application.GetRealWidth(700), + Width = Application.GetRealWidth(176), Height = Application.GetRealHeight(200), TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - TextSize = 20, - Text = sceneRoomUI.sceneUI.Name, - Gravity = Gravity.Center + Text = scene.Name, + Gravity = Gravity.Center, + IsMoreLines = true }; - sceneRowLayout.AddChidren(sceneNameBtn); - var moreBtn = new Device.CommonForm.SelectedStatuButton() - { - Y = Application.GetRealHeight(1), - X = sceneRowLayout.Width - Application.GetRealWidth(150), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = "Item/MoreWhite.png", - SelectedImagePath = "Item/MoreSelected.png" - }; - sceneRowLayout.AddChidren(moreBtn); + leftFL.AddChidren(sceneNameBtn); - //缂栬緫寤舵椂 - var leftDelayTimeBtn = new Device.CommonForm.RowLayoutEditButton() + //瀹氭椂 + var delayBtn = new RowLayoutDeleteButton { - Tag = sceneRoomUI.sceneUI.SceneDelayTime + TextID = R.MyInternationalizationString.Delay, + Tag = scene.SceneDelayTime }; + sceneRowLayout.AddLeftView(delayBtn); + //缂栬緫 + var settingBtn = new Device.CommonForm.RowLayoutEditButton() + { + TextID = R.MyInternationalizationString.Setting, + Tag = scene.SceneDelayTime + }; //鍒犻櫎 var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton { - Tag = sceneRoomUI + Tag = scene }; - if(!sceneRoomUI.room.IsSharedRoom) + if (!room.IsSharedRoom) { - sceneRowLayout.AddRightView(leftDelayTimeBtn); + sceneRowLayout.AddRightView(settingBtn); sceneRowLayout.AddRightView(deleteBtn); } //璋冪敤鍦烘櫙 - EventHandler<MouseEventArgs> sceneDownHandler = (sender, e) => - { - sceneBGBtn.IsSelected = true; - }; - sceneBGBtn.MouseDownEventHandler += sceneDownHandler; - sceneImg.MouseDownEventHandler += sceneDownHandler; - sceneRowLayout.MouseDownEventHandler += sceneDownHandler; - sceneNameBtn.MouseDownEventHandler += sceneDownHandler; - sceneFL.MouseDownEventHandler += sceneDownHandler; - EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => { - sceneBGBtn.IsSelected = false; //1鎴愬姛 0澶辫触 //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず //瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮 - var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(sceneRoomUI.sceneUI.Id, sceneRoomUI.sceneUI.SceneDelayTime); + var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); //涓荤綉鍏充笉鍦ㄧ嚎 if (sceneOpenAllData == null) { @@ -1795,22 +1690,22 @@ return; } }; - sceneBGBtn.MouseUpEventHandler += sceneUpHandler; sceneImg.MouseUpEventHandler += sceneUpHandler; - sceneRowLayout.MouseUpEventHandler += sceneUpHandler; - sceneFL.MouseUpEventHandler += sceneUpHandler; - sceneNameBtn.MouseUpEventHandler += sceneUpHandler; //鍒犻櫎鍦烘櫙 EventHandler<MouseEventArgs> delEvent = (sender, e) => { - var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); - alert.Show(); - alert.ResultEventHandler += async (send1, e1) => + var tip = new CustomAlert { }; + AddChidren(tip); + tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); + + //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); + //alert.Show(); + tip.ResultEventHandler += async (e1) => { if (e1) { //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� - var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(sceneRoomUI.sceneUI.Id); + var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) { //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); @@ -1820,7 +1715,7 @@ //1鎴愬姛 if (removeSceneAllData.removeSceneData.Result == 1) { - sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI); + room.RemoveScene(scene); //RefreshBodyView(); sceneScrolView.RemoveViewByTag((sender as Button).Tag); } @@ -1833,7 +1728,7 @@ //2 娌℃湁璇ュ満鏅� else if (removeSceneAllData.removeSceneData.Result == 2) { - sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI); + room.RemoveScene(scene); //RefreshBodyView(); sceneScrolView.RemoveViewByTag((sender as Button).Tag); CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); @@ -1844,12 +1739,12 @@ }; deleteBtn.MouseUpEventHandler += delEvent; //缂栬緫鍦烘櫙 - moreBtn.MouseUpEventHandler += (sender, e) => + settingBtn.MouseUpEventHandler += (sender, e) => { - SceneRoomUI.EditScene(sceneRoomUI.sceneUI, sceneRoomUI.room); + SceneRoomUI.EditScene(scene,room); }; //缂栬緫寤舵椂 - leftDelayTimeBtn.MouseUpEventHandler += (sender, e) => + delayBtn.MouseUpEventHandler += (sender, e) => { var tList = new List<string>() { }; @@ -1858,24 +1753,24 @@ tList.Add($"{i} {Language.StringByID(R.MyInternationalizationString.Second)}"); } //int beforeIndex = (int)(sender as CommonForm.RowLayoutEditButton).Tag; - PickerView.Show(tList, (obj) => - { - var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName); - if (tempRoom == null) - { - return; - } - foreach (var ss in tempRoom.SceneUIList) - { - if (ss.Id == sceneRoomUI.sceneUI.Id) - { - ss.SceneDelayTime = int.Parse(tList[obj].Split(' ')[0]); - sceneRoomUI.room.Save(); - RefreshBodyView(); - return; - } - } - },0,"", Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]); + //PickerView.Show(tList, (obj) => + //{ + // var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName); + // if (tempRoom == null) + // { + // return; + // } + // foreach (var ss in tempRoom.SceneUIList) + // { + // if (ss.Id == sceneRoomUI.sceneUI.Id) + // { + // //ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]); + // sceneRoomUI.room.Save(); + // RefreshBodyView(); + // return; + // } + // } + //}, Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]); }; } } @@ -1886,13 +1781,26 @@ /// </summary> private void ShowNoSceneTip() { + var noFunction = new Button() + { + Y = Application.GetRealHeight(320), + Width = Application.GetMinRealAverage(757), + Height = Application.GetMinRealAverage(435), + UnSelectedImagePath = "Item/NoFunction.png", + Gravity = Gravity.CenterHorizontal + }; + functionSceneBodyView.AddChidren(noFunction); + var noScenceTip = new Button() { - Height = Application.GetMinRealAverage(200), - TextID = R.MyInternationalizationString.NoScene, + Y = noFunction.Bottom + Application.GetRealHeight(32), + Height = Application.GetRealHeight(200), + Width = Application.GetRealWidth(700), + Gravity = Gravity.CenterHorizontal, + Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, - Gravity = Gravity.CenterVertical + IsMoreLines = true }; functionSceneBodyView.AddChidren(noScenceTip); } @@ -1908,50 +1816,39 @@ public async void ShowAutotion() { var logicScrolView = new VerticalScrolViewLayout { }; - functionSceneBodyView.AddChidren(logicScrolView); - - //Shared.Common.ResponseEntity.Logic.LogicDviceList = await gateway.GetGwDeviceList(); - // gateway.DeviceList.Clear(); - ////// Shared.Common.ResponseEntity.Logic.LogicDviceList = LocalDevice.Current.GetDeviceByGatewayID(gateway.getGatewayBaseInfo.gwID); - //if (gateway.DeviceList.Count != 0) - //{ - // Shared.IO.FileUtils.WriteFileByBytes("ZigbeeDeviceListFilePath", System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(gateway.DeviceList))); - //} - //else - //{//涓存椂淇濆瓨璁惧鍒楄〃鏁版嵁缁欓�昏緫寮�鍙� - // var devicestring = System.Text.Encoding.UTF8.GetString(Shared.IO.FileUtils.ReadFile("ZigbeeDeviceListFilePath")); - // gateway.DeviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<CommonDevice>>(devicestring); - //} - + functionSceneAutoBodyView.AddChidren(logicScrolView); CommonPage.Loading.Start(); - //if (Common.Logic.LogicDviceList.Count != 0) - //{ - // foreach (var gateway in ZbGateway.GateWayList) - // { - // if (gateway.IsMainGateWay) - // { - // Common.Logic.LogicDviceList = LocalDevice.Current.GetDeviceByGatewayID(gateway.getGatewayBaseInfo.gwID); - // } - // } - //} - - - //CommonPage.Loading.Start(); if (Common.Logic.LogicList.Count == 0) { + //var Idlist = await Logic.Send.GetLogicId(); + //if (Idlist.Count != 0) + //{ + // foreach (var LogicId in Idlist) + // { + // var logic = await Logic.Send.GetLogic(LogicId); + // if (logic != null) + // { + // Common.Logic.LogicList.Add(logic); + // } + // } + //} var Idlist = await Logic.Send.GetLogicId(); if (Idlist.Count != 0) { + var listlogic = await Logic.Send.ReadList(Idlist.Count); foreach (var LogicId in Idlist) { - var logic = await Logic.Send.GetLogic(LogicId); - if (logic != null) + foreach (var logic in listlogic) { - Common.Logic.LogicList.Add(logic); + if (logic.LogicId == LogicId) + { + Common.Logic.LogicList.Add(logic); + } } } } } + //鑷姩鍖� Automationview(logicScrolView); CommonPage.Loading.Hide(); @@ -2008,7 +1905,8 @@ //閫昏緫鍏� logic.IsEnable = 0; } - Logic.Send.AddModifyLogic(logic); + Logic.Send.LogicControlSwitch(logic); + //Logic.Send.AddModifyLogic(logic); }; if (logic.IsEnable == 1) { @@ -2039,171 +1937,6 @@ UserView.HomePage.Instance.AddChidren(logicCommunalPage); UserView.HomePage.Instance.PageIndex += 1; logicCommunalPage.Show(() => { btnname.Text = logic.LogicName; Automationview(refresview); }); - - }; - - - var btndelay = new Button - { - Width = Application.GetRealWidth(150), - Height = Application.GetRealHeight(50), - X = Application.GetRealWidth(300), - Y = Application.GetRealHeight(25), - TextAlignment = TextAlignment.Center, - TextColor = 0xffcccccc, - }; - logicrowlayout.AddChidren(btndelay); - - ///寤舵椂鎺т欢 - var btndelaytext = new Button - { - BackgroundColor = 0xff676767, - Text = Language.StringByID(R.MyInternationalizationString.delayed), - }; - //logicrowlayout.AddRightView(btndelaytext); - - //if (logic.param.ContainsKey ("delay")) { - // var delayvalue = logic.param ["delay"]?.ToString (); - // if (delayvalue != "" && delayvalue != "0") { - // var l = int.Parse (delayvalue) / 10; - // btndelay.Text = l.ToString () + "s"; - // } - //} - - btndelaytext.MouseUpEventHandler += (sender, e) => - { - - Dialog window = new Dialog(); - window.Show(); - - var frameLayout = new FrameLayout - { - Width = Application.GetRealWidth(580), - Height = Application.GetRealHeight(300), - X = Application.GetRealWidth(30), - Y = Application.GetRealHeight(330), - BackgroundColor = 0xffffffff, - }; - window.AddChidren(frameLayout); - - var Modifyname = new Button - { - Width = Application.GetRealWidth(580), - Height = Application.GetRealHeight(80), - TextID = R.MyInternationalizationString.devicedelaytime, - //Text = "璇疯緭鍏ヨ澶囧欢鏃剁殑鏃堕棿(鍗曚綅/s)", - Y = Application.GetRealHeight(10), - TextSize = 16, - TextColor = ZigbeeColor.Current.MusicTipTextColor, - }; - frameLayout.AddChidren(Modifyname); - - var delaytext = new EditText - { - Width = Application.GetRealWidth(540), - Height = Application.GetRealHeight(80), - Y = Application.GetRealHeight(80), - X = Application.GetRealWidth(20), - Gravity = Gravity.CenterVertical, - // BackgroundColor = SkinStyle.Current.MusicTipBackgroundColor, - //TextColor = 0xff000000, - Radius = 1, - BorderWidth = 1, - //BorderColor = SkinStyle.Current.MusicEditBorderColor, - //TextColor = SkinStyle.Current.MusicTextColor, - }; - frameLayout.AddChidren(delaytext); - - var line = new Button - { - Height = Application.GetRealHeight(2), - Y = Application.GetRealHeight(218), - BackgroundColor = 0xff666666, - }; - frameLayout.AddChidren(line); - - var cancelrow = new RowLayout - { - Y = Application.GetRealHeight(220), - Height = Application.GetRealHeight(80), - Width = Application.GetRealWidth(289), - BackgroundColor = 0xffcccccc, - }; - frameLayout.AddChidren(cancelrow); - - var cancel = new Button - { - TextID = R.MyInternationalizationString.cancel, - //TextColor = 0xff000000, - TextSize = 18, - //TextColor = SkinStyle.Current.MusicTextColor, - }; - cancelrow.AddChidren(cancel); - cancel.MouseUpEventHandler += (sender1, e1) => - { - window.Close(); - }; - - var ther = new Button - { - Y = Application.GetRealHeight(220), - Height = Application.GetRealHeight(80), - Width = Application.GetRealWidth(2), - X = Application.GetRealHeight(289), - BackgroundColor = 0xff666666, - }; - frameLayout.AddChidren(ther); - - var confirmrow = new RowLayout - { - Y = Application.GetRealHeight(220), - X = Application.GetRealWidth(291), - Height = Application.GetRealHeight(80), - Width = Application.GetRealWidth(289), - BackgroundColor = 0xffcccccc, - }; - frameLayout.AddChidren(confirmrow); - - var confirm = new Button - { - TextID = R.MyInternationalizationString.confrim, - //TextColor = 0xff000000, - TextSize = 18, - // TextColor = SkinStyle.Current.MusicTextColor, - }; - confirmrow.AddChidren(confirm); - //if (logic.param.ContainsKey ("delay")) { - // var delayvalue = logic.param ["delay"]?.ToString (); - // if (delayvalue != "" && delayvalue != "0") { - // var l = int.Parse (delayvalue) / 10; - // delaytext.Text = l.ToString () + "s"; - // } - //} - - confirm.MouseUpEventHandler += (sender1, e1) => - { - var isNumber = delaytext.Text.Trim(); - if (!int.TryParse(isNumber, out int number) || isNumber == "") - { - new Alert(Language.StringByID(R.MyInternationalizationString.Tip), - Language.StringByID(R.MyInternationalizationString.inputnumber), - Language.StringByID(R.MyInternationalizationString.Close)).Show(); - return; - } - - var vel = int.Parse(isNumber); - //if (logic.param.ContainsKey ("delay")) { - // logic.param.Remove ("delay"); - // logic.param.Add ("delay", vel * 10); - //} else { - // logic.param.Add ("delay", vel * 10); - //} - //btndelay.Text = isNumber + "s"; - window.Close(); - Automationview(refresview); - - - }; }; -- Gitblit v1.8.0