gxc
2020-01-08 587c36e27131f2d028fcabc13b296a8de7470034
ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -1,13 +1,13 @@
using System;
using System.Collections.Generic;
using System.Timers;
using Shared.Common;
using Shared.Phone.Device.AC;
using ZigBee.Device;
using Shared.Phone.Device.CommonForm;
using Shared.Phone.UserCenter.DoorLock;
using System.Timers;
using Shared.Phone.Device.DeviceLogic;
using Shared.Phone.UserCenter;
using Shared.Phone.UserCenter.DoorLock;
using ZigBee.Device;
namespace Shared.Phone.UserView
{
@@ -637,7 +637,7 @@
                if (roomPageView.GetChildren(roomPageView.PageIndex) != null)
                {
                    (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(false);
                }
                var functionSceneView = new FrameLayout()
@@ -733,7 +733,7 @@
                    //切换当前房间
                    Room.CurrentRoom = rList[roomPageView.PageIndex];
                    RefreshBodyView();
                };
            }
            else
@@ -919,6 +919,7 @@
        /// </summary>
        private void ShowFunction()
        {
            functionSceneBodyView.RemoveAll();
            //选择功能--直接从房间的devicelist中获取
            var deviceList = Room.CurrentRoom.DeviceUIList;
            if (deviceList == null)
@@ -1011,18 +1012,17 @@
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        lightView.Tag = device;
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(rollerShade.DeviceEpointName);
                                        //lightView.SetStatu(true);
                                        lightView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
                                        lightView.SetCollect(true);
                                        var functionView = new FunctionMainView(xx, yy);
                                        functionView.Tag = device;
                                        itemView.AddChidren(functionView);
                                        functionView.Init();
                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        functionView.SetStatuText(device.GetDeviceStatu());
                                        functionView.SetDeviceName(rollerShade.DeviceEpointName);
                                        functionView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
                                        functionView.SetCollect(true);
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
@@ -1079,18 +1079,21 @@
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
                                            UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            UserView.HomePage.Instance.ScrollEnabled = false;
                                            //rollerShadeControl.action = RefreshBodyView;
                                            rollerShadeControl.Show(device, Room.CurrentRoom);
                                            rollerShadeControl.action += (curDev, curRoom) =>
                                            {
                                                ReFreshEditDeviceAction(device, curRoom, functionView);
                                            };
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                }
                                else if (device.CommonDevice.Type == DeviceType.OnOffOutput)
@@ -1119,27 +1122,27 @@
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.Tag = device;
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        lightView.IsSelected = light.OnOffStatus == 1;
                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        var functionView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(functionView);
                                        functionView.Init();
                                        functionView.Tag = device;
                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        functionView.SetStatuText(device.GetDeviceStatu());
                                        functionView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        functionView.IsSelected = light.OnOffStatus == 1;
                                        functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                                        if (dev == null)
                                        {
                                            lightView.CollectButton.IsSelected = false;
                                            functionView.CollectButton.IsSelected = false;
                                        }
                                        else
                                        {
                                            lightView.CollectButton.IsSelected = true;
                                            functionView.CollectButton.IsSelected = true;
                                        }
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
@@ -1196,7 +1199,7 @@
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            if (device.CommonDevice.DfunctionType == DeviceFunctionType.A开关)
@@ -1204,28 +1207,37 @@
                                                var lightControl = new Phone.Device.Light.OnOffControl();
                                                UserView.HomePage.Instance.AddChidren(lightControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                //lightControl.action = RefreshBodyView;
                                                lightControl.Show(device, Room.CurrentRoom);
                                                lightControl.action += (curDev, curRoom) =>
                                                {
                                                    ReFreshEditDeviceAction(device, curRoom, functionView);
                                                };
                                            }
                                            else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A插座)
                                            {
                                                var lightControl = new Phone.Device.Light.PlugControl();
                                                UserView.HomePage.Instance.AddChidren(lightControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                //lightControl.action = RefreshBodyView;
                                                lightControl.Show(device, Room.CurrentRoom);
                                                lightControl.action += (curDev, curRoom) =>
                                                {
                                                    ReFreshEditDeviceAction(device, curRoom, functionView);
                                                };
                                            }
                                            else
                                            {
                                                var lightControl = new Phone.Device.Light.LightControl();
                                                UserView.HomePage.Instance.AddChidren(lightControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                //lightControl.action = RefreshBodyView;
                                                lightControl.Show(device, Room.CurrentRoom);
                                                lightControl.action += (curDev, curRoom) =>
                                                {
                                                    ReFreshEditDeviceAction(device, curRoom, functionView);
                                                };
                                            }
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                }
                                else if (device.CommonDevice.Type == DeviceType.AirSwitch)
@@ -1254,18 +1266,17 @@
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.Tag = device;
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(airSwitch.DeviceEpointName);
                                        //lightView.SetStatu(true);
                                        lightView.IsSelected = airSwitch.OnOffStatus == 1;
                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        var functionView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(functionView);
                                        functionView.Init();
                                        functionView.Tag = device;
                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        functionView.SetStatuText(device.GetDeviceStatu());
                                        functionView.SetDeviceName(airSwitch.DeviceEpointName);
                                        functionView.IsSelected = airSwitch.OnOffStatus == 1;
                                        functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
@@ -1322,17 +1333,21 @@
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            var lightControl = new Phone.Device.Light.AirSwitchControl();
                                            UserView.HomePage.Instance.AddChidren(lightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //lightControl.action = RefreshBodyView;
                                            lightControl.Show(device, Room.CurrentRoom);
                                            lightControl.action += (curDev, curRoom) =>
                                            {
                                                ReFreshEditDeviceAction(device, curRoom, functionView);
                                            };
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                }
                                else if (device.CommonDevice.Type == DeviceType.Thermostat)
@@ -1361,17 +1376,17 @@
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.Tag = device;
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        lightView.IsSelected = ac.currentSystemMode != 0;
                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        var functionView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(functionView);
                                        functionView.Init();
                                        functionView.Tag = device;
                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        functionView.SetStatuText(device.GetDeviceStatu());
                                        functionView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        functionView.IsSelected = ac.currentSystemMode != 0;
                                        functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
@@ -1428,17 +1443,20 @@
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            var lightControl = new Phone.Device.AC.ACControl();
                                            UserView.HomePage.Instance.AddChidren(lightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //lightControl.action = RefreshBodyView;
                                            lightControl.Show(device, Room.CurrentRoom);
                                            lightControl.action += (curDev, curRoom) =>
                                            {
                                                ReFreshEditDeviceAction(device, curRoom, functionView);
                                            };
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                }
                                else if (device.CommonDevice.Type == DeviceType.DimmableLight)
@@ -1469,27 +1487,27 @@
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.Tag = device;
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        lightView.IsSelected = dimmableLight.OnOffStatus == 1;
                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        var functionView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(functionView);
                                        functionView.Init();
                                        functionView.Tag = device;
                                        functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        functionView.SetStatuText(device.GetDeviceStatu());
                                        functionView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        functionView.IsSelected = dimmableLight.OnOffStatus == 1;
                                        functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                                        if (dev == null)
                                        {
                                            lightView.CollectButton.IsSelected = false;
                                            functionView.CollectButton.IsSelected = false;
                                        }
                                        else
                                        {
                                            lightView.CollectButton.IsSelected = true;
                                            functionView.CollectButton.IsSelected = true;
                                        }
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        functionView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
@@ -1546,16 +1564,19 @@
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        functionView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                                            UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //dimmableLightControl.action = RefreshBodyView;
                                            dimmableLightControl.Show(device, Room.CurrentRoom);
                                            dimmableLightControl.action += (curDev, curRoom) =>
                                            {
                                                ReFreshEditDeviceAction(device, curRoom, functionView);
                                            };
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                        functionView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                }
                                else if (device.CommonDevice.Type == DeviceType.IASZone)
@@ -1691,7 +1712,7 @@
                                    lightView.SetStatuText(device.GetDeviceStatu());
                                    lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                    lightView.CanControl(false);
                                    lightView.IsSelected = device.CommonDevice.IsOnline == 1;
                                    //lightView.IsSelected = device.CommonDevice.IsOnline == 1;
                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                    var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
@@ -1714,6 +1735,34 @@
                    //})
                    //{ IsBackground = true }.Start();
                }
            }
        }
        /// <summary>
        /// ReFreshEditDeviceAction
        /// </summary>
        /// <param name="device"></param>
        /// <param name="curRoom"></param>
        /// <param name="functionView"></param>
        private void ReFreshEditDeviceAction(DeviceUI device, Common.Room curRoom, FunctionMainView functionView)
        {
            if (curRoom.Id != Common.Room.CurrentRoom.Id)
            {
                if (Common.Room.CurrentRoom.IsLove)
                {
                    functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                    functionView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                }
                else
                {
                    Common.Room.CurrentRoom.DeleteDevice(device.FileName);
                    ShowFunction();
                }
            }
            else
            {
                functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                functionView.SetDeviceName(device.CommonDevice.DeviceEpointName);
            }
        }
@@ -1752,6 +1801,7 @@
        /// </summary>
        private void ShowScene()
        {
            functionSceneBodyView.RemoveAll();
            //选择场景
            var sceneList = Room.CurrentRoom.SceneUIList;
            if (sceneList == null)