| | |
| | | } |
| | | /// 给徐梅刷新界面用的 |
| | | public Action<bool> action; |
| | | // 刷新上报界面的Action |
| | | public Action<string, bool> updateCurrentDoorlockActionTemp; |
| | | ///第二块第一级父控件 |
| | | FrameLayout fLayout = new FrameLayout(); |
| | | ///第三块第一级父控件 |
| | |
| | | /// </summary> |
| | | public int timeValue = 0; |
| | | /// <summary> |
| | | /// 标记显示执行日期(用网关的,还是用系统的时间) |
| | | /// </summary> |
| | | public bool _if = false; |
| | | /// <summary> |
| | | /// 时间戳 |
| | | /// 记录时间戳 |
| | | /// </summary> |
| | | public int timeLong = 0; |
| | | public async void Show() |
| | | { |
| | | |
| | | |
| | | #region 界面的布局代码 |
| | | UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑 |
| | | TopView view = new TopView(); |
| | |
| | | action(Send.CurrentDoorLock.IsDoorLockNormallyMode); |
| | | } |
| | | }; |
| | | |
| | | |
| | | var middle = new FrameLayout |
| | | { |
| | | Y = view.topRowLayout.Bottom, |
| | |
| | | this.AddChidren(middle); |
| | | #endregion |
| | | //是常开模式再去读取 |
| | | |
| | | if (Send.CurrentDoorLock.IsDoorLockNormallyMode) |
| | | { |
| | | //进来更新一次 |
| | |
| | | logicId = logic.LogicId; |
| | | timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600; |
| | | timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]); |
| | | |
| | | } |
| | | catch { } |
| | | } |
| | |
| | | ///添加自动化图标的控件 |
| | | var addIconBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(69), |
| | | Height = Application.GetMinRealAverage(69), |
| | | Width = Application.GetRealWidth(69), |
| | | Height = Application.GetRealWidth(69), |
| | | X = Application.GetRealWidth(890), |
| | | Y = Application.GetRealHeight(60), |
| | | UnSelectedImagePath = "ZigeeLogic/add.png", |
| | |
| | | catch { } |
| | | }; |
| | | |
| | | updateCurrentDoorlockActionTemp = (DoorlockKey, _bool) => |
| | | { |
| | | |
| | | var key = Send.CurrentDoorLock.DeviceAddr; |
| | | if (DoorlockKey == key) |
| | | { |
| | | try |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | Send.CurrentDoorLock.IsDoorLockNormallyMode = _bool; |
| | | ModeView(); |
| | | }); |
| | | } |
| | | catch { } |
| | | } |
| | | }; |
| | | UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += updateCurrentDoorlockActionTemp; |
| | | } |
| | | /// <summary> |
| | | /// 常开模式开关切换图标界面 |
| | |
| | | { |
| | | X = Application.GetRealWidth(395), |
| | | Y = Application.GetRealHeight(92), |
| | | Width = Application.GetMinRealAverage(294), |
| | | Height = Application.GetMinRealAverage(294), |
| | | Width = Application.GetRealWidth(294), |
| | | Height = Application.GetRealWidth(294), |
| | | }; |
| | | fLayout.AddChidren(modeIconBtn); |
| | | if (Send.CurrentDoorLock.IsDoorLockNormallyMode) |
| | |
| | | Send.DelLogic(logicId); |
| | | } |
| | | Send.CurrentDoorLock.IsDoorLockNormallyMode = false; |
| | | _if = false; |
| | | ModeView(); |
| | | } |
| | | else |
| | |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | if (logicId != 0) |
| | | { |
| | | ///显示失效设置时间文本控件 |
| | |
| | | { |
| | | Y = Application.GetRealHeight(127 + 69), |
| | | X = Application.GetRealWidth(80),//125 |
| | | Width = Application.GetRealWidth(907+12),//634 + 200 |
| | | Width = Application.GetRealWidth(907 + 12),//634 + 200 |
| | | Height = Application.GetRealHeight(60), |
| | | TextSize = 15, |
| | | TextColor = ZigbeeColor.Current.LogicTextBlackColor, |
| | |
| | | int hour = 0; |
| | | int minute = 0; |
| | | |
| | | if (_if) |
| | | if (timeLong != 0) |
| | | { |
| | | ///第一次进来读取网关时间; |
| | | ///读取网关时间; |
| | | var datetime = GetLocalTime(timeLong); |
| | | ///有时效性常开才显示时间条件文本 |
| | | year = datetime.Year.ToString();//那一年 |
| | | month = datetime.Month.ToString();//那一月 |
| | | days = int.Parse(datetime.ToString("dd"));//那一天 |
| | | hour = int.Parse(datetime.ToString("HH"));//小时 |
| | | hour = int.Parse(datetime.ToString("HH"));//小时 |
| | | minute = datetime.Minute;//分钟 |
| | | timeLong = 0; |
| | | } |
| | | else |
| | | { |
| | | |
| | | |
| | | ///在当前界面编辑显示系统时间(不能每一次编辑都去网关拿数据)
year = DateTime.Now.Year.ToString();//那一年 |
| | | ///读取系统时间 |
| | | year = DateTime.Now.Year.ToString();//那一年 |
| | | month = DateTime.Now.Month.ToString();//那一月 |
| | | var d = DateTime.Now.ToString("dd");//那一天 |
| | | var h = int.Parse(DateTime.Now.ToString("HH"));//小时 |
| | |
| | | ///下一级菜单图标控件 |
| | | var nextIconBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(104), |
| | | Height = Application.GetMinRealAverage(104), |
| | | Width = Application.GetRealWidth(104), |
| | | Height = Application.GetRealWidth(104), |
| | | X = Application.GetRealWidth(861), |
| | | Y = Application.GetRealHeight(17), |
| | | UnSelectedImagePath = "ZigeeLogic/nextIconSone.png", |
| | |
| | | {///再次确认 |
| | | LogicView.TipView.ShowInputTip(true, async (str) => |
| | | {///确认发送命令 |
| | | |
| | | CommonPage.Loading.Start(); |
| | | try |
| | | { |
| | |
| | | else |
| | | { |
| | | ///因为有常开模式下才可以创建失效逻辑; |
| | | SkipView.GetLogicAll(Send.CurrentDoorLock);//删除之前所有失效逻辑 |
| | | SkipView.DelAllLogic(Send.CurrentDoorLock);//删除之前所有失效逻辑 |
| | | var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//添加一条失效逻辑 |
| | | if (addResult == 0) |
| | | { |
| | |
| | | logicId = addResult; |
| | | timeValue = int.Parse(str); |
| | | Send.CurrentDoorLock.IsDoorLockNormallyMode = true; |
| | | _if = false; |
| | | ModeView(); |
| | | ///添加APP开启常开模式的历史记录 |
| | | UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty); |
| | |
| | | { |
| | | if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock)) |
| | | { |
| | | ///不是该门锁自动化就不显示出来; |
| | | continue; |
| | | } |
| | | #region 自动化布局View |
| | |
| | | selectedRow = logicRow; |
| | | }; |
| | | a++; |
| | | ///显示逻辑名称的控件
|
| | | ///显示逻辑名称的控件 |
| | | var nameBtn = new Button |
| | | { |
| | | Height = Application.GetRealHeight(58), |
| | |
| | | ///显示目标功能背景颜色的控件 |
| | | var typeBjBtn = new FrameLayout |
| | | { |
| | | Width = Application.GetMinRealAverage(82), |
| | | Height = Application.GetMinRealAverage(82), |
| | | Width = Application.GetRealWidth(82), |
| | | Height = Application.GetRealWidth(82), |
| | | X = Application.GetRealWidth(17), |
| | | Y = Application.GetRealHeight(84), |
| | | Radius = (uint)Application.GetMinRealAverage(41), |
| | |
| | | ///显示目标功能图标的控件 |
| | | var typeIconBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(58), |
| | | Height = Application.GetMinRealAverage(58), |
| | | Width = Application.GetRealWidth(58), |
| | | Height = Application.GetRealWidth(58), |
| | | Gravity = Gravity.Center, |
| | | }; |
| | | typeBjBtn.AddChidren(typeIconBtn); |
| | | ///逻辑开关图标的控件 |
| | | var switchBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(104), |
| | | Height = Application.GetMinRealAverage(63), |
| | | Width = Application.GetRealWidth(104), |
| | | Height = Application.GetRealWidth(63), |
| | | UnSelectedImagePath = "ZigeeLogic/logicclose.png", |
| | | SelectedImagePath = "ZigeeLogic/logicopen.png", |
| | | X = Application.GetRealWidth(815), |
| | |
| | | ///删除点击事件 |
| | | del.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm, |
| | | var alert = new UserCenter.ShowMsgControl(ShowMsgType.Confirm, |
| | | Language.StringByID(MyInternationalizationString.doyouwanttodelete), |
| | | Language.StringByID(MyInternationalizationString.confrim));
|
| | | alert.Show();
|
| | | alert.ConfirmClickEvent += () =>
|
| | | Language.StringByID(MyInternationalizationString.confrim)); |
| | | alert.Show(); |
| | | alert.ConfirmClickEvent += () => |
| | | { |
| | | Common.Logic.SoneLogicList.Remove(logic); |
| | | //logicRow.Parent.RemoveFromParent(); |
| | | fLayoutLogic.RemoveFromParent(); |
| | | Send.DelLogic(logic.LogicId);
|
| | | Send.DelLogic(logic.LogicId); |
| | | }; |
| | | |
| | | };
|
| | | }; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 时间戳转换成时间格式 |
| | | /// </summary> |
| | | /// <param name="unixTimeStamp">时间戳</param> |
| | | /// <returns></returns> |
| | | public DateTime GetLocalTime(int unixTimeStamp) |
| | | { |
| | | DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); |
| | |
| | | TimeSpan toNow = new TimeSpan(lTime); |
| | | DateTime dtResult = dtStart.Add(toNow); |
| | | return dtResult; |
| | | |
| | | } |
| | | } |
| | | } |