| | |
| | | /// </summary> |
| | | bool canVolume = false; |
| | | /// <summary> |
| | | /// 保留上一次音量 |
| | | /// 是否支持常开 |
| | | /// </summary> |
| | | bool canOpenNormallyMode = false; |
| | | /// <summary> |
| | |
| | | #endregion |
| | | |
| | | /// <summary>
|
| | | /// UI显示 |
| | | /// UI显示
|
| | | /// </summary> |
| | | public void Show() |
| | | {
|
| | |
| | | |
| | | ClickHandle(); |
| | | |
| | | if (doorLock.IsOnline == 1) |
| | | if (Common.LocalDevice.Current.CheckDeviceIsOnline(doorLock) == true) |
| | | { |
| | | ReadDoorLockUserInfo(); |
| | | } |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | btnCurrentFrameLayout.AddChidren(btnCurrentRoomName); |
| | | #endregion |
| | | #endregion |
| | | } |
| | | |
| | | #region 音量弹窗 |
| | |
| | | ThumbImagePath = "DoorLock/UnLockButton.png",//进度条按钮图标 |
| | | ThumbImageHeight = Application.GetRealHeight(81),//进度条按钮图标的高度(默认正方形:宽和高一样) |
| | | ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor, |
| | | ProgressTextSize = 12,//显示百分比字体大小 |
| | | ProgressTextSize = 12,//显示百分比字体大小 |
| | | SeekBarViewHeight = Application.GetRealHeight(17),//进度条的宽度 |
| | | Progress = currentVolume, |
| | | }; |
| | |
| | | {
|
| | | return;
|
| | | } |
| | | string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) |
| | | if (doorLock.IsDoorLockNormallyMode)
|
| | | {
|
| | | if (doorLock.IsDoorLockNormallyMode[key] == true)
|
| | | {
|
| | | if (canOpenNormallyMode) |
| | | { |
| | | Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); }); |
| | | } |
| | | if (canOpenNormallyMode) |
| | | { |
| | | Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); }); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | tempRes = false; |
| | | } |
| | | |
| | | NormallyOpenModeValue(tempRes); |
| | | |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes); |
| | | Application.RunOnMainThread(async () => |
| | | { |
| | | var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(); |
| | | var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2); |
| | | if (resTemp == 1) |
| | | { |
| | | HaveLogicNormallyOpenMode = true; |
| | |
| | | canVolume = DoorLockCommonInfo.CanVolume(doorLock); |
| | | if (canVolume) |
| | | { |
| | | //读取音量 |
| | | //读取音量 |
| | | var resultRes = await doorLock.GetVolumeAsync(); |
| | | if (resultRes == null || resultRes.volumeResponseData == null) |
| | | { |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 公共事件处理 |
| | | #region 公共事件处理 |
| | | /// <summary> |
| | | /// 事件处理 |
| | | /// 事件处理 |
| | | /// </summary> |
| | | public void ClickHandle() |
| | | { |
| | |
| | | //设置 |
| | | EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) => |
| | | { |
| | | //打开其他界面时前移除 |
| | | RemoveFromParent(); |
| | | //打开其他界面时前移除【暂时不移除】 |
| | | //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; |
| | |
| | | btnCollect.IsSelected = !btnCollect.IsSelected; |
| | | if (btnCollect.IsSelected) |
| | | { |
| | | HdlRoomLogic.Current.AddLoveDevice(deviceUI);//收藏 |
| | | HdlRoomLogic.Current.AddLoveDevice(deviceUI);//收藏 |
| | | } |
| | | else |
| | | { |
| | | HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//取消收藏 |
| | | HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//取消收藏 |
| | | } |
| | | }; |
| | | btnCollectFrameLayout.MouseDownEventHandler += handerCollect; |
| | |
| | | //开锁事件 |
| | | EventHandler<MouseEventArgs> hander1 = async (sender, e) => |
| | | { |
| | | |
| | | string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) |
| | | if (doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | if (doorLock.IsDoorLockNormallyMode[key] == true) |
| | | { |
| | | if (canOpenNormallyMode)
|
| | | {
|
| | | NomallyOpenModeInvalidDialog(false);
|
| | | }
|
| | | else |
| | | { |
| | | OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus); |
| | | } |
| | | if (canOpenNormallyMode)
|
| | | {
|
| | | NomallyOpenModeInvalidDialog(false);
|
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | if (canOpenNormallyMode) |
| | | { |
| | | var key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) |
| | | if (doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | if (doorLock.IsDoorLockNormallyMode[key] == true) |
| | | { |
| | | NomallyOpenModeInvalidDialog(); |
| | | } |
| | | NomallyOpenModeInvalidDialog(); |
| | | } |
| | | } |
| | | else |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 音量 |
| | | #region 音量 |
| | | /// <summary> |
| | | /// 更新音量 |
| | | /// </summary> |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 常开模式 |
| | | /// <summary> |
| | | /// 门锁常开模式值 |
| | | /// </summary> |
| | | public void NormallyOpenModeValue(bool value) |
| | | { |
| | | string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) |
| | | { |
| | | doorLock.IsDoorLockNormallyMode[key] = value; |
| | | } |
| | | else |
| | | { |
| | | doorLock.IsDoorLockNormallyMode.Add(key, value); |
| | | } |
| | | } |
| | | |
| | | #region 常开模式 |
| | | /// <summary> |
| | | /// 常开模式处理 |
| | | /// </summary> |
| | | private async void NomallyOpenDialog() |
| | | { |
| | | #region 后续版本 |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate)); |
| | | return; |
| | | } |
| | | |
| | | if (!UserCenterResourse.AccountOption.DoorUnLockByRemote) |
| | | { |
| | | SystemSecondAuthentication(); |
| | | return; |
| | | } |
| | | |
| | | action = () => |
| | | { |
| | | //系统密码支持操作门锁后,调用温居城的界面【常开自动化】 |
| | | 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(); |
| | | // functionSetting.aaaAction = () => |
| | | //{ |
| | | // UpdateNomallyOpenStatus(); |
| | | //}; |
| | | }; |
| | | HdlCheckLogic.Current.CheckSecondarySecurity(action); |
| | | #endregion |
| | | |
| | | #region 暂时版本 (最终去掉) |
| | | if (!btnNormallyOpen.IsSelected) |
| | | { |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | |
| | | |
| | | //每次重新设置常开,默认时间都是12小时 |
| | | DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12; |
| | | NormallyOpenModeValue(true); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | |
| | | AlreadyOpenNormallyMode(); |
| | | } |
| | | }; |
| | | |
| | | }; |
| | | HdlCheckLogic.Current.CheckSecondarySecurity(action); |
| | | } |
| | |
| | | { |
| | | NomallyOpenModeInvalidDialog(); |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | if (IsFromReport) |
| | | { |
| | | //上报“常开模式”已被取消,app默认了“常开模式”被取消 |
| | | NormallyOpenModeValue(false); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | |
| | | else |
| | | { |
| | | //app默认“常开模式”还是开启 |
| | | NormallyOpenModeValue(true); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | |
| | | var result = await doorLock.SetNormallyOpenModeFuncAsync(true); |
| | | if (result == null || result.defaultControlResponseData == null) |
| | | { |
| | | string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); |
| | | this.ShowTipMsg(msg0); |
| | | NormallyOpenModeValue(false); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); |
| | | this.ShowTipMsg(msg0); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); |
| | | UpdateNomallyOpenStatus(); |
| | | }); |
| | | return; |
| | |
| | | { |
| | | string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); |
| | | this.ShowTipMsg(msg1); |
| | | NormallyOpenModeValue(false); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | |
| | | else |
| | | { |
| | | //保持“常开成功” |
| | | NormallyOpenModeValue(true); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | | }); |
| | | |
| | | //创建常开模式的特殊逻辑 |
| | | //创建常开模式的特殊逻辑 |
| | | var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); |
| | | //if (!resu) |
| | | //{ |
| | |
| | | else |
| | | { |
| | | //app操作不取消“常开模式” |
| | | NormallyOpenModeValue(true); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | |
| | | if (IsFromReport) |
| | | { |
| | | //上报门锁“常开模式”已经取消,现在app确认“常开模式”取消 |
| | | NormallyOpenModeValue(false); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | |
| | | HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9002, string.Empty); |
| | | |
| | | //app确认取消“常开模式”成功 |
| | | NormallyOpenModeValue(false); |
| | | DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | UpdateNomallyOpenStatus(); |
| | |
| | | alertNomallyModeIsTurnOn.Show(); |
| | | alertNomallyModeIsTurnOn.MsgControlClickEvent += async () => |
| | | { |
| | | //默认创建常开模式的特殊逻辑 |
| | | //默认创建常开模式的特殊逻辑 |
| | | var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); |
| | | //if (!res) |
| | | //{ |
| | |
| | | /// </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.InvalidTimeAction += async (obj) => |
| | | { |
| | | Regex rg = new Regex("^[0-9]+$"); |
| | | if (!rg.IsMatch(obj)) |
| | | { |
| | | //必须是数字 |
| | | string msg0 = Language.StringByID(R.MyInternationalizationString.NormallyOpenModeInvalidTimeTip); |
| | | this.ShowTipMsg(msg0); |
| | | |
| | | string msgTimeInValidSetting2 = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime); |
| | | var timeConfrim2 = Language.StringByID(R.MyInternationalizationString.Confrim); |
| | | var alertTimeInValidSetting2 = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting2, timeConfrim2); |
| | | alertTimeInValidSetting2.Show(); |
| | | return; |
| | | } |
| | | //常开模式失效时间设置成功 |
| | | var temp = int.Parse(obj); |
| | | DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp; |
| | | //默认创建常开模式的特殊逻辑 |
| | | //默认创建常开模式的特殊逻辑 |
| | | var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); |
| | | if (!res) |
| | | { |
| | | //默认创建常开模式失败 |
| | | string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed); |
| | | this.ShowTipMsg(msg0); |
| | | |
| | | var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim)); |
| | | alert.Show(); |
| | | //二次加载弹窗 常开模式开启提示 |
| | | NomallyOpenModeInvalidTimeDialog(); |
| | | } |
| | |
| | | btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0); |
| | | return; |
| | | } |
| | | string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode[key] == true) |
| | | if (doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | btnNormallyOpen.IsSelected = true; |
| | | btnDoorLockPic.IsSelected = true; |
| | |
| | | btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen); |
| | | |
| | | } |
| | | else if (doorLock.IsDoorLockNormallyMode[key] == false) |
| | | else if (!doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose); |
| | | btnDoorLockPic.IsSelected = false; |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 开锁处理 |
| | | #region 开锁处理 |
| | | /// <summary> |
| | | /// 开锁处理 |
| | | /// </summary> |
| | |
| | | CommonPage.Instance.IsDrawerLockMode = false; |
| | | } |
| | | ZbGateway.StatusList.Remove(this); |
| | | DoorLockCommonInfo.LogicAction = null; |
| | | base.RemoveFromParent(); |
| | | } |
| | | #endregion |