HDL Home App 第二版本 旧平台金堂用 正在使用
hxb
2022-08-30 25429f085093d89d543a0b90e30d0d62d1b7dac9
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -17,12 +17,24 @@
        public UserDoorLockPage(Room room, CommonDevice doorLock)
        {
            //徐梅的门锁界面打开(网关全局接收时使用)
            ControlCommonResourse.IsDoorLockPageOpen = true;
            //ControlCommonResourse.IsDoorLockPageOpen = true;
            this.doorLock = doorLock as ZigBee.Device.DoorLock;
            currentRoom = room;
            deviceUI = doorLock;
            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor;
            ZbGateway.StatusList.Add(this);
            Application.RunOnMainThread(() =>
            {
                UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) =>
                {
                    var key = doorLock.DeviceAddr;
                    if (DoorlockKey == key)
                    {
                        DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status);
                        UpdateNomallyOpenStatus();
                    }
                };
            });
        }
        #region  变量申明
@@ -39,14 +51,9 @@
        /// </summary>
        DateTime waitGetDoorLockPower = DateTime.MaxValue;
        /// <summary>
        /// 逻辑中是否有常开模式
        /// 逻辑中是否有常开模式
        /// </summary>
        private bool haveLogicNormallyOpenMode = false;
        /// <summary>
        /// 门锁深度控制上报窗口是否弹出
        /// </summary>
        public static bool canShowDialog = true;
        private bool haveLogicNormallyOpenMode = false;
        /// <summary>
        /// 当前电量
@@ -187,11 +194,11 @@
        bool IsClick = true;
        #endregion
        /// <summary>
        /// UI显示
        /// <summary>
        /// UI显示
        /// </summary>
        public void Show()
        {
        {
            this.TopFrameLayout(this, "");
            this.MidFrameLayout(this);
@@ -214,8 +221,8 @@
            btnFuncSet = new Button
            {
                X = Application.GetRealWidth(103),
                Height = Application.GetMinReal(69),
                Width = Application.GetMinReal(69),
                Height = Application.GetMinRealAverage(69),
                Width = Application.GetMinRealAverage(69),
                UnSelectedImagePath = "DoorLock/SettingIcon.png",
            };
            btnFuncSetFrameLayout.AddChidren(btnFuncSet);
@@ -248,7 +255,7 @@
                Height = Application.GetRealHeight(1238),
                Width = Application.GetRealWidth(965),
                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                Radius = 6,
                Radius = (uint)Application.GetRealHeight(17),
            };
            this.midFrameLayout.AddChidren(midTopFrameLayout);
@@ -259,6 +266,8 @@
            btnDoorLockTitle.IsBold = true;
            btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
            btnDoorLockTitle.Width = btnDoorLockTitle.GetRealWidthByText();
            btnDoorLockTitle.Width = Application.GetRealWidth(500);
            btnDoorLockTitle.TextAlignment = TextAlignment.Center;
            btnDoorLockTitle.Gravity = Gravity.CenterHorizontal;
            midTopFrameLayout.AddChidren(btnDoorLockTitle);
@@ -273,8 +282,8 @@
            midTopFrameLayout.AddChidren(btnRecordFrameLayout);
            btnRecord = new Button()
            {
                Width = Application.GetMinReal(69),
                Height = Application.GetMinReal(69),
                Width = Application.GetMinRealAverage(69),
                Height = Application.GetMinRealAverage(69),
                X = Application.GetRealWidth(46),
                Y = Application.GetRealHeight(46),
                UnSelectedImagePath = "DoorLock/RecordIcon.png",
@@ -291,16 +300,16 @@
            midTopFrameLayout.AddChidren(btnCollectFrameLayout);
            btnCollect = new Button()
            {
                Width = Application.GetMinReal(69),
                Height = Application.GetMinReal(69),
                Width = Application.GetMinRealAverage(69),
                Height = Application.GetMinRealAverage(69),
                X = Application.GetRealWidth(15),
                Y = Application.GetRealHeight(46),
                UnSelectedImagePath = "Item/Collection.png",
                SelectedImagePath = "Item/CollectionSelected.png"
            };
            btnCollectFrameLayout.AddChidren(btnCollect);
            //当前状态
            btnCollectFrameLayout.AddChidren(btnCollect);
            //当前状态
            btnStatus = new Button()
            {
                Width = Application.GetRealWidth(132 + 351),
@@ -325,16 +334,16 @@
                TextSize = 10,
                TextAlignment = TextAlignment.CenterLeft,
            };
            midTopFrameLayout.AddChidren(btnCurrentPowerText);
#if Android
            btnCurrentPowerText.X = btnStatus.Right + Application.GetRealWidth(20);
            midTopFrameLayout.AddChidren(btnCurrentPowerText);
#if Android
            btnCurrentPowerText.X = btnStatus.Right + Application.GetRealWidth(20);
#endif
            //门锁开/关图片
            btnDoorLockPic = new Button()
            {
                Width = Application.GetMinReal(383),
                Height = Application.GetMinReal(343),
                Width = Application.GetMinRealAverage(383),
                Height = Application.GetMinRealAverage(343),
                X = Application.GetRealWidth(161),
                Y = Application.GetRealHeight(415),
                UnSelectedImagePath = "DoorLock/DoorLockPicClose.png",
@@ -373,7 +382,7 @@
            progressFrameLayoutMatch = new FrameLayout()
            {
                Width = Application.GetRealHeight(84),//639-35
                Height = Application.GetRealHeight(446),
                Height = Application.GetRealHeight(446 + 30),
                X = Application.GetMinReal(51),
                BackgroundColor = ZigbeeColor.Current.XMWhite,
            };
@@ -381,7 +390,9 @@
            var progressFrameLayout = new FrameLayout()
            {
                Width = Application.GetRealHeight(17),//639-35
                Width = Application.GetRealHeight(15),//639-35
                Height = Application.GetRealHeight(440),
                Radius = (uint)Application.GetRealHeight(17),
                Gravity = Gravity.CenterHorizontal,
                BackgroundColor = ZigbeeColor.Current.XMVerticalSeekBar,
            };
@@ -389,8 +400,8 @@
            progressButton = new Button()
            {
                Width = Application.GetMinReal(84),//639-35
                Height = Application.GetMinReal(93),
                Width = Application.GetMinRealAverage(84),//639-35
                Height = Application.GetMinRealAverage(93),
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(347),
                UnSelectedImagePath = "DoorLock/UnLockButton.png",
@@ -399,8 +410,8 @@
            btnDoorOpenPic = new Button()
            {
                Width = Application.GetMinReal(81),
                Height = Application.GetMinReal(81),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                X = Application.GetRealWidth(164),
                Y = Application.GetRealHeight(6),
                UnSelectedImagePath = "DoorLock/DoorLockOpen.png",
@@ -409,8 +420,8 @@
            btnDoorClosePic = new Button()
            {
                Width = Application.GetMinReal(81),
                Height = Application.GetMinReal(81),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                X = Application.GetRealWidth(164),
                Y = Application.GetRealHeight(117),
                UnSelectedImagePath = "DoorLock/DoorLockClose.png",
@@ -421,8 +432,8 @@
            //电量
            btnPower = new Button()
            {
                Width = Application.GetMinReal(81),
                Height = Application.GetMinReal(81),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                X = Application.GetRealWidth(253),
                Y = Application.GetRealHeight(994),
                UnSelectedImagePath = "DoorLock/PowerOffline.png",
@@ -440,8 +451,8 @@
            midTopFrameLayout.AddChidren(btnVolumeFrameLayout);
            btnVolume = new Button()
            {
                Width = Application.GetMinReal(81),
                Height = Application.GetMinReal(81),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                X = Application.GetRealWidth(40),
                Y = Application.GetRealHeight(40),
                UnSelectedImagePath = "DoorLock/VolumeIcon.png",
@@ -452,16 +463,16 @@
            //常开
            btnNormallyOpenFrameLayout = new FrameLayout()
            {
                Width = Application.GetRealWidth(81 + 80),
                Height = Application.GetRealHeight(81 + 80),
                Width = Application.GetMinRealAverage(81 + 80),
                Height = Application.GetMinRealAverage(81 + 80),
                X = Application.GetRealWidth(631 - 40),
                Y = Application.GetRealHeight(994 - 40),
            };
            midTopFrameLayout.AddChidren(btnNormallyOpenFrameLayout);
            btnNormallyOpen = new Button()
            {
                Width = Application.GetMinReal(81),
                Height = Application.GetMinReal(81),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                X = Application.GetRealWidth(40),
                Y = Application.GetRealHeight(40),
                UnSelectedImagePath = "DoorLock/NormallyOpen.png",
@@ -485,7 +496,7 @@
                Height = Application.GetRealHeight(138),
                Y = Application.GetRealHeight(1100),
                BackgroundColor = ZigbeeColor.Current.XMBlack,
                Radius = 6,
                Radius = (uint)Application.GetRealHeight(17),
            };
            midTopFrameLayout.AddChidren(btnCurrentFrameLayout);
            #endregion
@@ -493,8 +504,8 @@
            #region 当前房间
            var btnCurrentRoomPic = new Button()
            {
                Width = Application.GetMinReal(81),
                Height = Application.GetMinReal(81),
                Width = Application.GetMinRealAverage(81),
                Height = Application.GetMinRealAverage(81),
                X = Application.GetRealWidth(58),
                Y = Application.GetRealHeight(29),
                UnSelectedImagePath = "DoorLock/RoomPic.png",
@@ -505,7 +516,7 @@
            {
                Width = Application.GetRealWidth(172),
                Height = Application.GetRealHeight(49),
                X = Application.GetRealWidth(150),
                X = btnCurrentRoomPic.Right + Application.GetRealWidth(12),
                Y = Application.GetRealHeight(46),
                Text = currentRoom.Name,
                TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
@@ -513,7 +524,7 @@
                TextAlignment = TextAlignment.CenterLeft,
            };
            btnCurrentFrameLayout.AddChidren(btnCurrentRoomName);
            #endregion
            #endregion
        }
        #region 音量弹窗
@@ -539,8 +550,8 @@
            var progressBackground = new FrameLayout()
            {
                Width = Application.GetRealWidth(271),
                Height = Application.GetRealHeight(700),
                Width = Application.GetMinRealAverage(271),
                Height = Application.GetMinRealAverage(700),
                X = Application.GetRealWidth(403),
                Y = Application.GetRealHeight(582),
                BackgroundImagePath = "DoorLock/ProgressBackground.png",
@@ -559,8 +570,8 @@
            diyImageVerticalSeekBar = new DiyImageVerticalSeekBar()
            {
                Width = Application.GetRealWidth(271),
                Height = Application.GetRealHeight(447 + 63),
                Width = Application.GetMinRealAverage(271),
                Height = Application.GetMinRealAverage(447 + 63),
                Y = Application.GetRealHeight(155),
                IsProgressTextShow = false,//显示百分比
                ProgressBarColor = ZigbeeColor.Current.XMProgressBarColor,//选中进度条颜色
@@ -604,12 +615,12 @@
                    if (tempDoor.doorLockOperatingEventNotificationCommand != null)
                    {
                        //非主人不弹这个窗口
                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                        {
                            return;
                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                        {
                            return;
                        }
                        if (doorLock.IsDoorLockNormallyMode)
                        {
                        if (doorLock.IsDoorLockNormallyMode)
                        {
                            if (canOpenNormallyMode)
                            {
                                Application.RunOnMainThread(() =>
@@ -668,7 +679,7 @@
                    canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
                    if (canOpenNormallyMode)
                    {
                        //获取门锁常开模式
                        //1、获取门锁常开模式
                        var resultRes = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
                        if (resultRes == null)
                        {
@@ -692,16 +703,17 @@
                                tempRes = false;
                            }
                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
                            Application.RunOnMainThread(async () =>
                            {
                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
                                if (resTemp == 1)
                                {
                                    haveLogicNormallyOpenMode = true;
                                }
                                else if (resTemp == 0)
                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2, doorLock);
                                if (resTemp == 0)
                                {
                                    haveLogicNormallyOpenMode = false;
                                }
                                else
                                {
                                    haveLogicNormallyOpenMode = true;
                                }
                            });
                        }
@@ -718,14 +730,14 @@
                    canVolume = DoorLockCommonInfo.CanVolume(doorLock);
                    if (canVolume)
                    {
                        //读取音量
                        //2、读取音量
                        var resultRes = await doorLock.GetVolumeAsync();
                        if (resultRes == null || resultRes.volumeResponseData == null)
                        {
                            var listDevice = new List<CommonDevice> { };
                            listDevice.Add(doorLock);
                            var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
                            if (devTemp.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
                            if (devTemp.ConcreteType != DeviceConcreteType.IntelligentLocks_H06C)
                            {
                                Application.RunOnMainThread(() =>
                                {
@@ -752,7 +764,7 @@
                        });
                    }
                    //读取门锁电量:簇ID:1 属性ID 33
                    //3、读取门锁电量:簇ID:1 属性ID 33
                    doorLock.ReadAttri(Cluster_ID.Power, AttriButeId.DoorLockPower);
                    //上报电量等1秒
                    System.Threading.Thread.Sleep(1000);
@@ -798,7 +810,7 @@
                Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                functionSetting.Show();
                canShowDialog = false;
                //DoorLockCommonInfo.canShowDialog = false;
                functionSetting.devicNameAction += (deviceRename) =>
                {
                    if (!string.IsNullOrEmpty(deviceRename))
@@ -829,7 +841,7 @@
                //历史记录 ----   stan
                var form = new DeviceDoorLock.DoorLockHistoryLogForm();
                form.AddForm(this.doorLock.DeviceAddr);
                canShowDialog = false;
                //DoorLockCommonInfo.canShowDialog = false;
            };
            btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
            btnRecord.MouseDownEventHandler += handerRecord;
@@ -853,11 +865,10 @@
            //开锁事件
            EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
            {
                canShowDialog = true;
                if (doorLock.IsDoorLockNormallyMode)
                {
                    if (canOpenNormallyMode)
                    {
                    if (canOpenNormallyMode)
                    {
                        Application.RunOnMainThread(() =>
                        {
                            Action<bool> action = (obj) =>
@@ -871,7 +882,7 @@
                    {
                        OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
                    }
                }
                }
                else
                {
                    OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
@@ -887,7 +898,6 @@
            //关锁事件
            EventHandler<MouseEventArgs> hander2 = (sender, e) =>
            {
                canShowDialog = true;
                if (canOpenNormallyMode)
                {
                    if (doorLock.IsDoorLockNormallyMode)
@@ -1062,277 +1072,46 @@
            action = () =>
            {
                //系统密码支持操作门锁后,调用温居城的界面【常开自动化】
                if (doorLock == null)
                {
                //WJC的代码:系统密码支持操作门锁后,调用温居城的界面【常开自动化】
                if (doorLock == null)
                {
                    ///防止抛异常
                    return;
                }
                ///备注:WJC的
                Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
                ///进来刷新一次设备列表;
                Common.Logic.LogicDviceList.Clear();
                if (Common.Logic.LogicDviceList.Count == 0)
                {
                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
                }
                var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
                UserView.HomePage.Instance.AddChidren(addLogicPage);
                UserView.HomePage.Instance.PageIndex += 1;
                addLogicPage.Show();
                addLogicPage.action += (w) =>
                {
                    doorLock.IsDoorLockNormallyMode = w;
                    UpdateNomallyOpenStatus();
                    //返回按键清空当前逻辑定义的LogicAction
                    UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
                };
                    return;
                }
                ///备注:WJC的
                Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
                ///进来刷新一次设备列表;
                Common.Logic.LogicDviceList.Clear();
                if (Common.Logic.LogicDviceList.Count == 0)
                {
                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
                }
                var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
                UserView.HomePage.Instance.AddChidren(addLogicPage);
                UserView.HomePage.Instance.PageIndex += 1;
                addLogicPage.Show();
                addLogicPage.action += async (w) =>
                 {
                     DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w);
                     UpdateNomallyOpenStatus();
                     //返回按键清空当前逻辑定义的LogicAction
                     UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
                     //是否存在常开模式
                     var resTemp = Shared.Common.Logic.SoneLogicList;
                     if (resTemp.Count == 0)
                     {
                         haveLogicNormallyOpenMode = false;
                     }
                     else
                     {
                         haveLogicNormallyOpenMode = true;
                     }
                     UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction -= addLogicPage.updateCurrentDoorlockActionTemp;
                 };
            };
            HdlCheckLogic.Current.CheckSecondarySecurity(action);
        }
        /// <summary>
        /// 常开模式失效处理
        /// </summary>
        private void NomallyOpenModeInvalidDialog(bool IsFromReport = false)
        {
            if (!canShowDialog)
            {
                return;
            }
            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
            {
                this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
                return;
            }
            string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n");
            var confirm = Language.StringByID(R.MyInternationalizationString.SureCancel);
            var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.NomallyOpenMode, msg, confirm);
            if (haveLogicNormallyOpenMode)
            {
                //有逻辑设置的弹窗
                alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm);
            }
            alert.Show();
            alert.MsgControlClickEvent += async () =>
            {
                if (IsFromReport)
                {
                    //上报“常开模式”已被取消,app默认了“常开模式”被取消
                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
                    Application.RunOnMainThread(() =>
                    {
                        UpdateNomallyOpenStatus();
                    });
                    if (haveLogicNormallyOpenMode)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                    }
                }
                else
                {
                    //app默认“常开模式”还是开启
                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
                    Application.RunOnMainThread(() =>
                    {
                        UpdateNomallyOpenStatus();
                    });
                }
            };
            alert.CancelClickEvent += async () =>
            {
                if (IsFromReport)
                {
                    //上报“常开模式”已被取消
                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                    if (haveLogicNormallyOpenMode)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                    }
                    //app重新开启“常开模式”
                    var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
                    if (result == null || result.defaultControlResponseData == null)
                    {
                        Application.RunOnMainThread(() =>
                        {
                            string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
                            this.ShowTipMsg(msg0);
                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
                            UpdateNomallyOpenStatus();
                        });
                        return;
                    }
                    if (result.defaultControlResponseData.status != 0)
                    {
                        string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
                        this.ShowTipMsg(msg1);
                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
                        Application.RunOnMainThread(() =>
                        {
                            UpdateNomallyOpenStatus();
                        });
                        return;
                    }
                    else
                    {
                        //保持“常开成功”
                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
                        Application.RunOnMainThread(() =>
                        {
                            UpdateNomallyOpenStatus();
                        });
                        //创建常开模式的特殊逻辑
                        var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
                        //if (!resu)
                        //{
                        //    string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
                        //    this.ShowTipMsg(msg0);
                        //}
                        CommonPage.Loading.Hide();
                    }
                }
                else
                {
                    //app操作不取消“常开模式”
                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
                    Application.RunOnMainThread(() =>
                    {
                        UpdateNomallyOpenStatus();
                    });
                }
            };
            alert.ConfirmClickEvent += async () =>
            {
                if (IsFromReport)
                {
                    //上报门锁“常开模式”已经取消,现在app确认“常开模式”取消
                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
                    Application.RunOnMainThread(() =>
                    {
                        UpdateNomallyOpenStatus();
                    });
                    if (haveLogicNormallyOpenMode)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                    }
                }
                else
                {
                    //app操作取消“常开模式”
                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                    var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
                    if (result == null || result.defaultControlResponseData == null)
                    {
                        string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
                        this.ShowTipMsg(msg0);
                        return;
                    }
                    if (result.defaultControlResponseData.status != 0)
                    {
                        string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed);
                        this.ShowTipMsg(msg1);
                        return;
                    }
                    else
                    {
                        //添加App开启常开模式的历史记录
                        HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9002, string.Empty);
                        //app确认取消“常开模式”成功
                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
                        Application.RunOnMainThread(() =>
                        {
                            UpdateNomallyOpenStatus();
                        });
                        if (haveLogicNormallyOpenMode)
                        {
                            //此处删除温居城的常开模式特殊逻辑
                            var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                        }
                        string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
                        this.ShowTipMsg(msg2);
                    }
                }
            };
        }
        /// <summary>
        /// 已经开启常开模式提示
        /// </summary>
        public void AlreadyOpenNormallyMode()
        {
            //常开模式开启提示
            string msgNomallyModeIsTurnOn = Language.StringByID(R.MyInternationalizationString.NomallyModeIsTurnOn);
            var doorLockInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockInValidSetting);
            var alertNomallyModeIsTurnOn = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.DoorLockLogic, msgNomallyModeIsTurnOn, doorLockInValidSetting);
            alertNomallyModeIsTurnOn.Show();
            alertNomallyModeIsTurnOn.MsgControlClickEvent += async () =>
            {
                //默认创建常开模式的特殊逻辑
                var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
                //if (!res)
                //{
                //string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
                // this.ShowTipMsg(msg0);
                //return;
                //}
            };
            //点击自动化
            alertNomallyModeIsTurnOn.LogicClickEvent += () =>
            {
                //逻辑调用前记得移除
                ZbGateway.StatusList.Remove(this);
                //调用逻辑界面
                Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2, doorLock);
            };
            alertNomallyModeIsTurnOn.InvalidClickEvent += async () =>
            {
                NomallyOpenModeInvalidTimeDialog();
            };
        }
        /// <summary>
        /// 常开模式失效时间处理
        /// </summary>
        private void NomallyOpenModeInvalidTimeDialog()
        {
            //失效设置
            string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
            var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim);
            var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim);
            alertTimeInValidSetting.Show();
            alertTimeInValidSetting.InvalidTimeAction += async (obj) =>
             {
                 //常开模式失效时间设置成功
                 var temp = int.Parse(obj);
                 DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
                 //默认创建常开模式的特殊逻辑
                 var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
                 if (res == 0)
                 {
                     //默认创建常开模式失败
                     string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
                     var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim));
                     alert.Show();
                     //二次加载弹窗 常开模式开启提示
                     NomallyOpenModeInvalidTimeDialog();
                 }
             };
        }
        /// <summary>
@@ -1417,8 +1196,8 @@
                {
                    if (!string.IsNullOrEmpty(deviceRename))
                    {
                        btnDoorLockTitle.Text = deviceRename;
                        //改房间
                        btnDoorLockTitle.Text = deviceRename;
                        //改房间
                        HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
                        deviceUI.ReSave();
                    }
@@ -1435,8 +1214,7 @@
        /// </summary>
        public override void RemoveFromParent()
        {
            //徐梅的门锁界面关闭(网关全局接收时使用)
            ControlCommonResourse.IsDoorLockPageOpen = false;
            UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null;
            if (IsDrawerLockMode)
            {
                CommonPage.Instance.IsDrawerLockMode = false;