| | |
| | | /// 功能和场景bodyView |
| | | /// </summary> |
| | | private FrameLayout functionSceneBodyView; |
| | | /// <summary> |
| | | /// The height of the top frame layout -- 500 |
| | | /// </summary> |
| | | private static readonly int topFrameLayout_Height = 500; |
| | | /// <summary> |
| | | /// 1524 |
| | | /// </summary> |
| | | private static readonly int midView_Height = 1524; |
| | | |
| | | /// <summary> |
| | | /// The height of the room page view. -- 550 |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | private readonly int sleepSpan = 300; |
| | | |
| | | |
| | | private FrameLayout itemView; |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 接口____________________________ |
| | |
| | | for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++)
|
| | | {
|
| | | var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout;
|
| | | var rowLayout = rowFL.GetChildren(0) as RowLayout;
|
| | | var deviceUI = rowLayout.Tag as DeviceUI;
|
| | | if (deviceUI.CommonDevice == null || rowLayout.ChildrenCount == 0)
|
| | | var deviceUI = rowFL.Tag as DeviceUI;
|
| | | if (deviceUI.CommonDevice == null || rowFL.ChildrenCount == 0)
|
| | | {
|
| | | //设备为空或者控件为空
|
| | | continue;
|
| | |
| | | //判断是否为当前设备
|
| | | continue;
|
| | | }
|
| | | var frameLayout = rowLayout.GetChildren(0) as FrameLayout;
|
| | | var frameLayout = rowFL.GetChildren(0) as FrameLayout;
|
| | | switch (deviceUI.CommonDevice.Type)
|
| | | {
|
| | | case DeviceType.OnOffOutput:
|
| | |
| | | {
|
| | | var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
|
| | | onOffOutputLight.DeviceStatusReport = (common as ZigBee.Device.ToggleLight).DeviceStatusReport;
|
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++)
|
| | | {
|
| | | var tempView = frameLayout.GetChildren(j);
|
| | | if (tempView.Tag == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
|
| | | {
|
| | | //记录、更新状态 |
| | | if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | continue; |
| | | } |
| | | onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (tempView as Button).IsSelected = onOffOutputLight.OnOffStatus == 1;
|
| | | //记录回复时间 |
| | | onOffOutputLight.LastDateTime = DateTime.Now; |
| | | }
|
| | | }
|
| | | } |
| | | //当CluterID=3,就证明该设备在线,直接标记 |
| | | if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var onOffOutputLight = deviceUI.CommonDevice as ToggleLight; |
| | | onOffOutputLight.IsOnline = 1; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | |
|
| | | //记录、更新状态 |
| | | if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = onOffOutputLight.IsOnline == 1; |
| | | //记录回复时间 |
| | | onOffOutputLight.LastDateTime = DateTime.Now; |
| | | } |
| | | continue; |
| | | } |
| | | onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1;
|
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = CommonFormResouce.GetSwitchStatu(onOffOutputLight.OnOffStatus == 1); |
| | | //记录回复时间 |
| | | onOffOutputLight.LastDateTime = DateTime.Now; |
| | | |
| | | } |
| | | break;
|
| | |
| | | case DeviceType.DimmableLight: |
| | | //调光灯功能 |
| | | //开关功能 |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6) |
| | | if ((common as DimmableLight).DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; |
| | | dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | var dimmableLight = deviceUI.CommonDevice as DimmableLight; |
| | | dimmableLight.DeviceStatusReport = (common as DimmableLight).DeviceStatusReport; |
| | | //记录、更新状态 |
| | | if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) |
| | | { |
| | | //记录、更新状态 |
| | | if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | return; |
| | | } |
| | | dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (tempView as Button).IsSelected = dimmableLight.OnOffStatus == 1; |
| | | //记录回复时间 |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | } |
| | | return; |
| | | } |
| | | dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1; |
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = CommonFormResouce.GetSwitchStatu(dimmableLight.OnOffStatus == 1); |
| | | //记录回复时间 |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | } |
| | | |
| | | //亮度 |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 8) |
| | | { |
| | |
| | | break; |
| | | } |
| | | } |
| | | //当CluterID=3,就证明该设备在线,直接标记 |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var dimmableLight = deviceUI.CommonDevice as DimmableLight; |
| | | dimmableLight.IsOnline = 1; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = dimmableLight.IsOnline == 1; |
| | | //记录回复时间 |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | } |
| | | } |
| | | |
| | | } |
| | | break; |
| | | |
| | | }
|
| | |
| | | }
|
| | | });
|
| | | }
|
| | | //设备在线状态上报 |
| | | else if (typeTag == "OnlineStatusChange")
|
| | | {
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | try
|
| | | {
|
| | | for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++)
|
| | | {
|
| | | var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout;
|
| | | var rowLayout = rowFL.GetChildren(0) as RowLayout;
|
| | | var deviceUI = rowLayout.Tag as DeviceUI;
|
| | | if (deviceUI.CommonDevice == null || rowLayout.ChildrenCount == 0)
|
| | | {
|
| | | //设备为空或者控件为空
|
| | | continue;
|
| | | }
|
| | | if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint)
|
| | | {
|
| | | //判断是否为当前设备
|
| | | continue;
|
| | | }
|
| | | var frameLayout = rowLayout.GetChildren(0) as FrameLayout;
|
| | | switch (deviceUI.CommonDevice.Type)
|
| | | {
|
| | | case DeviceType.OnOffOutput:
|
| | | var onOffOutputLight = deviceUI.CommonDevice as ToggleLight;
|
| | | onOffOutputLight.IsOnline = (common as ToggleLight).IsOnline;
|
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++)
|
| | | {
|
| | | var tempView = frameLayout.GetChildren(j);
|
| | | if (tempView.Tag == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | if (tempView.Tag.ToString() == deviceStatus_Online)
|
| | | {
|
| | | (tempView as Button).IsSelected = onOffOutputLight.IsOnline == 1;
|
| | | }
|
| | | }
|
| | | //记录回复时间
|
| | | onOffOutputLight.LastDateTime = DateTime.Now;
|
| | | break;
|
| | | case DeviceType.AirSwitch:
|
| | | var airSwitch = deviceUI.CommonDevice as AirSwitch;
|
| | | airSwitch.IsOnline = (common as AirSwitch).IsOnline;
|
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++)
|
| | | {
|
| | | var tempView = frameLayout.GetChildren(j);
|
| | | if (tempView.Tag == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | if (tempView.Tag.ToString() == deviceStatus_Online)
|
| | | {
|
| | | (tempView as Button).IsSelected = airSwitch.IsOnline == 1;
|
| | | }
|
| | | }
|
| | | //记录回复时间
|
| | | airSwitch.LastDateTime = DateTime.Now;
|
| | | break;
|
| | | case DeviceType.WindowCoveringDevice:
|
| | | var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
|
| | | rollershade.IsOnline = (common as Rollershade).IsOnline;
|
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++)
|
| | | {
|
| | | var tempView = frameLayout.GetChildren(j);
|
| | | if (tempView.Tag == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | if (tempView.Tag.ToString() == deviceStatus_Online)
|
| | | {
|
| | | (tempView as Button).IsSelected = rollershade.IsOnline == 1;
|
| | | }
|
| | | }
|
| | | //记录回复时间
|
| | | rollershade.LastDateTime = DateTime.Now;
|
| | | break;
|
| | | case DeviceType.Thermostat: |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | ac.IsOnline = (common as ZigBee.Device.AC).IsOnline; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = ac.IsOnline == 1; |
| | | } |
| | | } |
| | | //记录回复时间 |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | case DeviceType.DimmableLight: |
| | | var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; |
| | | dimmableLight.IsOnline = (common as ZigBee.Device.DimmableLight).IsOnline; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = dimmableLight.IsOnline == 1; |
| | | } |
| | | } |
| | | //记录回复时间 |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | break; |
| | | }
|
| | | }
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | System.Console.WriteLine($"主页功能刷新-Error:{ex.Message}");
|
| | | }
|
| | | });
|
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// Changeds the IL ogic status. |
| | |
| | | //消息 |
| | | messageBtn.MouseUpEventHandler += (send, e) => |
| | | { |
| | | |
| | | var roomList = new Shared.Phone.Device.Room.RoomManagement(); |
| | | HomePage.Instance.AddChidren(roomList); |
| | | HomePage.Instance.PageIndex += 1; |
| | | roomList.Show(); |
| | | }; |
| | | |
| | | #endregion |
| | |
| | | // Show(); |
| | | //}; |
| | | |
| | | var editRoom = new Device.Room.AddRoom(); |
| | | var editRoom = new Device.Room.EditRoom(); |
| | | HomePage.Instance.AddChidren(editRoom); |
| | | HomePage.Instance.PageIndex += 1; |
| | | editRoom.Show(); |
| | | editRoom.Show(room); |
| | | editRoom.action += () => |
| | | { |
| | | Show(); |
| | |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void GoToAddGateWay(object sender, MouseEventArgs mouseEventArgs) |
| | | { |
| | | UserCenter.GatewayAdd.NewGateWaySelectForm selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWaySelectForm { }; |
| | | var selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWaySelectForm { }; |
| | | selectNewGateWayForm.AddForm(selectNewGateWayForm); |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | private void ShowNoFunctionTip() |
| | | { |
| | | var noFunction = new Button |
| | | { |
| | | Y = Application.GetRealHeight(69), |
| | | Width = Application.GetMinRealAverage(683), |
| | | Height = Application.GetMinRealAverage(392), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | UnSelectedImagePath = "Item/NoFunction.png" |
| | | }; |
| | | functionSceneBodyView.AddChidren(noFunction); |
| | | |
| | | var noFunctionTip = new Button() |
| | | { |
| | | Y=noFunction.Bottom, |
| | | Height = Application.GetRealHeight(200), |
| | | TextID = R.MyInternationalizationString.NoFunction, |
| | | Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"), |
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Gravity = Gravity.Center |
| | | IsMoreLines=true |
| | | }; |
| | | functionSceneBodyView.AddChidren(noFunctionTip); |
| | | } |
| | |
| | | else |
| | | { |
| | | deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { }; |
| | | |
| | | functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout); |
| | | foreach (var device in deviceList) |
| | | for(int i=0;i<deviceList.Count;i++) |
| | | { |
| | | int t = i % 2; |
| | | int tt = i / 2; |
| | | int xx = 43 + i % 2 * (20 + 487); |
| | | int yy = 14; |
| | | var device = deviceList[i]; |
| | | if (device == null || device.CommonDevice == null) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (i % 2 == 0) |
| | | { |
| | | itemView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(14 + 348), |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(itemView); |
| | | } |
| | | |
| | | |
| | | //删除设备 |
| | | EventHandler<MouseEventArgs> delEvent = (sender, e) => |
| | | { |
| | |
| | | }; |
| | | }; |
| | | //收藏 |
| | | //EventHandler<MouseEventArgs> collectionEvent = (sender, e) => |
| | | //{ |
| | | // if ((sender as Button).IsSelected) |
| | | // { |
| | | // Room.Lists[0].DeleteDevice(device.FilePath); |
| | | // (sender as Button).IsSelected = false; |
| | | // if (Room.CurrentRoom == Room.Lists[0]) |
| | | // { |
| | | // DeviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // Room.Lists[0].AddDevice(device.FilePath); |
| | | // (sender as Button).IsSelected = true; |
| | | // } |
| | | // //RefreshBodyView(); |
| | | //}; |
| | | EventHandler<MouseEventArgs> collectionEvent = (sender, e) => |
| | | { |
| | | if (Room.CurrentRoom == Room.Lists[0]) |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | Room.Lists[0].DeleteDevice(device.FileName); |
| | | deviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); |
| | | Shared.Common.Room.GetLoveRoom().DeleteDevice(device.FileName); |
| | | (sender as Button).IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | Shared.Common.Room.GetLoveRoom().AddDevice(device.FileName); |
| | | (sender as Button).IsSelected = true; |
| | | } |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | RefreshBodyView(); |
| | | } |
| | | }; |
| | | |
| | | //////判断设备是否支持的属性 如开关等控制 |
| | | if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) |
| | | { |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText("开"); |
| | | lightView.SetDeviceName("lightee"); |
| | | //lightView.SetStatu(true); |
| | | lightView.IsSelected = true; |
| | | lightView.SetCollect(true); |
| | | |
| | | continue; |
| | | //窗帘 卷帘 |
| | | var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice; |
| | | //不上非远程 |
| | |
| | | { |
| | | //开关灯 |
| | | var light = device.CommonDevice as ToggleLight; |
| | | |
| | | //补上非远程 |
| | | if (light.Gateway == null)
|
| | | {
|
| | |
| | | } |
| | | } |
| | | |
| | | var lightView = new FunctionMainView(xx,yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText(CommonFormResouce.GetSwitchStatu(light.OnOffStatus==1)); |
| | | lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); |
| | | lightView.IsSelected = light.OnOffStatus==1; |
| | | lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom,device.FileName)); |
| | | |
| | | var deviceFL = new FrameLayout |
| | | var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName); |
| | | if (dev == null) |
| | | { |
| | | Height = Application.GetRealHeight(deviceFL_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(deviceFL); |
| | | var deviceRowLayout = new RowLayout |
| | | lightView.CollectButton.IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | Y = Application.GetRealHeight(25), |
| | | Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius, |
| | | Tag = device |
| | | }; |
| | | deviceFL.AddChidren(deviceRowLayout); |
| | | lightView.CollectButton.IsSelected = true; |
| | | } |
| | | |
| | | var deviceItemFL = new FrameLayout() |
| | | lightView.SwitchButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | deviceRowLayout.AddChidren(deviceItemFL); |
| | | var deviceIMG = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Y = Application.GetRealHeight(30), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = device.IconPath, |
| | | SelectedImagePath = device.OnlineIconPath, |
| | | IsSelected = light.IsOnline == 1, |
| | | Tag = deviceStatus_Online |
| | | }; |
| | | deviceItemFL.AddChidren(deviceIMG); |
| | | var deviceName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10), |
| | | Y = deviceIMG.Bottom, |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealHeight(80), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = device.CommonDevice.DeviceEpointName, |
| | | TextSize = 10, |
| | | IsMoreLines = true |
| | | }; |
| | | deviceItemFL.AddChidren(deviceName); |
| | | |
| | | var collectionBtn = new Button() |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(150), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(80), |
| | | UnSelectedImagePath = "Item/Collection.png", |
| | | SelectedImagePath = "Item/CollectionSelected.png", |
| | | Tag = device |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var switchBtnBG = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(250), |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtnBG); |
| | | |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | | //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), |
| | | Width = Application.GetMinRealAverage(183), |
| | | Height = Application.GetMinRealAverage(123), |
| | | UnSelectedImagePath = "Item/Switch.png", |
| | | SelectedImagePath = "Item/SwitchSelected.png", |
| | | IsSelected = light.OnOffStatus == 1, |
| | | Tag = deviceStatus_OnOffStatus, |
| | | //Visible=false |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtn); |
| | | switchBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | switchBtn.IsSelected = !switchBtn.IsSelected; |
| | | if (switchBtn.IsSelected == true) |
| | | (sender as Button).IsSelected = !(sender as Button).IsSelected; |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | |
| | | |
| | | light.SwitchControl(1); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true)); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = true; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | |
| | | |
| | | light.SwitchControl(0); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false)); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = false; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | |
| | | } |
| | | }; |
| | | |
| | | |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = device, |
| | | IsMoreLines = true |
| | | }; |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; |
| | | deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; |
| | | deleteBtn.MouseUpEventHandler += collectionEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | else if (Room.CurrentRoom.IsSharedRoom) |
| | | { |
| | | //不处理 |
| | | } |
| | | else |
| | | { |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> lightHandler = (sender, e) => |
| | | lightView.CardBG.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var lightControl = new Phone.Device.Light.LightControl(); |
| | | UserView.HomePage.Instance.AddChidren(lightControl); |
| | |
| | | lightControl.action = RefreshBodyView; |
| | | lightControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | //deviceItemFL.MouseLongEventHandler += lightHandler; |
| | | deviceItemFL.MouseUpEventHandler += lightHandler; |
| | | deviceName.MouseUpEventHandler += lightHandler; |
| | | deviceIMG.MouseUpEventHandler += lightHandler; |
| | | |
| | | //collectionBtn.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // if (collectionBtn.IsSelected) |
| | | // { |
| | | // Room.Lists[0].DeleteDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = false; |
| | | // if(Room.CurrentRoom==Room.Lists[0]) |
| | | // { |
| | | // RefreshBodyView(); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // Room.Lists[0].AddDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = true; |
| | | // } |
| | | // //RefreshBodyView(); |
| | | //}; |
| | | collectionBtn.MouseUpEventHandler += collectionEvent; |
| | | |
| | | //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath); |
| | | //if (dev == null) |
| | | //{ |
| | | // collectionBtn.IsSelected = false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // collectionBtn.IsSelected = true; |
| | | //} |
| | | lightView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) |
| | | { |
| | | |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText("开"); |
| | | lightView.SetDeviceName("airSwitch"); |
| | | //lightView.SetStatu(true); |
| | | lightView.IsSelected = true; |
| | | lightView.SetCollect(true); |
| | | |
| | | continue; |
| | | |
| | | //空气开关 |
| | | var airSwitch = device.CommonDevice as AirSwitch; |
| | | |
| | |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) |
| | | { |
| | | |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText("开"); |
| | | lightView.SetDeviceName("空调"); |
| | | //lightView.SetStatu(true); |
| | | lightView.IsSelected = true; |
| | | lightView.SetCollect(true); |
| | | |
| | | continue; |
| | | //恒温器-AC-空调 |
| | | var ac = device.CommonDevice as AC; |
| | | |
| | |
| | | { |
| | | //调光灯 |
| | | var dimmableLight = device.CommonDevice as DimmableLight; |
| | | |
| | | //补上非远程 |
| | | if (dimmableLight.Gateway == null) |
| | | { |
| | |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | dimmableLight.ReadLevel(); |
| | | }); |
| | | } |
| | | else |
| | |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | dimmableLight.ReadLevel(); |
| | | } |
| | | } |
| | | |
| | | var deviceFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(deviceFL_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(deviceFL); |
| | | var deviceRowLayout = new RowLayout |
| | | { |
| | | Y = Application.GetRealHeight(25), |
| | | Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius, |
| | | Tag = device |
| | | }; |
| | | deviceFL.AddChidren(deviceRowLayout); |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText(CommonFormResouce.GetSwitchStatu(dimmableLight.OnOffStatus == 1)); |
| | | lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); |
| | | lightView.IsSelected = dimmableLight.OnOffStatus == 1; |
| | | lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName)); |
| | | |
| | | var deviceItemFL = new FrameLayout() |
| | | var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName); |
| | | if (dev == null) |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | deviceRowLayout.AddChidren(deviceItemFL); |
| | | var deviceIMG = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Y = Application.GetRealHeight(30), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = device.IconPath, |
| | | SelectedImagePath = device.OnlineIconPath, |
| | | IsSelected = dimmableLight.IsOnline == 1, |
| | | Tag = deviceStatus_Online |
| | | }; |
| | | deviceItemFL.AddChidren(deviceIMG); |
| | | var deviceName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10), |
| | | Y = deviceIMG.Bottom, |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealHeight(80), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = device.CommonDevice.DeviceEpointName, |
| | | TextSize = 10, |
| | | IsMoreLines = true |
| | | }; |
| | | deviceItemFL.AddChidren(deviceName); |
| | | |
| | | var levelSeekBar = new HorizontalSeekBar() |
| | | { |
| | | X = deviceIMG.Right + Application.GetRealWidth(50), |
| | | Width = Application.GetRealWidth(500), |
| | | Height = Application.GetRealHeight(80), |
| | | Gravity = Gravity.CenterVertical, |
| | | BackgroundColor = ZigbeeColor.Current.GXCSliderUnSelectedColor, |
| | | ThumbColor = ZigbeeColor.Current.GXCButtonBlueColor, |
| | | BorderColor = ZigbeeColor.Current.GXCButtonBlueColor, |
| | | ProgressColor = ZigbeeColor.Current.GXCButtonBlueColor, |
| | | Max = 254, |
| | | Tag = "LevelSeekBar", |
| | | Progress = dimmableLight.Level, |
| | | SleepTime = sleepSpan |
| | | }; |
| | | deviceItemFL.AddChidren(levelSeekBar); |
| | | levelSeekBar.ProgressChanged += (send2, e2) => |
| | | { |
| | | dimmableLight.SetLevel(levelSeekBar.Progress); |
| | | }; |
| | | |
| | | var collectionBtn = new Button() |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(150), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(80), |
| | | UnSelectedImagePath = "Item/Collection.png", |
| | | SelectedImagePath = "Item/CollectionSelected.png", |
| | | Tag = device |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var switchBtnBG = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(250), |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtnBG); |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | | //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), |
| | | Width = Application.GetMinRealAverage(183), |
| | | Height = Application.GetMinRealAverage(123), |
| | | UnSelectedImagePath = "Item/Switch.png", |
| | | SelectedImagePath = "Item/SwitchSelected.png", |
| | | IsSelected = dimmableLight.OnOffStatus == 1, |
| | | Tag = deviceStatus_OnOffStatus, |
| | | //Visible=false |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtn); |
| | | switchBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | switchBtn.IsSelected = !switchBtn.IsSelected; |
| | | if (switchBtn.IsSelected == true) |
| | | { |
| | | //zbGateway = device.CommonDevice.Gateway; |
| | | //sendedControlCommand = false; |
| | | //zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | //AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | dimmableLight.SwitchControl(1); |
| | | |
| | | //控制延时回调 |
| | | //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | //{ |
| | | //if (Parent == null) |
| | | //{ |
| | | // return; |
| | | //} |
| | | //RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | //if (sendedControlCommand == false) |
| | | //{ |
| | | // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | //} |
| | | //}); |
| | | } |
| | | else |
| | | { |
| | | //zbGateway = device.CommonDevice.Gateway; |
| | | //sendedControlCommand = false; |
| | | //zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | //AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | dimmableLight.SwitchControl(0); |
| | | |
| | | //控制延时回调 |
| | | //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | //{ |
| | | // if (Parent == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | // if (sendedControlCommand == false) |
| | | // { |
| | | // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | // } |
| | | //}); |
| | | } |
| | | }; |
| | | |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = device, |
| | | IsMoreLines = true |
| | | }; |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; |
| | | deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; |
| | | deleteBtn.MouseUpEventHandler += collectionEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | else if (Room.CurrentRoom.IsSharedRoom) |
| | | { |
| | | //不处理 |
| | | lightView.CollectButton.IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | lightView.CollectButton.IsSelected = true; |
| | | } |
| | | |
| | | EventHandler<MouseEventArgs> dimmableLightHandler = (sender, e) => |
| | | lightView.SwitchButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | (sender as Button).IsSelected = !(sender as Button).IsSelected; |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | dimmableLight.SwitchControl(1); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true)); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = true; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | dimmableLight.SwitchControl(0); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false)); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = false; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | lightView.CardBG.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); |
| | | UserView.HomePage.Instance.AddChidren(dimmableLightControl); |
| | |
| | | dimmableLightControl.action = RefreshBodyView; |
| | | dimmableLightControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | //deviceItemFL.MouseLongEventHandler += dimmableLightHandler; |
| | | deviceItemFL.MouseUpEventHandler += dimmableLightHandler; |
| | | deviceName.MouseUpEventHandler += dimmableLightHandler; |
| | | deviceIMG.MouseUpEventHandler += dimmableLightHandler; |
| | | |
| | | //collectionBtn.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // if (collectionBtn.IsSelected) |
| | | // { |
| | | // Room.Lists[0].DeleteDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = false; |
| | | // if(Room.CurrentRoom==Room.Lists[0]) |
| | | // { |
| | | // RefreshBodyView(); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // Room.Lists[0].AddDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = true; |
| | | // } |
| | | // //RefreshBodyView(); |
| | | //}; |
| | | collectionBtn.MouseUpEventHandler += collectionEvent; |
| | | |
| | | //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath); |
| | | //if (dev == null) |
| | | //{ |
| | | // collectionBtn.IsSelected = false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // collectionBtn.IsSelected = true; |
| | | //} |
| | | lightView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | } |
| | | else if (device.CommonDevice.Type == DeviceType.OnOffSwitch) |
| | | { |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText("开"); |
| | | lightView.SetDeviceName("按键"); |
| | | //lightView.SetStatu(true); |
| | | lightView.IsSelected = true; |
| | | lightView.SetCollect(true); |
| | | |
| | | continue; |
| | | //按键 |
| | | var panel = (Panel)device.CommonDevice; |
| | | |
| | |
| | | /// </summary> |
| | | private void ShowNoSceneTip() |
| | | { |
| | | var noScene = new Button |
| | | { |
| | | Y = Application.GetRealHeight(69), |
| | | Width = Application.GetMinRealAverage(683), |
| | | Height = Application.GetMinRealAverage(392), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | UnSelectedImagePath = "Item/NoFunction.png" |
| | | }; |
| | | functionSceneBodyView.AddChidren(noScene); |
| | | var noScenceTip = new Button() |
| | | { |
| | | Y=noScene.Bottom, |
| | | Height = Application.GetRealHeight(200), |
| | | TextID = R.MyInternationalizationString.NoScene, |
| | | Text =Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"), |
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Gravity = Gravity.Center, |
| | | IsMoreLines=true |
| | | }; |
| | | functionSceneBodyView.AddChidren(noScenceTip); |
| | | } |
| | |
| | | { |
| | | var sceneScrolView = new VerticalScrolViewLayout { }; |
| | | functionSceneBodyView.AddChidren(sceneScrolView); |
| | | foreach (var scene in sceneList) |
| | | for(int i=0;i<sceneList.Count;i++) |
| | | { |
| | | var scene = sceneList[i]; |
| | | int xx = 43 + i % 2 * (20 + 487); |
| | | int yy = 14; |
| | | if (scene == null) |
| | | { |
| | | continue; |
| | | } |
| | | var sceneFL = new FrameLayout() |
| | | |
| | | if (i % 2 == 0) |
| | | { |
| | | Height = Application.GetRealHeight(400), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = scene |
| | | }; |
| | | sceneScrolView.AddChidren(sceneFL); |
| | | var sceneRowLayout = new RowLayout() |
| | | { |
| | | Y = Application.GetRealHeight(30), |
| | | Height = Application.GetRealHeight(400 - 10 - 30), |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | 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 = scene.IconPath, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | sceneItemFL.AddChidren(sceneImg); |
| | | var hardBlackBG = new Button() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCBlack70Color, |
| | | SelectedBackgroundColor = ZigbeeColor.Current.GXCBlack80Color, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | sceneItemFL.AddChidren(hardBlackBG); |
| | | var sceneNameBtn = new Button() |
| | | { |
| | | Text = scene.Name, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextSize = 20 |
| | | }; |
| | | sceneItemFL.AddChidren(sceneNameBtn); |
| | | //编辑 |
| | | var editBtn = new Device.CommonForm.RowLayoutEditButton |
| | | { |
| | | TextID = R.MyInternationalizationString.Edit, |
| | | Tag = scene |
| | | }; |
| | | //删除 |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = scene |
| | | }; |
| | | if (!Room.CurrentRoom.IsSharedRoom) |
| | | { |
| | | sceneRowLayout.AddRightView(editBtn); |
| | | sceneRowLayout.AddRightView(deleteBtn); |
| | | itemView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(14 + 348), |
| | | Tag = scene |
| | | }; |
| | | sceneScrolView.AddChidren(itemView); |
| | | } |
| | | |
| | | EventHandler<MouseEventArgs> sceneDownHandler = (sender, e) => |
| | | var sceneView = new SceneMainView(xx, yy); |
| | | itemView.AddChidren(sceneView); |
| | | sceneView.Init(); |
| | | sceneView.SetSceneNameText(scene.Name); |
| | | sceneView.SetIcon($"SceneIcon/{i}.png"); |
| | | sceneView.SetCollect(scene.IsCollected); |
| | | |
| | | if (scene.SceneDelayTime == 0) |
| | | { |
| | | hardBlackBG.IsSelected = true; |
| | | sceneView.SetTimeImage(); |
| | | } |
| | | else |
| | | { |
| | | sceneView.SetTimeText(scene.SceneDelayTime.ToString()); |
| | | } |
| | | |
| | | sceneView.TimeButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var timeSelect = new SelectTime(); |
| | | CommonPage.Instance.AddChidren(timeSelect); |
| | | timeSelect.TempTime = scene.DelayTime; |
| | | timeSelect.Init(); |
| | | timeSelect.TimeAction = (t) => |
| | | { |
| | | scene.SceneDelayTime = t; |
| | | if(t>0) |
| | | { |
| | | sceneView.SetTimeText(CommonFormResouce.GetTimeString(scene.SceneDelayTime)); |
| | | } |
| | | else |
| | | { |
| | | sceneView.SetTimeImage(); |
| | | } |
| | | }; |
| | | |
| | | }; |
| | | sceneNameBtn.MouseDownEventHandler += sceneDownHandler; |
| | | hardBlackBG.MouseDownEventHandler += sceneDownHandler; |
| | | |
| | | //调用场景 |
| | | EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => |
| | | { |
| | | hardBlackBG.IsSelected = false; |
| | | //1成功 0失败 |
| | | //后面补上相关提示 |
| | | // Error参数含义 |
| | |
| | | //<para>3:操作设备/组/场景不存在</para> |
| | | //<para>4:其他错误</para> |
| | | //<para>5:数据传输错误(在某次客户端向网关发送数据的过程中,网关在合理时间范围内接收客户端数据不完整导致该错误发生。如客户端向网关一次发送100个字节的数据,但网关等待接收了一秒只接收了80个字节。发生该错误,网关将主动关闭客户端连接)</para> |
| | | var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, 0); |
| | | var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); |
| | | if (sceneOpenAllData == null || sceneOpenAllData.sceneOpenData == null) |
| | | { |
| | | return; |
| | |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail); |
| | | } |
| | | }; |
| | | sceneNameBtn.MouseUpEventHandler += sceneUpHandler; |
| | | hardBlackBG.MouseUpEventHandler += sceneUpHandler; |
| | | |
| | | //编辑场景 |
| | | EventHandler<MouseEventArgs> editEvent = (sender, e) => |
| | | //收藏 |
| | | EventHandler<MouseEventArgs> collectionEvent = (sender, e) => |
| | | { |
| | | SceneRoomUI.EditScene(scene, Room.CurrentRoom); |
| | | }; |
| | | editBtn.MouseUpEventHandler += editEvent; |
| | | |
| | | //删除场景 |
| | | 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) => |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | if (e1) |
| | | { |
| | | //0 移除失败 1 移除成功 2 没有该场景 |
| | | var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); |
| | | if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) |
| | | { |
| | | return; |
| | | } |
| | | if (removeSceneAllData.removeSceneData.Result == 1) |
| | | { |
| | | //1成功 |
| | | Room.CurrentRoom.RemoveScene(scene); |
| | | //RefreshBodyView(); |
| | | sceneScrolView.RemoveViewByTag((sender as Button).Tag); |
| | | } |
| | | else if (removeSceneAllData.removeSceneData.Result == 0) |
| | | { |
| | | //0 移除失败 |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.DeleteSceneFail); |
| | | } |
| | | else if (removeSceneAllData.removeSceneData.Result == 2) |
| | | { |
| | | //2 没有该场景 |
| | | Room.CurrentRoom.RemoveScene(scene); |
| | | //RefreshBodyView(); |
| | | sceneScrolView.RemoveViewByTag((sender as Button).Tag); |
| | | } |
| | | } |
| | | }; |
| | | scene.Collect(false); |
| | | (sender as Button).IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | scene.Collect(true); |
| | | (sender as Button).IsSelected = true; |
| | | } |
| | | scene.Save(); |
| | | //if (Room.CurrentRoom.IsLove) |
| | | //{ |
| | | // RefreshBodyView(); |
| | | //} |
| | | |
| | | }; |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | |
| | | sceneView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | sceneView.MouseUpEventHandler += sceneUpHandler; |
| | | sceneView.SceneIcon.MouseUpEventHandler+= sceneUpHandler; |
| | | sceneView.SceneNameButton.MouseUpEventHandler += sceneUpHandler; |
| | | |
| | | } |
| | | } |
| | | |