HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-05-09 21736b2944d5e88cd705a39ff87fd73d5a16e609
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -41,7 +41,13 @@
        /// <summary>
        /// 逻辑中是否有常开模式
        /// </summary>
        private bool HaveLogicNormallyOpenMode = false;
        private bool haveLogicNormallyOpenMode = false;
        /// <summary>
        /// 门锁深度控制上报窗口是否弹出
        /// </summary>
        public static bool canShowDialog = true;
        /// <summary>
        /// 当前电量
        /// </summary>
@@ -609,7 +615,14 @@
                        {
                            if (canOpenNormallyMode)
                            {
                                Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); });
                                Application.RunOnMainThread(() =>
                                {
                                    Action<bool> action = (obj) =>
                                    {
                                        UpdateNomallyOpenStatus();
                                    };
                                    DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action);
                                });
                            }
                        }
                    }
@@ -687,11 +700,11 @@
                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2);
                                if (resTemp == 1)
                                {
                                    HaveLogicNormallyOpenMode = true;
                                    haveLogicNormallyOpenMode = true;
                                }
                                else if (resTemp == 0)
                                {
                                    HaveLogicNormallyOpenMode = false;
                                    haveLogicNormallyOpenMode = false;
                                }
                            });
                        }
@@ -784,14 +797,11 @@
            //设置
            EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) =>
            {
                //打开其他界面时前移除【暂时不移除】
                //RemoveFromParent();
                var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(currentRoom, doorLock);
                Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                functionSetting.Show();
                canShowDialog = false;
                functionSetting.devicNameAction += (deviceRename) =>
                {
                    if (!string.IsNullOrEmpty(deviceRename))
@@ -822,6 +832,7 @@
                //历史记录 ----   stan
                var form = new DeviceDoorLock.DoorLockHistoryLogForm();
                form.AddForm(this.doorLock.DeviceAddr);
                canShowDialog = false;
            };
            btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
            btnRecord.MouseDownEventHandler += handerRecord;
@@ -849,7 +860,14 @@
                {
                    if (canOpenNormallyMode)
                    {
                        NomallyOpenModeInvalidDialog(false);
                        Application.RunOnMainThread(() =>
                        {
                            Action<bool> action = (obj) =>
                            {
                                UpdateNomallyOpenStatus();
                            };
                            DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
                        });
                    }
                    else
                    {
@@ -875,7 +893,14 @@
                {
                    if (doorLock.IsDoorLockNormallyMode)
                    {
                        NomallyOpenModeInvalidDialog();
                        Application.RunOnMainThread(() =>
                        {
                            Action<bool> action = (obj) =>
                            {
                                UpdateNomallyOpenStatus();
                            };
                            DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
                        });
                    }
                }
                else
@@ -1066,80 +1091,18 @@
            };
            HdlCheckLogic.Current.CheckSecondarySecurity(action);
            #endregion 
            #region 暂时版本 (最终去掉)
            if (!btnNormallyOpen.IsSelected)
            {
                if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                {
                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
                    return;
                }
        }
                if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
                {
                    SystemSecondAuthentication();
                    return;
                }
                action = () =>
                {
                    string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n");
                    var confirm = Language.StringByID(R.MyInternationalizationString.Confrim);
                    var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm);
                    alert.Show();
                    alert.ConfirmClickEvent += async () =>
                    {
                        Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                        var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
                        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.OpenNormallyOpenModeFailed);
                            this.ShowTipMsg(msg1);
                            return;
                        }
                        else
                        {
                            //添加App开启常开模式的历史记录
                            HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9001, string.Empty);
                            //每次重新设置常开,默认时间都是12小时
                            DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12;
                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
                            Application.RunOnMainThread(() =>
                            {
                                UpdateNomallyOpenStatus();
                                CommonPage.Loading.Hide();
                            });
                            //常开模式开启提示
                            AlreadyOpenNormallyMode();
                        }
                    };
                };
                HdlCheckLogic.Current.CheckSecondarySecurity(action);
            }
            else
            {
                NomallyOpenModeInvalidDialog();
            }
            #endregion
        }
        /// <summary>
        /// 常开模式失效处理
        /// </summary>
        /// <summary>
        /// 常开模式失效处理
        /// </summary>
        public void NomallyOpenModeInvalidDialog(bool IsFromReport = false)
        {
            if (!canShowDialog)
            {
                return;
            }
            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
            {
                this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
@@ -1148,7 +1111,7 @@
            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)
            if (haveLogicNormallyOpenMode)
            {
                //有逻辑设置的弹窗
                alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm);
@@ -1166,7 +1129,7 @@
                        UpdateNomallyOpenStatus();
                    });
                    //删除已经失效的“常开模式”的逻辑
                    if (HaveLogicNormallyOpenMode)
                    if (haveLogicNormallyOpenMode)
                    {
                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
                        //if (resTemp == 3)
@@ -1194,7 +1157,7 @@
                    //上报“常开模式”已被取消
                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                    //先删除已失效的“常开模式”的逻辑
                    if (HaveLogicNormallyOpenMode)
                    if (haveLogicNormallyOpenMode)
                    {
                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
                        //if (resTemp == 3)
@@ -1271,7 +1234,7 @@
                    });
                    //删除已经失效的“常开模式”的逻辑
                    if (HaveLogicNormallyOpenMode)
                    if (haveLogicNormallyOpenMode)
                    {
                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
                        //if (resTemp == 3)
@@ -1310,7 +1273,7 @@
                            UpdateNomallyOpenStatus();
                        });
                        //删除设置常开模式创建的逻辑
                        if (HaveLogicNormallyOpenMode)
                        if (haveLogicNormallyOpenMode)
                        {
                            var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
                            //因为目前机制问题,逻辑经常失败,所以不提示,后期机制要改,重新做一个这个界面