gxc
2020-01-08 580a4715eeb88e13128e65963834b159768444cf
ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs
@@ -144,8 +144,22 @@
                                    return;
                                }
                                light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
                                SetONOFFStatu(light.OnOffStatus == 1);
                                StatuBtn.Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} {device.GetDeviceStatu()}";
                                if (device.CommonDevice.DfunctionType == DeviceFunctionType.A开关)
                                {
                                    SetONOFFStatu(light.OnOffStatus == 1);
                                }
                                else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A插座)
                                {
                                    deviceIMG.IsSelected = switchBtn.IsSelected = light.OnOffStatus == 1;
                                }
                                else
                                {
                                    deviceIMG.IsSelected = switchBtn.IsSelected = light.OnOffStatus == 1;
                                }
                                light.LastDateTime = DateTime.Now;
                            }
                        }
@@ -354,40 +368,6 @@
            };
            itemView.AddChidren(StatuBtn);
            deviceIMG = new Button()
            {
                Y = Application.GetRealHeight(340),
                Width = Application.GetMinRealAverage(579),
                Height = Application.GetMinRealAverage(579),
                Gravity = Gravity.CenterHorizontal,
                UnSelectedImagePath = "Light/OnOff.png",
            };
            itemView.AddChidren(deviceIMG);
            OffBtn = new Button
            {
                X = Application.GetRealWidth(294),
                Y = Application.GetRealHeight(588),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                UnSelectedImagePath = "Light/OFF.png",
                SelectedImagePath = "Light/OFFSelected.png",
                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 0
            };
            itemView.AddChidren(OffBtn);
            OnBtn = new Button
            {
                X = Application.GetRealWidth(590),
                Y = Application.GetRealHeight(588),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                UnSelectedImagePath = "Light/ON.png",
                SelectedImagePath = "Light/ONSelected.png",
                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
            };
            itemView.AddChidren(OnBtn);
            var roomBG = new Button
            {
                Y = Application.GetRealHeight(1178 - 50),
@@ -427,6 +407,138 @@
                TextSize = 12
            };
            itemView.AddChidren(roomName);
            AddByFunctionType(itemView);
        }
        /// <summary>
        /// AddByFunctionType
        /// </summary>
        private void AddByFunctionType(FrameLayout itemView)
        {
            if(device.CommonDevice.DfunctionType == DeviceFunctionType.A开关)
            {
                AddOnOff(itemView);
            }
            else if(device.CommonDevice.DfunctionType == DeviceFunctionType.A插座)
            {
                AddPlug(itemView);
            }
            else
            {
                AddLight(itemView);
            }
        }
        /// <summary>
        /// AddOnOff
        /// </summary>
        private void AddOnOff(FrameLayout itemView)
        {
            deviceIMG = new Button()
            {
                Y = Application.GetRealHeight(340),
                Width = Application.GetMinRealAverage(579),
                Height = Application.GetMinRealAverage(579),
                Gravity = Gravity.CenterHorizontal,
                UnSelectedImagePath = "Light/OnOff.png",
            };
            itemView.AddChidren(deviceIMG);
            OffBtn = new Button
            {
                X = Application.GetRealWidth(294),
                Y = Application.GetRealHeight(588),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                UnSelectedImagePath = "Light/OFF.png",
                SelectedImagePath = "Light/OFFSelected.png",
                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 0
            };
            itemView.AddChidren(OffBtn);
            OnBtn = new Button
            {
                X = Application.GetRealWidth(590),
                Y = Application.GetRealHeight(588),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                UnSelectedImagePath = "Light/ON.png",
                SelectedImagePath = "Light/ONSelected.png",
                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
            };
            itemView.AddChidren(OnBtn);
            OnBtn.MouseUpEventHandler += ON;
            OffBtn.MouseUpEventHandler += OFF;
        }
        /// <summary>
        /// light
        /// </summary>
        /// <param name="itemView"></param>
        private void AddLight(FrameLayout itemView)
        {
            deviceIMG = new Button()
            {
                Y = Application.GetRealHeight(389),
                Width = Application.GetMinRealAverage(377),
                Height = Application.GetMinRealAverage(435),
                Gravity = Gravity.CenterHorizontal,
                UnSelectedImagePath = "Light/DeskLamp.png",
                SelectedImagePath = "Light/DeskLampSelected.png",
                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
            };
            itemView.AddChidren(deviceIMG);
            switchBtn = new Button()
            {
                Y = Application.GetRealHeight(996),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                Gravity = Gravity.CenterHorizontal,
                UnSelectedImagePath = "Item/Switch.png",
                SelectedImagePath = "Item/SwitchSelected.png",
                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
            };
            itemView.AddChidren(switchBtn);
            switchBtn.MouseUpEventHandler += Switch;
            deviceIMG.MouseUpEventHandler += Switch;
        }
        /// <summary>
        /// plug
        /// </summary>
        /// <param name="itemView"></param>
        private void AddPlug(FrameLayout itemView)
        {
            deviceIMG = new Button()
            {
                Y = Application.GetRealHeight(344),
                Width = Application.GetMinRealAverage(567),
                Height = Application.GetMinRealAverage(567),
                Gravity = Gravity.CenterHorizontal,
                UnSelectedImagePath = "Light/Plug.png",
                SelectedImagePath = "Light/PlugSelected.png",
                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
            };
            itemView.AddChidren(deviceIMG);
            switchBtn = new Button()
            {
                Y = Application.GetRealHeight(996),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                Gravity = Gravity.CenterHorizontal,
                UnSelectedImagePath = "Item/Switch.png",
                SelectedImagePath = "Item/SwitchSelected.png",
                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
            };
            itemView.AddChidren(switchBtn);
            switchBtn.MouseUpEventHandler += Switch;
            deviceIMG.MouseUpEventHandler += Switch;
        }
        #endregion
@@ -437,8 +549,6 @@
        /// </summary>
        private void BindEvent()
        {
            OnBtn.MouseUpEventHandler += ON;
            OffBtn.MouseUpEventHandler += OFF;
            collectionBtn.MouseUpEventHandler += Collection;
        }
@@ -451,35 +561,36 @@
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="eventArgs">Event arguments.</param>
        //private void Switch(object sender, MouseEventArgs eventArgs)
        //{
        //    sendedControlCommand = false;
        //    zbGateway.ReportAction += UpdateDeviceControllStatu;
        //    switchBtn.IsSelected = !switchBtn.IsSelected;
        //    deviceIMG.IsSelected = !deviceIMG.IsSelected;
        //    StatuBtn.Text = CommonFormResouce.GetSwitchStatu(deviceIMG.IsSelected);
        //    if (switchBtn.IsSelected == true)
        //    {
        //        (device.CommonDevice as ToggleLight).SwitchControl(1);
        //    }
        //    else
        //    {
        //        (device.CommonDevice as ToggleLight).SwitchControl(0);
        //    }
        //    //控制延时回调
        //    DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
        //    {
        //        if (Parent == null)
        //        {
        //            return;
        //        }
        //        RemoveUpdateControlDeviceStatuAction();
        //        if (sendedControlCommand == false)
        //        {
        //            DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
        //        }
        //    });
        //}
        private void Switch(object sender, MouseEventArgs eventArgs)
        {
            sendedControlCommand = false;
            zbGateway.ReportAction += UpdateDeviceControllStatu;
            switchBtn.IsSelected = !switchBtn.IsSelected;
            deviceIMG.IsSelected = !deviceIMG.IsSelected;
            StatuBtn.Text = deviceIMG.IsSelected ? $"{Language.StringByID(R.MyInternationalizationString.Current)} {Language.StringByID(R.MyInternationalizationString.Open)}" : $"{Language.StringByID(R.MyInternationalizationString.Current)} {Language.StringByID(R.MyInternationalizationString.Shut)}";
            if (switchBtn.IsSelected == true)
            {
                (device.CommonDevice as ToggleLight).SwitchControl(1);
            }
            else
            {
                (device.CommonDevice as ToggleLight).SwitchControl(0);
            }
            //控制延时回调
            DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
            {
                if (Parent == null)
                {
                    return;
                }
                RemoveUpdateControlDeviceStatuAction();
                if (sendedControlCommand == false)
                {
                    DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                }
            });
        }
        /// <summary>
        /// ON