From 4f92fe4e4397b05bc97d17e8ad02818a689acdb8 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 10 十月 2019 13:13:33 +0800 Subject: [PATCH] 个人中心添加楼层和创建房间,实装二级验证 --- ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs | 1021 +++++++++++++++++--------------------------------------- 1 files changed, 311 insertions(+), 710 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs index 8004460..8c5ef3f 100755 --- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs +++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs @@ -30,14 +30,7 @@ /// 鍔熻兘鍜屽満鏅痓odyView /// </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> @@ -78,6 +71,9 @@ /// </summary> private readonly int sleepSpan = 300; + + private FrameLayout itemView; + #endregion #region 鈼� 鎺ュ彛____________________________ @@ -115,9 +111,8 @@ 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; @@ -128,7 +123,7 @@ //鍒ゆ柇鏄惁涓哄綋鍓嶈澶� continue; } - var frameLayout = rowLayout.GetChildren(0) as FrameLayout; + var frameLayout = rowFL.GetChildren(0) as FrameLayout; switch (deviceUI.CommonDevice.Type) { case DeviceType.OnOffOutput: @@ -137,46 +132,17 @@ { 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; - } - } - } - //褰揅luterID=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; @@ -356,31 +322,22 @@ 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) { @@ -412,27 +369,6 @@ break; } } - //褰揅luterID=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; } @@ -444,130 +380,7 @@ } }); } - //璁惧鍦ㄧ嚎鐘舵�佷笂鎶� - 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. @@ -845,7 +658,10 @@ //娑堟伅 messageBtn.MouseUpEventHandler += (send, e) => { - + var roomList = new Shared.Phone.Device.Room.RoomManagement(); + HomePage.Instance.AddChidren(roomList); + HomePage.Instance.PageIndex += 1; + roomList.Show(); }; #endregion @@ -914,10 +730,10 @@ // 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(); @@ -1159,7 +975,7 @@ /// <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); } @@ -1172,13 +988,23 @@ /// </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); } @@ -1202,13 +1028,31 @@ 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) => { @@ -1225,36 +1069,38 @@ }; }; //鏀惰棌 - //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; //涓嶄笂闈炶繙绋� @@ -1603,6 +1449,7 @@ { //寮�鍏崇伅 var light = device.CommonDevice as ToggleLight; + //琛ヤ笂闈炶繙绋� if (light.Gateway == null) { @@ -1626,96 +1473,29 @@ } } + 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; @@ -1724,8 +1504,11 @@ 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) { @@ -1747,8 +1530,11 @@ 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) { @@ -1763,31 +1549,7 @@ } }; - - 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); @@ -1795,44 +1557,25 @@ 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; @@ -2063,6 +1806,18 @@ } 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; @@ -2417,7 +2172,6 @@ { //璋冨厜鐏� var dimmableLight = device.CommonDevice as DimmableLight; - //琛ヤ笂闈炶繙绋� if (dimmableLight.Gateway == null) { @@ -2430,7 +2184,6 @@ { dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); dimmableLight.ReadOnOffStatus(); - dimmableLight.ReadLevel(); }); } else @@ -2440,189 +2193,86 @@ { 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); @@ -2631,43 +2281,22 @@ 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; @@ -2686,13 +2315,22 @@ /// </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); } @@ -2716,81 +2354,66 @@ { 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鍙傛暟鍚箟 @@ -2799,7 +2422,7 @@ //<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; @@ -2813,54 +2436,32 @@ 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; + } } -- Gitblit v1.8.0