HDL Home App 第二版本 旧平台金堂用 正在使用
陈嘉乐
2020-12-30 81307af66465a6b5ba189b0fb9b347787f004a4e
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -17,6 +17,8 @@
        }
        /// 给徐梅刷新界面用的
        public Action<bool> action;
        // 刷新上报界面的Action
        public Action<string, bool> updateCurrentDoorlockActionTemp;
        ///第二块第一级父控件
        FrameLayout fLayout = new FrameLayout();
        ///第三块第一级父控件
@@ -32,16 +34,12 @@
        /// </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();
@@ -58,7 +56,7 @@
                    action(Send.CurrentDoorLock.IsDoorLockNormallyMode);
                }
            };
            var middle = new FrameLayout
            {
                Y = view.topRowLayout.Bottom,
@@ -68,7 +66,6 @@
            this.AddChidren(middle);
            #endregion
            //是常开模式再去读取
            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
            {
                //进来更新一次
@@ -82,7 +79,6 @@
                        logicId = logic.LogicId;
                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
                    }
                    catch { }
                }
@@ -136,8 +132,8 @@
            ///添加自动化图标的控件
            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",
@@ -227,6 +223,24 @@
                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>
        /// 常开模式开关切换图标界面
@@ -240,8 +254,8 @@
            {
                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)
@@ -285,7 +299,6 @@
                                Send.DelLogic(logicId);
                            }
                            Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
                            _if = false;
                            ModeView();
                        }
                        else
@@ -304,7 +317,7 @@
                    }
                };
                if (logicId != 0)
                {
                    ///显示失效设置时间文本控件
@@ -312,7 +325,7 @@
                    {
                        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,
@@ -331,22 +344,22 @@
                    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"));//小时
@@ -393,8 +406,8 @@
                ///下一级菜单图标控件
                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",
@@ -416,6 +429,7 @@
                    {///再次确认
                        LogicView.TipView.ShowInputTip(true, async (str) =>
                        {///确认发送命令
                            CommonPage.Loading.Start();
                            try
                            {
@@ -429,7 +443,7 @@
                                else
                                {
                                    ///因为有常开模式下才可以创建失效逻辑;
                                    SkipView.GetLogicAll(Send.CurrentDoorLock);//删除之前所有失效逻辑
                                    SkipView.DelAllLogic(Send.CurrentDoorLock);//删除之前所有失效逻辑
                                    var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//添加一条失效逻辑
                                    if (addResult == 0)
                                    {
@@ -444,7 +458,6 @@
                                        logicId = addResult;
                                        timeValue = int.Parse(str);
                                        Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
                                        _if = false;
                                        ModeView();
                                        ///添加APP开启常开模式的历史记录
                                        UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
@@ -549,6 +562,7 @@
            {
                if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
                {
                    ///不是该门锁自动化就不显示出来;
                    continue;
                }
                #region  自动化布局View
@@ -577,7 +591,7 @@
                    selectedRow = logicRow;
                };
                a++;
                ///显示逻辑名称的控件
                ///显示逻辑名称的控件
                var nameBtn = new Button
                {
                    Height = Application.GetRealHeight(58),
@@ -593,8 +607,8 @@
                ///显示目标功能背景颜色的控件
                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),
@@ -604,16 +618,16 @@
                ///显示目标功能图标的控件
                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),
@@ -693,23 +707,26 @@
                ///删除点击事件
                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));
@@ -717,6 +734,7 @@
            TimeSpan toNow = new TimeSpan(lTime);
            DateTime dtResult = dtStart.Add(toNow);
            return dtResult;
        }
    }
}