xm
2020-04-16 6fa9d69da922c8049f5acfcbb9ce9fd26811024c
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -22,6 +22,10 @@
        /// </summary>
        private VerticalListRefreshControl listView = null;
        /// <summary>
        /// 前一次显示出左滑菜单的RowLayout
        /// </summary>
        private RowLayoutControl oldShowRightMuneRow = null;
        /// <summary>
        /// 行控件的信息(Keys:Mac地址)
        /// </summary>
        private Dictionary<string, DeviceObjRowInfo> dicRowInfo = new Dictionary<string, DeviceObjRowInfo>();
@@ -43,6 +47,8 @@
        /// </summary>
        public void ShowForm()
        {
            this.ScrollEnabled = false;
            //设置标题信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.DeviceManagement));
@@ -152,6 +158,8 @@
            //获取设备列表
            string gwID = HdlGatewayLogic.Current.GetGatewayId(GatewayResourse.NowSelectGateway);
            var listDevice = Common.LocalDevice.Current.GetDeviceByGatewayID(gwID);
            var listSpecialOta = Common.LocalDevice.Current.GetSpecialOtaDevice(gwID);
            listDevice.AddRange(listSpecialOta);
            this.dicRowInfo.Clear();
@@ -210,6 +218,7 @@
            //控件
            var rowMenu = new DeviceObjectControl(deviceMac, listView.rowSpace / 2);
            rowMenu.MainKeys = deviceMac;
            frameTable.AddChidren(rowMenu);
            rowMenu.InitControl();
            rowInfo.MenuRow = rowMenu;
@@ -227,16 +236,11 @@
            //检测设备是否拥有定位的功能
            var listdevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(listdevice[0]) == true)
            if (listdevice.Count > 0 && Common.LocalDevice.Current.DeviceIsCanFixedPosition(listdevice[0]) == true)
            {
                //定位
                var btnPosition = new NormalViewControl(Application.GetRealWidth(184), rowMenu.Height, false);
                var btnPosition = rowMenu.AddEditorControl(false);
                btnPosition.TextID = R.MyInternationalizationString.uFixedPosition;
                btnPosition.TextAlignment = TextAlignment.Center;
                btnPosition.TextSize = 12;
                btnPosition.TextColor = UserCenterColor.Current.White;
                btnPosition.BackgroundColor = 0xff4a4a4a;
                rowMenu.AddRightView(btnPosition);
                btnPosition.ButtonClickEvent += (sender, e) =>
                {
                    //定位
@@ -266,11 +270,30 @@
            rowMenu.frameTable.ButtonClickEvent += (sender, e) =>
            {
                //隐藏菜单
                rowMenu.HideMenu();
                //强制跳转真实设备界面
                if (UserCenterResourse.HideOption.GotoRealDeviceForm == 1)
                {
                    var form2 = new DeviceAddSuccessForm();
                    form2.AddForm(deviceMac);
                    return;
                }
                btnNew.Visible = false;
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(deviceMac);
                //界面跳转,记录当前的正在操作的设备的Mac地址
                this.nowActionDeviceMac = deviceMac;
            };
            //左滑菜单事件
            rowMenu.OpenMenuAction += () =>
            {
                if (this.oldShowRightMuneRow != null && this.oldShowRightMuneRow.MainKeys != rowMenu.MainKeys)
                {
                    //左滑菜单只能滑一个
                    this.oldShowRightMuneRow.HideMenu();
                }
                this.oldShowRightMuneRow = rowMenu;
            };
        }
@@ -327,6 +350,7 @@
            //行控件
            var rowDevice = new DeviceRoomControl(device, frame.rowSpace / 2);
            rowDevice.MainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
            frame.AddChidren(rowDevice);
            rowDevice.frameTable.LeftOffset = Application.GetRealWidth(173) - ControlCommonResourse.XXLeft;
            rowDevice.InitControl();
@@ -345,13 +369,8 @@
            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(device) == true)
            {
                //定位
                var btnPosition = new NormalViewControl(Application.GetRealWidth(184), rowDevice.Height, false);
                var btnPosition = rowDevice.AddEditorControl(false);
                btnPosition.TextID = R.MyInternationalizationString.uFixedPosition;
                btnPosition.TextAlignment = TextAlignment.Center;
                btnPosition.TextSize = 12;
                btnPosition.TextColor = UserCenterColor.Current.White;
                btnPosition.BackgroundColor = 0xff4a4a4a;
                rowDevice.AddRightView(btnPosition);
                btnPosition.ButtonClickEvent += (sender, e) =>
                {
                    //定位
@@ -361,10 +380,22 @@
            rowDevice.frameTable.ButtonClickEvent += (sender, e) =>
            {
                //隐藏菜单
                rowDevice.HideMenu();
                //界面跳转,记录当前的正在操作的设备的Mac地址
                this.nowActionDeviceMac = device.DeviceAddr;
                //显示设备功能配置界面
                this.ShowDeviceFunctionSettionForm(device, deviceEnumInfo);
            };
            //左滑菜单事件
            rowDevice.OpenMenuAction += () =>
            {
                if (this.oldShowRightMuneRow != null && this.oldShowRightMuneRow.MainKeys != rowDevice.MainKeys)
                {
                    //左滑菜单只能滑一个
                    this.oldShowRightMuneRow.HideMenu();
                }
                this.oldShowRightMuneRow = rowDevice;
            };
        }
@@ -407,6 +438,44 @@
                var form = new DeviceAirConditioner.IndoorUnitSettionForm();
                form.AddForm((AC)device);
            }
            //环境面板
            else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment)
            {
                var form = new DeviceFunctionSettionForm();
                form.AddForm(device, true);
            }
            //新风面板
            else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
            {
                //方悦新风面板的按键配置
                var form = new DevicePanel.PanelFangyueFreshAirButtonSettionForm();
                form.AddForm(device);
            }
            //方悦面板
            else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo
                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
            {
                //干接点
                if (device.Type == DeviceType.OnOffSwitch)
                {
                    //方悦面板的按键配置
                    var form = new DevicePanel.PanelFangyueButtonSettionForm();
                    form.AddForm(device);
                }
                //继电器
                else if (device.Type == DeviceType.OnOffOutput)
                {
                    //方悦面板的功能配置
                    var form = new DevicePanel.PanelFangyueFunctionSettionForm();
                    form.AddForm(device);
                }
                else
                {
                    var form = new DeviceFunctionSettionForm();
                    form.AddForm(device, true);
                }
            }
            //面板设备
            else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A按键面板)
            {
@@ -439,12 +508,6 @@
                        var form = new DeviceFunctionSettionForm();
                        form.AddForm(device, true);
                    }
                }
                //温湿度
                else if (device.Type == DeviceType.TemperatureSensor)
                {
                    var form = new DeviceFunctionSettionForm();
                    form.AddForm(device, true);
                }
                else
                {
@@ -843,8 +906,14 @@
                var localDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceAddr);
                if (localDevice.Count == 0)
                {
                    //入网之后,又把它删了
                    return;
                    //针对单纯只有一个200端点的设备
                    var ota = Common.LocalDevice.Current.GetOTADevice(deviceAddr);
                    if (ota == null)
                    {
                        //入网之后,又把它删了
                        return;
                    }
                    localDevice.Add(ota);
                }
                var rowNewInfo = new DeviceObjRowInfo();
                rowNewInfo.DeviceMac = deviceAddr;
@@ -904,8 +973,9 @@
            if (this.nowActionDeviceMac != null)
            {
                var rowInfo = this.dicRowInfo[nowActionDeviceMac];
                //检测这个设备是否被删除
                if (Common.LocalDevice.Current.GetDevicesByMac(nowActionDeviceMac).Count == 0)
                //检测这个设备是否被删除 2020.01.13变更:追加Ota设备的判断
                if (Common.LocalDevice.Current.GetDevicesByMac(nowActionDeviceMac).Count == 0
                    && Common.LocalDevice.Current.GetOTADevice(nowActionDeviceMac) == null)
                {
                    //移除控件
                    rowInfo.dicDetailRow = null;