陈嘉乐
2020-05-18 796c8eef0f690d0d04e14db1ecd3d365ed604017
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -16,7 +16,7 @@
        }
        /// 给徐梅刷新界面用的
        public  Action<bool> action;
        public Action<bool> action;
        ///第二块第一级父控件
        FrameLayout fLayout = new FrameLayout();
        ///第三块第一级父控件
@@ -31,9 +31,14 @@
        /// 记录选中时间
        /// </summary>
        public int timeValue = 0;
        /// <summary>
        /// 时间戳
        /// </summary>
        public int timeLong = 0;
        public async void Show()
        {
            #region  界面的布局代码
            UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑
            TopView view = new TopView();
@@ -60,11 +65,12 @@
            this.AddChidren(middle);
            #endregion
            //是常开模式再去读取
            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
            {
                //进来更新一次
                //查找是否存在时效性自动化;有的话就返回自动化对象;
              var  logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock);
                var logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock);
                if (logic != null)
                {
                    try
@@ -72,6 +78,8 @@
                        //进来更新一次值
                        logicId = logic.LogicId;
                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
                    }
                    catch { }
                }
@@ -220,7 +228,7 @@
        /// <summary>
        /// 常开模式开关切换图标界面
        /// </summary>
        public  void ModeView()
        public void ModeView()
        {
            fLayout.RemoveAll();
@@ -305,20 +313,24 @@
                if (logicId != 0)
                {
                    openModeFl.AddChidren(timeTextBtn);
                    var datetime = GetLocalTime(timeLong);
                    ///有时效性常开才显示时间条件文本
                    var y = DateTime.Now.Year.ToString();//那一年
                    var m = DateTime.Now.Month.ToString();//那一月
                    var d = DateTime.Now.ToString("dd");//那一天
                    var h = int.Parse(DateTime.Now.ToString("HH"));//当前系统时间
                    int dayInt = (h + timeValue) / 24;//算出几天后执行
                    int hour = (h + timeValue) % 24;//算出几天后那个时间执行
                    int days = int.Parse(d) + dayInt;
                    var y = datetime.Year.ToString();//那一年
                    var m = datetime.Month.ToString();//那一月
                    var d = datetime.ToString("dd");//那一天
                    var h = int.Parse(datetime.ToString("HH"));//小时
                                                               // int dayInt = (h + timeValue) / 24;//算出几天后执行
                                                               // int hour = (h + timeValue) % 24;//算出几天后那个时间执行
                                                               // int days = int.Parse(d) + dayInt;
                    int minute = datetime.Minute;//分钟
                    string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
                    string text2 = Language.StringByID(MyInternationalizationString.yearSone);
                    string text3 = Language.StringByID(MyInternationalizationString.monthSone);
                    string text4 = Language.StringByID(MyInternationalizationString.numberSone);
                    string text5 = Language.StringByID(MyInternationalizationString.executeSone);
                    timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5;
                    string text5 = Language.StringByID(MyInternationalizationString.hour1);
                    string text6 = Language.StringByID(MyInternationalizationString.executeSone);
                    // timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
                    timeTextBtn.Text = text1 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6;
                }
@@ -443,7 +455,7 @@
        /// 读取自动化列表数据;
        /// </summary>
        /// <param name="yes"></param>
        private async void Read( bool yes)
        private async void Read(bool yes)
        {
            if (yes)
            {
@@ -497,6 +509,10 @@
            verticalRefresh.RemoveAll();
            foreach (var logic in Common.Logic.SoneLogicList)
            {
                if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
                {
                    continue;
                }
                #region  自动化布局View
                ///自动化父控件
                var fLayoutLogic = new FrameLayout
@@ -587,7 +603,7 @@
                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
                };
                logicRow.AddRightView(edit);
                ///删除
                var del = new Button
                {
@@ -620,6 +636,7 @@
                    else
                    {
                        //逻辑关
                        logic.IsEnable = 0;
                        typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png";
                        typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
                    }
@@ -653,6 +670,17 @@
                };
            }
        }
        /// <summary>
        /// 将UNIX时间戳转换成系统时间(精确到秒)
        /// <returns></returns>
        public DateTime GetLocalTime(int unixTimeStamp)
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime = long.Parse(unixTimeStamp + "0000000");
            TimeSpan toNow = new TimeSpan(lTime);
            DateTime dtResult = dtStart.Add(toNow);
            return dtResult;
        }
    }
}