From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码

---
 ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs |  133 +++++++++++++++++++++++--------------------
 1 files changed, 71 insertions(+), 62 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
index ca7438c..fbcce00 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -17,6 +17,8 @@
         }
         /// 缁欏緪姊呭埛鏂扮晫闈㈢敤鐨�
         public Action<bool> action;
+        // 鍒锋柊涓婃姤鐣岄潰鐨凙ction
+        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 long timeLong = 0;
+        public int timeLong = 0;
         public async void Show()
         {
-
+            
             #region  鐣岄潰鐨勫竷灞�浠g爜
             UserView.HomePage.Instance.ScrollEnabled = false;//閿佷綇宸︽粦
             TopView view = new TopView();
@@ -49,7 +47,7 @@
             view.toptitleNameBtn.TextID = MyInternationalizationString.openmode;
             view.clickBtn.MouseDownEventHandler += (sender, e) =>
             {
-                UserView.HomePage.Instance.ScrollEnabled = true;
+                UserView.HomePage.Instance.ScrollEnabled = true;
                 //鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
                 soneLogicList = null;
                 this.RemoveFromParent();
@@ -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)
             {
                 //杩涙潵鏇存柊涓�娆�
@@ -79,10 +76,9 @@
                     try
                     {
                         //杩涙潵鏇存柊涓�娆″��
-                        logicId = logic.LogicId;
+                        logicId = logic.LogicId;
                         timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
-                        timeLong = long.Parse(logic.Conditions[0]["TriggerTime"]);
-
+                        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",
@@ -173,10 +169,10 @@
                 actionsInfo.Add("LinkType", 8);
                 actionsInfo.Add("DeviceAddr", Send.CurrentDoorLock.DeviceAddr);
                 actionsInfo.Add("Epoint", "200");
-                actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
-                Dictionary<string, string> accounts = new Dictionary<string, string>();
+                actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
+                Dictionary<string, string> accounts = new Dictionary<string, string>();
                 accounts.Add("Type", "8");
-                accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
+                accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
                 accounts.Add("Option2", Send.CurrentDoorLock.DeviceEpoint.ToString());
                 //new涓�涓柊閫昏緫瀵硅薄锛�
                 //鏂板闂ㄩ攣甯稿紑妯″紡鑷姩鍖栧叆鍙o紱
@@ -185,7 +181,7 @@
                 Common.Logic.CurrentLogic.LogicType = 2;//鏍囪閫昏緫绫诲瀷
                 Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.openmode);
                 Common.Logic.CurrentLogic.Conditions.Add(timeConditionsInfo);//娣诲姞鏉′欢
-                Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
+                Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
                 Common.Logic.CurrentLogic.Accounts.Add(accounts);
                 var oneLogic = new OneLogic();
                 UserView.HomePage.Instance.AddChidren(oneLogic);
@@ -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,21 @@
                     int hour = 0;
                     int minute = 0;
 
-                    if (_if)
+                    if (timeLong != 0)
                     {
-                        ///绗竴娆¤繘鏉ヨ鍙栫綉鍏虫椂闂达紱
+                        ///璇诲彇缃戝叧鏃堕棿锛�
                         var datetime = GetLocalTime(timeLong);
                         ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
                         year = datetime.Year.ToString();//閭d竴骞�
                         month = datetime.Month.ToString();//閭d竴鏈�
                         days = int.Parse(datetime.ToString("dd"));//閭d竴澶�
-                        hour = int.Parse(datetime.ToString("HH"));//灏忔椂                   
+                        hour = int.Parse(datetime.ToString("HH"));//灏忔椂
                         minute = datetime.Minute;//鍒嗛挓
+                        timeLong = 0;
                     }
                     else
                     {
-
-
-                        ///鍦ㄥ綋鍓嶇晫闈㈢紪杈戞樉绀虹郴缁熸椂闂�(涓嶈兘姣忎竴娆$紪杈戦兘鍘荤綉鍏虫嬁鏁版嵁)
+                        ///璇诲彇绯荤粺鏃堕棿
                         year = DateTime.Now.Year.ToString();//閭d竴骞�
                         month = DateTime.Now.Month.ToString();//閭d竴鏈�
                         var d = DateTime.Now.ToString("dd");//閭d竴澶�
@@ -394,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",
@@ -417,6 +429,7 @@
                     {///鍐嶆纭
                         LogicView.TipView.ShowInputTip(true, async (str) =>
                         {///纭鍙戦�佸懡浠�
+
                             CommonPage.Loading.Start();
                             try
                             {
@@ -430,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)
                                     {
@@ -445,9 +458,8 @@
                                         logicId = addResult;
                                         timeValue = int.Parse(str);
                                         Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
-                                        _if = false;
-                                        ModeView();
-                                        ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+                                        ModeView();
+                                        ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
                                         UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
                                     }
 
@@ -507,10 +519,10 @@
                             if (logic.LogicType != 2)
                             {
                                 continue;
-                            }
-                            if (SkipView.ExistLogic(logic, Send.CurrentDoorLock))
-                            {
-                                Common.Logic.SoneLogicList.Add(logic);
+                            }
+                            if (SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+                            {
+                                Common.Logic.SoneLogicList.Add(logic);
                             }
                         }
                     }
@@ -579,7 +591,7 @@
                     selectedRow = logicRow;
                 };
                 a++;
-                ///鏄剧ず閫昏緫鍚嶇О鐨勬帶浠�
+                ///鏄剧ず閫昏緫鍚嶇О鐨勬帶浠�
                 var nameBtn = new Button
                 {
                     Height = Application.GetRealHeight(58),
@@ -595,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),
@@ -606,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),
@@ -695,19 +707,19 @@
                 ///鍒犻櫎鐐瑰嚮浜嬩欢
                 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>
@@ -715,16 +727,13 @@
         /// </summary>
         /// <param name="unixTimeStamp">鏃堕棿鎴�</param>
         /// <returns></returns>
-        public DateTime GetLocalTime(long unixTimeStamp)
+        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;
-
-            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
-            return startTime.AddMilliseconds(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