黄学彪
2019-12-30 3dcbd186c42c598c0c08d1cd37034cf2baa09e54
ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
old mode 100755 new mode 100644
@@ -7,6 +7,7 @@
using Shared.Phone.UserCenter.DoorLock;
using System.Timers;
using Shared.Phone.Device.DeviceLogic;
using Shared.Phone.UserCenter;
namespace Shared.Phone.UserView
{
@@ -88,6 +89,8 @@
        /// sceneScrolView
        /// </summary>
        private VerticalScrolViewLayout sceneScrolView ;
        #endregion
        #region ◆ 接口____________________________
@@ -135,7 +138,7 @@
                                continue;
                            }
                            for (int j=0;j<rowFL.ChildrenCount;j++)
                            for (int j = 0; j < rowFL.ChildrenCount; j++)
                            {
                                var deviceUI = (rowFL.GetChildren(j) as FunctionMainView).Tag as DeviceUI;
                                if (deviceUI == null || deviceUI.CommonDevice == null)
@@ -221,7 +224,7 @@
                                            var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
                                            ac.DeviceStatusReport = common.DeviceStatusReport;
                                            var attriButeList = ac.DeviceStatusReport.AttriBute;
                                            foreach(var attList in attriButeList)
                                            foreach (var attList in attriButeList)
                                            {
                                                var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                                switch (attList.AttributeId)
@@ -270,7 +273,7 @@
                                            var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
                                            var attriButeList = common.DeviceStatusReport.AttriBute;
                                            ac.DeviceStatusReport = common.DeviceStatusReport;
                                            foreach(var attList in attriButeList)
                                            foreach (var attList in attriButeList)
                                            {
                                                switch (attList.AttributeId)
                                                {
@@ -320,7 +323,7 @@
                                                    //此属性表明当前亮度程度
                                                    dimmableLight.Level = attriButeList[0].AttriButeData;
                                                    dimmableLight.LastDateTime = DateTime.Now;
                                                    (rowFL.GetChildren(j) as FunctionMainView).IsSelected = true;
                                                    //rowFL.GetChildren(j) as FunctionMainView).IsSelected = true;
                                                    (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                                    break;
                                            }
@@ -336,7 +339,56 @@
                    }
                });
            }
            else if (typeTag == "IASInfoReport")
            {
                Application.RunOnMainThread(() =>
                {
                    try
                    {
                        for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++)
                        {
                            var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout;
                            if (rowFL.ChildrenCount == 0)
                            {
                                //设备为空或者控件为空
                                continue;
                            }
                            for (int j = 0; j < rowFL.ChildrenCount; j++)
                            {
                                var deviceUI = (rowFL.GetChildren(j) as FunctionMainView).Tag as DeviceUI;
                                if (deviceUI == null || deviceUI.CommonDevice == null)
                                {
                                    //设备为空或者控件为空
                                    continue;
                                }
                                if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint)
                                {
                                    //判断是否为当前设备
                                    continue;
                                }
                                switch (deviceUI.CommonDevice.Type)
                                {
                                    case DeviceType.IASZone:
                                        //ias
                                        var ias = common as IASZone;
                                        var iAS = deviceUI.CommonDevice as ZigBee.Device.IASZone;
                                        iAS.iASInfo = ias.iASInfo;
                                        (rowFL.GetChildren(j) as FunctionMainView).IsSelected = iAS.iASInfo?.Alarm1 == 1;
                                        (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu();
                                        iAS.LastDateTime = DateTime.Now;
                                        break;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        System.Console.WriteLine($"Error:{ex.Message}");
                    }
                });
            }
        }
        /// <summary>
        /// Changeds the IL ogic status.
@@ -427,15 +479,19 @@
                topFrameLayout.AddChidren(floorBtn);
            }
            var messageBtn = new Button()
            if(UserCenterResourse.Option.SafetyShortcut)
            {
                X = Application.GetRealWidth(953),
                Width = Application.GetMinRealAverage(69),
                Height = Application.GetMinRealAverage(69),
                Gravity = Gravity.CenterVertical,
                UnSelectedImagePath = "Item/Message.png",
                SelectedImagePath = "Item/MessageSelected.png"
            };
                var safetyBtn = new SafetyShortcutControl();
                safetyBtn.X = Application.GetRealWidth(860);
                safetyBtn.Gravity = Gravity.CenterVertical;
                topFrameLayout.AddChidren(safetyBtn);
            }
            var messageBtn = new MessageManagementControl();
            messageBtn.X = Application.GetRealWidth(953);
            messageBtn.Gravity = Gravity.CenterVertical;
            messageBtn.UnSelectedImagePath = "Item/Message.png";
            messageBtn.SelectedImagePath = "Item/MessageSelected.png";
            topFrameLayout.AddChidren(messageBtn);
            var residecneName = new Button()
@@ -447,7 +503,7 @@
                TextAlignment = TextAlignment.CenterLeft,
                Text = Config.Instance.Home.Name ?? Language.StringByID(R.MyInternationalizationString.TheResidenceNameNull),
                TextSize = 24,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
                IsBold=true
            };
            if (Config.Instance.Home.IsOthreShare)
@@ -606,7 +662,7 @@
                            pointBtn.IsSelected = false;
                            nameBtn.IsSelected = false;
                        }
                    };
                    }
                }
            };
            //消息
@@ -628,23 +684,30 @@
                };
                AddChidren(roomPageView);
                //突出边距
                roomPageView.TCBJ = Application.GetRealWidth(112);
                roomPageView.TCBJ = Application.GetRealWidth(181);
                //两个page之间的间距
                roomPageView.JMBJ = Application.GetRealWidth(69);
                roomPageView.JMBJ = Application.GetRealWidth(0);
                //当前房间
                //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom;
                var rList = Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom();
                Room.CurrentRoom = rList[0];
                Room.CurrentRoom = Room.CurrentRoom ?? rList[0];
                foreach (var room in rList)
                {
                    var roomView = new Device.CommonForm.RoomView(0, 0);
                    roomPageView.AddChidren(roomView);
                    roomView.Init(room);
                    roomView.HideName(true);
                    roomView.action += () =>
                    {
                        Show();
                    };
                }
                var curIndex = rList.FindIndex((obj) => obj.Id == Room.CurrentRoom.Id);
                roomPageView.PageIndex = curIndex;
                if (roomPageView.GetChildren(roomPageView.PageIndex) != null)
                {
                    (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(false);
                }
                var functionSceneView = new FrameLayout()
@@ -725,9 +788,22 @@
                roomPageView.PageChange += (sender, e) =>
                {
                    if(roomPageView.GetChildren(roomPageView.PageIndex - 1) !=null)
                    {
                        (roomPageView.GetChildren(roomPageView.PageIndex - 1) as RoomView).HideName(true);
                    }
                    if (roomPageView.GetChildren(roomPageView.PageIndex + 1) != null)
                    {
                        (roomPageView.GetChildren(roomPageView.PageIndex + 1) as RoomView).HideName(true);
                    }
                    if (roomPageView.GetChildren(roomPageView.PageIndex) != null)
                    {
                        (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(false);
                    }
                    //切换当前房间
                    Room.CurrentRoom = rList[roomPageView.PageIndex];
                    RefreshBodyView();
                };
            }
            else
@@ -901,6 +977,7 @@
                Height = Application.GetRealHeight(200),
                Text = Language.StringByID(R.MyInternationalizationString.NoFunction_Tip).Replace("{\\r\\n}", "\r\n"),
                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                TextAlignment=TextAlignment.Center,
                IsMoreLines = true
            };
            functionSceneBodyView.AddChidren(noFunctionTip);
@@ -924,14 +1001,25 @@
            }
            else
            {
                var dList = new List<DeviceUI> { };
                foreach(var device in deviceList)
                {
                    var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device.CommonDevice);
                    if (info.BeloneType == DeviceBeloneType.A干接点 || info.BeloneType == DeviceBeloneType.A中继器)
                    {
                        continue;
                    }
                    dList.Add(device);
                }
                deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { };
                functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout);
                for (int i = 0; i < deviceList.Count; i++)
                for (int i = 0; i < dList.Count; i++)
                {
                    var device = deviceList[i];
                    var device = dList[i];
                    //new System.Threading.Thread(() =>
                    //{
                        Application.RunOnMainThread(() =>
                    Application.RunOnMainThread(() =>
                        {
                            try
                            {
@@ -1539,6 +1627,32 @@
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                }
                                else if (device.CommonDevice.Type == DeviceType.IASZone)
                                {
                                    //各类传感器
                                    var ias = device.CommonDevice as IASZone;
                                    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 = ias.iASInfo?.Alarm1 == 1;
                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                    lightView.CanControl(false);
                                    var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                                    if (dev == null)
                                    {
                                        lightView.CollectButton.IsSelected = false;
                                    }
                                    else
                                    {
                                        lightView.CollectButton.IsSelected = true;
                                    }
                                    lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                }
                                else if (device.CommonDevice.Type == DeviceType.DoorLock)
                                {
                                    //门锁
@@ -1634,6 +1748,7 @@
                Height = Application.GetRealHeight(200),
                Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n"),
                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                TextAlignment = TextAlignment.Center,
                IsMoreLines = true
            };
            functionSceneBodyView.AddChidren(noScenceTip);