From 7dd4be37cdedaf81ad40990d8cb8dce164d83f4d Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 19 五月 2020 10:31:16 +0800
Subject: [PATCH] 34444444

---
 ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs |  196 +++++++++++++++++++++++++++++++------------------
 1 files changed, 124 insertions(+), 72 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
old mode 100644
new mode 100755
index 18a2471..a81b5a1
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/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,17 @@
         /// 璁板綍閫変腑鏃堕棿
         /// </summary>
         public int timeValue = 0;
+        /// <summary>
+        /// 鏍囪鏄剧ず鎵ц鏃ユ湡(鐢ㄧ綉鍏崇殑锛岃繕鏄敤绯荤粺鐨勬椂闂�)
+        /// </summary>
+        public bool _if = false;
+        /// <summary>
+        /// 鏃堕棿鎴�
+        /// </summary>
+        public int timeLong = 0;
         public async void Show()
         {
-           
+
             #region  鐣岄潰鐨勫竷灞�浠g爜
             UserView.HomePage.Instance.ScrollEnabled = false;//閿佷綇宸︽粦
             TopView view = new TopView();
@@ -60,11 +68,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 +81,8 @@
                         //杩涙潵鏇存柊涓�娆″��
                         logicId = logic.LogicId;
                         timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
+                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
+
                     }
                     catch { }
                 }
@@ -86,7 +97,6 @@
                 BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
             };
             middle.AddChidren(fLayout);
-            ModeView();
             #endregion
             #region 甯稿紑鑷姩鍖�
             ///绗笁鍧楃涓�绾х埗鎺т欢
@@ -100,7 +110,7 @@
             };
             middle.AddChidren(listLogicFl);
             listLogicFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
-
+            ModeView();
             ///娣诲姞甯稿紑鑷姩鍖栫殑鐖舵帶浠�
             var addLogicfL = new FrameLayout
             {
@@ -163,8 +173,8 @@
                 actionsInfo.Add("DeviceAddr", Send.CurrentDoorLock.DeviceAddr);
                 actionsInfo.Add("Epoint", "200");
                 actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
-                Dictionary<string, string> accounts = new Dictionary<string, string>();
-                accounts.Add("Type", "8");
+                Dictionary<string, string> accounts = new Dictionary<string, string>();
+                accounts.Add("Type", "8");
                 accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
                 accounts.Add("Option2", Send.CurrentDoorLock.DeviceEpoint.ToString());
                 //new涓�涓柊閫昏緫瀵硅薄锛�
@@ -220,7 +230,7 @@
         /// <summary>
         /// 甯稿紑妯″紡寮�鍏冲垏鎹㈠浘鏍囩晫闈�
         /// </summary>
-        public  void ModeView()
+        public void ModeView()
         {
 
             fLayout.RemoveAll();
@@ -274,6 +284,7 @@
                                 Send.DelLogic(logicId);
                             }
                             Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
+                            _if = false;
                             ModeView();
                         }
                         else
@@ -296,8 +307,8 @@
                 var timeTextBtn = new Button
                 {
                     Y = Application.GetRealHeight(127 + 69),
-                    X = Application.GetRealWidth(125),
-                    Width = Application.GetRealWidth(634 + 200),
+                    X = Application.GetRealWidth(86),//125
+                    Width = Application.GetRealWidth(907),//634 + 200
                     Height = Application.GetRealHeight(60),
                     TextSize = 15,
                     TextColor = ZigbeeColor.Current.LogicTextBlackColor,
@@ -305,20 +316,40 @@
                 if (logicId != 0)
                 {
                     openModeFl.AddChidren(timeTextBtn);
-                    ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
-                    var y = DateTime.Now.Year.ToString();//閭d竴骞�
-                    var m = DateTime.Now.Month.ToString();//閭d竴鏈�
-                    var d = DateTime.Now.ToString("dd");//閭d竴澶�
-                    var h = int.Parse(DateTime.Now.ToString("HH"));//褰撳墠绯荤粺鏃堕棿
-                    int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
-                    int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
-                    int days = int.Parse(d) + dayInt;
                     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);
+                    if (_if)
+                    {
+
+                        ///绗竴娆¤繘鏉ヨ鍙栫綉鍏虫椂闂达紱
+                        var datetime = GetLocalTime(timeLong);
+                        ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
+                        var y = datetime.Year.ToString();//閭d竴骞�
+                        var m = datetime.Month.ToString();//閭d竴鏈�
+                        var d = datetime.ToString("dd");//閭d竴澶�
+                        var h = int.Parse(datetime.ToString("HH"));//灏忔椂                   
+                        int minute = datetime.Minute;//鍒嗛挓
+                        timeTextBtn.Text = text1 + y + text2 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6;
+
+                    }
+                    else
+                    {
+
+                        ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
+                        var y = DateTime.Now.Year.ToString();//閭d竴骞�
+                        var m = DateTime.Now.Month.ToString();//閭d竴鏈�
+                        var d = DateTime.Now.ToString("dd");//閭d竴澶�
+                        var h = int.Parse(DateTime.Now.ToString("HH"));//灏忔椂
+                        int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
+                        int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
+                        int days = int.Parse(d) + dayInt;
+                        int minute = DateTime.Now.Minute;//鍒嗛挓
+                        timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
+                    }
                 }
 
 
@@ -376,59 +407,59 @@
                  {
 
                      LogicView.TipView.ShowConfrimTip(() =>
-
                      {///鍐嶆纭
-                        LogicView.TipView.ShowInputTip(true, async (str) =>
-                         {///纭鍙戦�佸懡浠�
-                            CommonPage.Loading.Start();
-                             try
-                             {
-                                ///xm
-                                var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
-                                 if (!result)
-                                 {
-                                     LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
-                                     return;
-                                 }
-                                 else
-                                 {
-                                    ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
-                                    SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
-                                    var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
-                                    if (addResult == 0)
-                                     {
-                                        ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
-                                        UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
-                                        ///鎻愮ず澶辫触
-                                        LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
-                                         return;
-                                     }
-                                     else
-                                     {
-                                         logicId = addResult;
-                                         timeValue = int.Parse(str);
-                                         Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
-                                         ModeView();
-                                         ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
-                                         UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock,9001,string.Empty);
-                                     }
+                         LogicView.TipView.ShowInputTip(true, async (str) =>
+                          {///纭鍙戦�佸懡浠�
+                              CommonPage.Loading.Start();
+                              try
+                              {
+                                  ///xm
+                                  var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
+                                  if (!result)
+                                  {
+                                      LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
+                                      return;
+                                  }
+                                  else
+                                  {
+                                      ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
+                                      SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
+                                      var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
+                                      if (addResult == 0)
+                                      {
+                                          ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
+                                          UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
+                                          ///鎻愮ず澶辫触
+                                          LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
+                                          return;
+                                      }
+                                      else
+                                      {
+                                          logicId = addResult;
+                                          timeValue = int.Parse(str);
+                                          Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
+                                          _if = false;
+                                          ModeView();
+                                          ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+                                          UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
+                                      }
 
 
-                                 }
-                             }
-                             catch
-                             {
+                                  }
+                              }
+                              catch
+                              {
 
-                             }
-                             finally
-                             {
-                                 Application.RunOnMainThread(() =>
-                                 {
-                                     CommonPage.Loading.Hide();
+                              }
+                              finally
+                              {
+                                  Application.RunOnMainThread(() =>
+                                  {
+                                      CommonPage.Loading.Hide();
 
-                                 });
-                             }
-                         });
+                                  });
+                              }
+                          });
 
                      });
 
@@ -439,12 +470,17 @@
             listLogicFl.Height = Application.GetRealHeight(Method.H - 184) - fLayout.Height;
             listLogicFl.Width = Application.GetRealWidth(1022);
             listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
+
+            verticalRefresh.Y = Application.GetRealHeight(187); 
+            verticalRefresh.X = Application.GetRealWidth(46);
+            verticalRefresh.Height = listLogicFl.Height - Application.GetRealHeight(187);//鍔ㄦ�佹敼鍔ㄤ笂涓嬫粦鍔╲iew楂樺害;
+            verticalRefresh.Width = listLogicFl.Width - Application.GetRealWidth(46);
         }
         /// <summary>
         /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱
         /// </summary>
         /// <param name="yes"></param>
-        private async void Read( bool yes)
+        private async void Read(bool yes)
         {
             if (yes)
             {
@@ -465,7 +501,7 @@
                             {
                                 continue;
                             }
-                            if (SkipView.ExistLogic(logic,Send.CurrentDoorLock))
+                            if (SkipView.ExistLogic(logic, Send.CurrentDoorLock))
                             {
                                 Common.Logic.SoneLogicList.Add(logic);
                             }
@@ -498,6 +534,10 @@
             verticalRefresh.RemoveAll();
             foreach (var logic in Common.Logic.SoneLogicList)
             {
+                if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+                {
+                    continue;
+                }
                 #region  鑷姩鍖栧竷灞�View
                 ///鑷姩鍖栫埗鎺т欢
                 var fLayoutLogic = new FrameLayout
@@ -588,7 +628,7 @@
                     TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
                 };
                 logicRow.AddRightView(edit);
-               
+
                 ///鍒犻櫎
                 var del = new Button
                 {
@@ -621,6 +661,7 @@
                     else
                     {
                         //閫昏緫鍏�
+                        logic.IsEnable = 0;
                         typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png";
                         typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
                     }
@@ -654,6 +695,17 @@
                 };
             }
         }
-     
+
+        /// <summary>
+        /// 灏哢NIX鏃堕棿鎴宠浆鎹㈡垚绯荤粺鏃堕棿(绮剧‘鍒扮)
+        /// <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;
+        }
     }
 }

--
Gitblit v1.8.0