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 |  640 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 436 insertions(+), 204 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
index 57a5a58..fbcce00 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -8,23 +8,55 @@
 {
     public class SoneLogicList : FrameLayout
     {
+        public static SoneLogicList soneLogicList;
         public SoneLogicList()
         {
             Tag = "SoneLogic";
+            soneLogicList = this;
+
         }
+        /// 缁欏緪姊呭埛鏂扮晫闈㈢敤鐨�
+        public Action<bool> action;
+        // 鍒锋柊涓婃姤鐣岄潰鐨凙ction
+        public Action<string, bool> updateCurrentDoorlockActionTemp;
+        ///绗簩鍧楃涓�绾х埗鎺т欢
+        FrameLayout fLayout = new FrameLayout();
+        ///绗笁鍧楃涓�绾х埗鎺т欢
+        FrameLayout listLogicFl = new FrameLayout();
+        ///甯稿紑鑷姩鍖栧垪琛ㄤ笂涓嬫粦鍔ㄧ殑鎺т欢
+        VerticalRefreshLayout verticalRefresh = new VerticalRefreshLayout();
+        /// <summary>
+        /// 璁板綍閫昏緫id
+        /// </summary>
+        public int logicId = 0;
+        /// <summary>
+        /// 璁板綍閫変腑鏃堕棿
+        /// </summary>
+        public int timeValue = 0;
+        /// <summary>
+        /// 璁板綍鏃堕棿鎴�
+        /// </summary>
+        public int timeLong = 0;
         public async void Show()
         {
+            
             #region  鐣岄潰鐨勫竷灞�浠g爜
             UserView.HomePage.Instance.ScrollEnabled = false;//閿佷綇宸︽粦
             TopView view = new TopView();
             this.AddChidren(view.TopRowView());
-            view.toptitleNameBtn.TextID = MyInternationalizationString.selection;
+            view.toptitleNameBtn.TextID = MyInternationalizationString.openmode;
             view.clickBtn.MouseDownEventHandler += (sender, e) =>
             {
                 UserView.HomePage.Instance.ScrollEnabled = true;
-                RemoveFromParent();
+                //鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
+                soneLogicList = null;
+                this.RemoveFromParent();
+                if (action != null)
+                {
+                    action(Send.CurrentDoorLock.IsDoorLockNormallyMode);
+                }
             };
-
+            
             var middle = new FrameLayout
             {
                 Y = view.topRowLayout.Bottom,
@@ -33,164 +65,39 @@
             };
             this.AddChidren(middle);
             #endregion
+            //鏄父寮�妯″紡鍐嶅幓璇诲彇
+            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
+            {
+                //杩涙潵鏇存柊涓�娆�
+                //鏌ユ壘鏄惁瀛樺湪鏃舵晥鎬ц嚜鍔ㄥ寲锛涙湁鐨勮瘽灏辫繑鍥炶嚜鍔ㄥ寲瀵硅薄;
+                var logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock);
+                if (logic != null)
+                {
+                    try
+                    {
+                        //杩涙潵鏇存柊涓�娆″��
+                        logicId = logic.LogicId;
+                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
+                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
+                    }
+                    catch { }
+                }
+            }
 
             #region  甯稿紑妯″紡鍥炬爣 鏃舵晥鎬у父寮�璁剧疆
             ///绗簩鍧楃涓�绾х埗鎺т欢
-            var fLayout = new FrameLayout
+            fLayout = new FrameLayout
             {
                 Width = Application.GetRealWidth(1080),
                 Height = Application.GetRealHeight(829 - 184),
                 BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
             };
             middle.AddChidren(fLayout);
-            ///甯稿紑妯″紡鍥炬爣
-            var modeIconBtn = new Button
-            {
-                X = Application.GetRealWidth(395),
-                Y = Application.GetRealHeight(92),
-                Width = Application.GetMinRealAverage(294),
-                Height = Application.GetMinRealAverage(294),
-                UnSelectedImagePath = "ZigeeLogic/noMode.png",
-                SelectedImagePath = "ZigeeLogic/openMode.png",
-            };
-            fLayout.AddChidren(modeIconBtn);
-            var logic = await SkipView.GetLogicIfon();
-            if (logic != null)
-            {
-
-
-                fLayout.Height = Application.GetRealHeight(780);//鏀瑰彉楂樺害
-                modeIconBtn.IsSelected = true;//鏀瑰彉鍥炬爣鐘舵��
-                ///绗簩绾х埗鎺т欢
-                var openModeFl = new FrameLayout
-                {
-                    Y = Application.GetRealHeight(455),
-                    Height = Application.GetRealHeight(127 + 199),
-                    Width = Application.GetRealWidth(1080),
-                };
-                fLayout.AddChidren(openModeFl);
-                ///鍏抽棴鏃舵晥鎬ц嚜鍔ㄥ寲
-                Button closeBtn = new Button
-                {
-                    X = Application.GetRealWidth(86),
-                    Height = Application.GetRealHeight(127),
-                    Width = Application.GetRealWidth(907),
-                    Radius = (uint)Application.GetRealHeight(58),
-                    BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
-                    TextID = MyInternationalizationString.closeUp,
-                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
-                    TextSize = 16,
-                };
-                openModeFl.AddChidren(closeBtn);
-                closeBtn.MouseUpEventHandler += (sender,e) => {
-                    
-
-                    var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm,
-                   Language.StringByID(MyInternationalizationString.doyouwanttodelete),
-                   Language.StringByID(MyInternationalizationString.confrim));
-                    alert.Show();
-                    alert.ConfirmClickEvent += () =>
-                    {
-                        Send.DelLogic(logic.LogicId);
-                        this.RemoveFromParent();
-                        var soneLogicList = new SoneLogicList();
-                        UserView.HomePage.Instance.AddChidren(soneLogicList);
-                        UserView.HomePage.Instance.PageIndex += 1;
-                        soneLogicList.Show();
-                    };
-                };
-
-                ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
-                var timeTextBtn= new Button
-                {
-                    Y = Application.GetRealHeight(127 + 69),
-                    X = Application.GetRealWidth(225),
-                    Width = Application.GetRealWidth(634),
-                    Height = Application.GetRealHeight(60),
-                    TextSize = 15,
-                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                    Text = "鏃舵晥鎬у父寮�璁剧疆12:20",
-                };
-                openModeFl.AddChidren(timeTextBtn);
-                ///鏃舵晥鎬у父寮�鍙湁涓�涓潯浠�;
-                try
-                {
-                    var y = DateTime.Now.ToString("yy");//閭d竴骞�
-                    var m = DateTime.Now.ToString("mm");//閭d竴鏈�
-                    var d = DateTime.Now.ToString("dd");//閭d竴澶�
-                    var h =int.Parse(DateTime.Now.ToString("HH"));//褰撳墠绯荤粺鏃堕棿
-                    var me = DateTime.Now.ToLongDateString();
-                    var timeInt = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
-                    int dayInt = (h + timeInt)/ 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
-                    int hour = (h + timeInt) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
-                    timeTextBtn.Text = "鏃舵晥鎬у父寮�璁剧疆" + y + "骞�" + m + "鏈�" + d + dayInt + "鍙�" + timeInt + "鏃�"+ "鎵ц";
-                }
-                catch { }
-
-            }
-            else
-            {
-                fLayout.Height = Application.GetRealHeight(645);//鏀瑰彉楂樺害
-                modeIconBtn.IsSelected = false;//鏀瑰彉鍥炬爣鐘舵��
-                ///绗簩绾х埗鎺т欢
-                var modeFl = new FrameLayout
-                {
-                    Y = Application.GetRealHeight(478),
-                    X = Application.GetRealWidth(58),
-                    Height = Application.GetRealHeight(138),
-                    Width = Application.GetRealWidth(1022),
-                    BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
-                };
-                fLayout.AddChidren(modeFl);
-                modeFl.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
-                modeFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
-                ///鏃舵晥鎬у父寮�璁剧疆鏄剧ず鏂囨湰鎺т欢
-                var modeTextBtn = new Button
-                {
-
-                    Y = Application.GetRealHeight(40),
-                    X = Application.GetRealWidth(58),
-                    Width = Application.GetRealWidth(600),
-                    Height = Application.GetRealHeight(60),
-                    TextSize = 15,
-                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                    TextAlignment = TextAlignment.CenterLeft,
-                   // Text = "鏃舵晥鎬у父寮�璁剧疆",
-                    TextID=MyInternationalizationString.timeSetSone,
-                };
-                modeFl.AddChidren(modeTextBtn);
-                ///涓嬩竴绾ц彍鍗曞浘鏍囨帶浠�
-                var nextIconBtn = new Button
-                {
-                    Width = Application.GetMinRealAverage(104),
-                    Height = Application.GetMinRealAverage(104),
-                    X = Application.GetRealWidth(861),
-                    Y = Application.GetRealHeight(17),
-                    UnSelectedImagePath = "ZigeeLogic/next.png",
-                };
-                modeFl.AddChidren(nextIconBtn);
-
-                var clickBtn = new Button
-                {
-                    Y = Application.GetRealHeight(478),
-                    X = Application.GetRealWidth(58),
-                    Height = Application.GetRealHeight(138),
-                    Width = Application.GetRealWidth(1022),
-                };
-                modeFl.AddChidren(clickBtn);
-
-
-                clickBtn.MouseUpEventHandler += async (sender, e) =>
-                {
-                    var d = await SkipView.LockAddModifyLogic(12, Send.CurrentDoorLock);
-                };
-            }
-
             #endregion
 
             #region 甯稿紑鑷姩鍖�
             ///绗笁鍧楃涓�绾х埗鎺т欢
-            var listLogicFl = new FrameLayout
+            listLogicFl = new FrameLayout
             {
                 Y = fLayout.Bottom,
                 X = Application.GetRealWidth(58),
@@ -200,7 +107,7 @@
             };
             middle.AddChidren(listLogicFl);
             listLogicFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
-
+            ModeView();
             ///娣诲姞甯稿紑鑷姩鍖栫殑鐖舵帶浠�
             var addLogicfL = new FrameLayout
             {
@@ -225,16 +132,25 @@
             ///娣诲姞鑷姩鍖栧浘鏍囩殑鎺т欢
             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",
             };
             addLogicfL.AddChidren(addIconBtn);
-            addIconBtn.MouseUpEventHandler += (sender, e) =>
+            ///鍔犲ぇ鐐瑰嚮鐑敭
+            var addIconclickBtn = new Button
             {
-               
+                Width = Application.GetRealWidth(90 + 69 + 63),
+                Height = Application.GetRealHeight(69),
+                X = Application.GetRealWidth(800),
+                Y = Application.GetRealHeight(60),
+            };
+            addLogicfL.AddChidren(addIconclickBtn);
+            addIconclickBtn.MouseUpEventHandler += (sender, e) =>
+            {
+
                 //璇诲彇绯荤粺褰撳墠鏃堕棿锛氭椂-鍒�
                 //璇诲彇绯荤粺褰撳墠鏃堕棿锛氭椂-鍒�
                 var h = DateTime.Now.ToString("HH");
@@ -254,6 +170,10 @@
                 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");
+                accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
+                accounts.Add("Option2", Send.CurrentDoorLock.DeviceEpoint.ToString());
                 //new涓�涓柊閫昏緫瀵硅薄锛�
                 //鏂板闂ㄩ攣甯稿紑妯″紡鑷姩鍖栧叆鍙o紱
                 Common.Logic.CurrentLogic = new Common.Logic();
@@ -262,6 +182,7 @@
                 Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.openmode);
                 Common.Logic.CurrentLogic.Conditions.Add(timeConditionsInfo);//娣诲姞鏉′欢
                 Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
+                Common.Logic.CurrentLogic.Accounts.Add(accounts);
                 var oneLogic = new OneLogic();
                 UserView.HomePage.Instance.AddChidren(oneLogic);
                 UserView.HomePage.Instance.PageIndex += 1;
@@ -270,7 +191,7 @@
             };
 
             ///甯稿紑鑷姩鍖栧垪琛ㄤ笂涓嬫粦鍔ㄧ殑鎺т欢
-            var verticalRefresh = new VerticalRefreshLayout
+            verticalRefresh = new VerticalRefreshLayout
             {
 
                 Y = addLogicfL.Bottom,
@@ -282,22 +203,308 @@
             verticalRefresh.BeginHeaderRefreshingAction += () =>
             {
                 Common.Logic.SoneLogicList.Clear();
-                Read(verticalRefresh, false);
+                Read(false);
                 verticalRefresh.EndHeaderRefreshing();
             };
-            Read(verticalRefresh, true);
+            Read(true);
             #endregion
+
+            UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = (_bool) =>
+            {
+
+                try
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        Send.CurrentDoorLock.IsDoorLockNormallyMode = _bool;
+                        ModeView();
+                    });
+                }
+                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>
+        /// 甯稿紑妯″紡寮�鍏冲垏鎹㈠浘鏍囩晫闈�
+        /// </summary>
+        public void ModeView()
+        {
+
+            fLayout.RemoveAll();
+            ///甯稿紑妯″紡鍥炬爣
+            Button modeIconBtn = new Button
+            {
+                X = Application.GetRealWidth(395),
+                Y = Application.GetRealHeight(92),
+                Width = Application.GetRealWidth(294),
+                Height = Application.GetRealWidth(294),
+            };
+            fLayout.AddChidren(modeIconBtn);
+            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
+            {
+
+                fLayout.Height = Application.GetRealHeight(780);//鏀瑰彉楂樺害
+                modeIconBtn.UnSelectedImagePath = "ZigeeLogic/openMode.png";//鏀瑰彉鍥炬爣鐘舵��
+                ///绗簩绾х埗鎺т欢
+                var openModeFl = new FrameLayout
+                {
+                    Y = Application.GetRealHeight(455),
+                    Height = Application.GetRealHeight(127 + 199),
+                    Width = Application.GetRealWidth(1080),
+                };
+                fLayout.AddChidren(openModeFl);
+                ///鍏抽棴鏃舵晥鎬ц嚜鍔ㄥ寲
+                Button closeBtn = new Button
+                {
+                    X = Application.GetRealWidth(86),
+                    Height = Application.GetRealHeight(127),
+                    Width = Application.GetRealWidth(907),
+                    Radius = (uint)Application.GetRealHeight(58),
+                    BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
+                    TextID = MyInternationalizationString.closeUp,
+                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                    TextSize = 16,
+                };
+                openModeFl.AddChidren(closeBtn);
+                closeBtn.MouseUpEventHandler += async (sender, e) =>
+                {
+                    CommonPage.Loading.Start();
+                    try
+                    {
+                        var result = await UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
+                        if (result)
+                        {
+                            if (logicId != 0)
+                            {
+
+                                ///鏈夊彲鑳藉彧鏈夊父寮�妯″紡锛屾病鏈夋椂鏁堟�ц嚜鍔ㄥ寲
+                                Send.DelLogic(logicId);
+                            }
+                            Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
+                            ModeView();
+                        }
+                        else
+                        {
+                            LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.closeFailed));
+                        }
+                    }
+                    catch { }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            CommonPage.Loading.Hide();
+
+                        });
+                    }
+                };
+
+
+                if (logicId != 0)
+                {
+                    ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
+                    var timeTextBtn = new Button
+                    {
+                        Y = Application.GetRealHeight(127 + 69),
+                        X = Application.GetRealWidth(80),//125
+                        Width = Application.GetRealWidth(907 + 12),//634 + 200
+                        Height = Application.GetRealHeight(60),
+                        TextSize = 15,
+                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    };
+                    openModeFl.AddChidren(timeTextBtn);
+
+                    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.hour1);
+                    string text6 = Language.StringByID(MyInternationalizationString.executeSone);
+                    string year = "";
+                    string month = "";
+                    int days = 0;
+                    int hour = 0;
+                    int minute = 0;
+
+                    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"));//灏忔椂
+                        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竴澶�
+                        var h = int.Parse(DateTime.Now.ToString("HH"));//灏忔椂
+                        int dayInt = (h + timeValue) / 24;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭24灏忔椂
+                        hour = (h + timeValue) % 24;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭24灏忔椂鍓╀笅澶氬皯灏忔椂
+                        days = int.Parse(d) + dayInt;//褰撳墠绯荤粺澶╂暟+鎵ц鍚庡ぉ鏁�
+                        minute = DateTime.Now.Minute;//鍒嗛挓
+                    }
+                    timeTextBtn.Text = text1 + year + text2 + month + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
+                }
+
+
+            }
+            else
+            {
+                fLayout.Height = Application.GetRealHeight(645);//鏀瑰彉楂樺害
+                modeIconBtn.UnSelectedImagePath = "ZigeeLogic/noMode.png";//鏀瑰彉鍥炬爣鐘舵��
+                ///绗簩绾х埗鎺т欢
+                var modeFl = new FrameLayout
+                {
+                    Y = Application.GetRealHeight(478),
+                    X = Application.GetRealWidth(58),
+                    Height = Application.GetRealHeight(138),
+                    Width = Application.GetRealWidth(1022),
+                    BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                };
+                fLayout.AddChidren(modeFl);
+                modeFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+                ///鏃舵晥鎬у父寮�璁剧疆鏄剧ず鏂囨湰鎺т欢
+                var modeTextBtn = new Button
+                {
+
+                    Y = Application.GetRealHeight(40),
+                    X = Application.GetRealWidth(58),
+                    Width = Application.GetRealWidth(600),
+                    Height = Application.GetRealHeight(60),
+                    TextSize = 15,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    // Text = "鏃舵晥鎬у父寮�璁剧疆",
+                    TextID = MyInternationalizationString.timeSetSone,
+                };
+                modeFl.AddChidren(modeTextBtn);
+                ///涓嬩竴绾ц彍鍗曞浘鏍囨帶浠�
+                var nextIconBtn = new Button
+                {
+                    Width = Application.GetRealWidth(104),
+                    Height = Application.GetRealWidth(104),
+                    X = Application.GetRealWidth(861),
+                    Y = Application.GetRealHeight(17),
+                    UnSelectedImagePath = "ZigeeLogic/nextIconSone.png",
+                };
+                modeFl.AddChidren(nextIconBtn);
+
+                ///鍔犲ぇ鐐瑰嚮鐑敭
+                var clickBtn = new Button
+                {
+                    Width = Application.GetRealWidth(104 + 161 + 30),
+                    Height = Application.GetRealHeight(138),
+                    X = Application.GetRealWidth(700),
+                };
+                modeFl.AddChidren(clickBtn);
+                clickBtn.MouseUpEventHandler += (sender, e) =>
+                {
+
+                    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.DelAllLogic(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);
+                                    }
+
+
+                                }
+                            }
+                            catch
+                            {
+
+                            }
+                            finally
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    CommonPage.Loading.Hide();
+
+                                });
+                            }
+                        });
+
+                    });
+
+                };
+            }
+            listLogicFl.Y = fLayout.Bottom;
+            listLogicFl.X = Application.GetRealWidth(58);
+            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="verticalRefresh"></param>
-        private async void Read(VerticalRefreshLayout verticalRefresh, bool yes)
+        /// <param name="yes"></param>
+        private async void Read(bool yes)
         {
-            if (yes)
-            {
-                CommonPage.Loading.Start();
-            }
+            //if (yes)
+            // {
+            CommonPage.Loading.Start();
+            // }
             try
             {
                 if (Common.Logic.SoneLogicList.Count == 0)
@@ -313,7 +520,10 @@
                             {
                                 continue;
                             }
-                            Common.Logic.SoneLogicList.Add(logic);
+                            if (SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+                            {
+                                Common.Logic.SoneLogicList.Add(logic);
+                            }
                         }
                     }
                 }
@@ -322,54 +532,66 @@
             {
                 var dd = e.Message;
             }
-            //鑷姩鍖�
-            RefreshView(verticalRefresh);
-            if (yes)
+            finally
             {
-                CommonPage.Loading.Hide();
+                Application.RunOnMainThread(() =>
+                {
+                    // if (yes)
+                    // {
+                    CommonPage.Loading.Hide();
+                    // }
+                    //鑷姩鍖�
+                    RefreshView();
 
+                });
             }
+
         }
+        /// <summary>
+        /// 璁板綍宸︽粦鐘舵��
+        /// </summary>
+        RowLayout selectedRow = new RowLayout() { Tag = "0" };
+        int a = 1;
         /// <summary>
         /// 鍔犺浇鑷姩鍖栧垪琛�
         /// </summary>
-        /// <param name="verticalRefresh"></param>
-        private void RefreshView(VerticalRefreshLayout verticalRefresh)
+        public void RefreshView()
         {
             verticalRefresh.RemoveAll();
-            for (int i = 0; i < 6; i++)
-            {
-                Common.Logic.SoneLogicList.Add(new Common.Logic { LogicName = i.ToString() });
-
-            }
             foreach (var logic in Common.Logic.SoneLogicList)
             {
+                if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+                {
+                    ///涓嶆槸璇ラ棬閿佽嚜鍔ㄥ寲灏变笉鏄剧ず鍑烘潵;
+                    continue;
+                }
                 #region  鑷姩鍖栧竷灞�View
-
                 ///鑷姩鍖栫埗鎺т欢
-                var fLayout = new FrameLayout
+                var fLayoutLogic = new FrameLayout
                 {
                     Height = Application.GetRealHeight(184),
                 };
-                verticalRefresh.AddChidren(fLayout);
+                verticalRefresh.AddChidren(fLayoutLogic);
                 ///宸﹀彸鍙粦鍔ㄦ帶浠�
                 var logicRow = new RowLayout
                 {
                     LineColor = ZigbeeColor.Current.LogicBackgroundColor,
                     BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
                     SubViewWidth = Application.GetRealWidth(184),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
+                    Tag = a.ToString(),
                 };
-                fLayout.AddChidren(logicRow);
+                fLayoutLogic.AddChidren(logicRow);
                 //宸︽粦鑿滃崟浜嬩欢
                 logicRow.OpenMenuAction += () =>
                 {
-                    //if (selectedRow.Tag.ToString() != logicRowlayout.Tag.ToString())
-                    //{   //淇濈暀宸︽粦鍙湁涓�涓�;
-                    //    selectedRow.HideMenu();//
-                    //}
-                    //selectedRow = logicRowlayout;
+                    if (selectedRow.Tag.ToString() != logicRow.Tag.ToString())
+                    {   //淇濈暀宸︽粦鍙湁涓�涓�;
+                        selectedRow.HideMenu();//
+                    }
+                    selectedRow = logicRow;
                 };
-                ///鏄剧ず閫昏緫鍚嶇О鐨勬帶浠�
+                a++;
+                ///鏄剧ず閫昏緫鍚嶇О鐨勬帶浠�
                 var nameBtn = new Button
                 {
                     Height = Application.GetRealHeight(58),
@@ -385,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),
@@ -396,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),
@@ -433,10 +655,7 @@
                     TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
                 };
                 logicRow.AddRightView(edit);
-                if (logic.LogicType == 2)
-                {
-                    edit.TextID = MyInternationalizationString.look;
-                }
+
                 ///鍒犻櫎
                 var del = new Button
                 {
@@ -448,12 +667,12 @@
                 ///绾跨殑鎺т欢
                 var line = new Button
                 {
-                    Y = fLayout.Height - 1,
+                    Y = fLayoutLogic.Height - 1,
                     Height = 1,
                     Width = Application.GetRealWidth(976),
                     BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
                 };
-                fLayout.AddChidren(line);
+                fLayoutLogic.AddChidren(line);
                 #endregion
                 ///寮�鍏崇偣鍑讳簨浠�
                 switchBtn.MouseUpEventHandler += (sender1, e1) =>
@@ -469,6 +688,7 @@
                     else
                     {
                         //閫昏緫鍏�
+                        logic.IsEnable = 0;
                         typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png";
                         typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
                     }
@@ -487,21 +707,33 @@
                 ///鍒犻櫎鐐瑰嚮浜嬩欢
                 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();
-                        fLayout.RemoveFromParent();
-                        Send.DelLogic(logic.LogicId);
+                        fLayoutLogic.RemoveFromParent();
+                        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));
+            long lTime = long.Parse(unixTimeStamp + "0000000");
+            TimeSpan toNow = new TimeSpan(lTime);
+            DateTime dtResult = dtStart.Add(toNow);
+            return dtResult;
 
         }
     }

--
Gitblit v1.8.0