From cbc156bc38d8b8eae7aef60cb186ab2b52fa701f Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期二, 16 七月 2024 13:59:56 +0800
Subject: [PATCH] 增加全部挂断

---
 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs |  331 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 240 insertions(+), 91 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
index 6e73d35..d86a322 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
@@ -6,6 +6,7 @@
 using HDL_ON.Entity;
 using HDL_ON.DriverLayer;
 using HDL_ON.UI.Music;
+using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
 
 namespace HDL_ON.UI
 {
@@ -40,6 +41,10 @@
         /// </summary>
         private Button btnCurrDeviceRoom;
         /// <summary>
+        /// 鐢甸噺鐖舵帶浠�
+        /// </summary>
+        private FrameLayout cellFrame;
+        /// <summary>
         /// 鐢甸噺
         /// </summary>
         private Button btnCell;
@@ -55,6 +60,7 @@
         /// 闂ㄩ攣鐘舵��
         /// </summary>
         private Button btnDoorLockIcon;
+            Button btnDoorlockStatus;
         /// <summary>
         /// 瀹炴椂瑙嗛
         /// </summary>
@@ -71,7 +77,7 @@
         /// <summary>
         /// 琛ㄧず鏉ヨ嚜閭d釜鐣岄潰
         /// </summary>
-        private Comerom Comerom;
+        private CommonMethod.Comerom comerom;
         /// <summary>
         /// 鍒犻櫎璁惧鍚庨渶瑕佹洿鏂扮晫闈㈢殑鍥炶皟
         /// </summary>
@@ -83,14 +89,14 @@
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="function">璁惧</param>
-        /// <param name="btnDeviceName">涓婁竴绾х晫闈㈢殑璁惧鍚嶅瓧鎺т欢</param>
-        /// <param name="btnRoomName">涓婁竴绾х晫闈㈢殑鎴块棿鍚嶅瓧鎺т欢</param> 
-        public VideoDoorLockPage(Function function, Button btnDeviceName, Button btnRoomName, Comerom comerom, Action action)
+        /// <param name="btnDeviceName">涓婁竴绾х晫闈㈢殑璁惧鍚嶅瓧鎺т欢(娉�:涓嶈兘浼爊ull,娌℃湁鍙互浼爊ew Button())</param>
+        /// <param name="btnRoomName">涓婁竴绾х晫闈㈢殑鎴块棿鍚嶅瓧鎺т欢(娉�:涓嶈兘浼爊ull,娌℃湁鍙互浼爊ew Button())</param> 
+        public VideoDoorLockPage(Function function, Button btnDeviceName, Button btnRoomName, CommonMethod.Comerom comerom, Action action)
         {
             this.device = function;
             this.btnDeviceName = btnDeviceName;
             this.btnRoomName = btnRoomName;
-            this.Comerom = comerom;
+            this.comerom = comerom;
             this.action = action;
 
         }
@@ -103,8 +109,6 @@
             this.EventListener();
             //璇诲彇鏁版嵁
             this.ReadData();
-
-
 
         }
 
@@ -164,11 +168,7 @@
             };
             whiteFl.AddChidren(btnCurrDeviceName);
 
-            btnCurrDeviceName.Width = btnCurrDeviceName.GetTextWidth();
-            if (btnCurrDeviceName.GetTextWidth() > btnCollectIcon.X)
-            {
-                btnCurrDeviceName.Width = btnCollectIcon.X;
-            }
+
             btnCurrDeviceRoom = new Button
             {
                 TextSize = TextSize.Text12,
@@ -181,9 +181,8 @@
                 TextAlignment = TextAlignment.CenterLeft,
             };
             whiteFl.AddChidren(btnCurrDeviceRoom);
-            btnCurrDeviceRoom.Width = btnCurrDeviceRoom.GetTextWidth();
 
-            var cellFrame = new FrameLayout
+            cellFrame = new FrameLayout
             {
                 X = btnCurrDeviceRoom.Right + Application.GetRealWidth(20),
                 Y = btnCurrDeviceName.Bottom + Application.GetRealHeight(5),
@@ -191,8 +190,6 @@
                 Height = Application.GetRealHeight(16),
             };
             whiteFl.AddChidren(cellFrame);
-
-
 
             cellDiyArcSeekBar = new DiyArcSeekBar
             {
@@ -221,7 +218,12 @@
             cellFrame.AddChidren(btnCell);
 
 
-
+#if __IOS__
+//btnCell.Padding = new Padding(0,0,0,0);
+            btnCell.Width += 5;
+            cellFrame.Width += 5;
+#else
+#endif
 
 
             //闂ㄩ攣鐘舵��
@@ -235,35 +237,80 @@
                 SelectedImagePath = "FunctionIcon/DoorLock/UnLocking.png",
             };
             whiteFl.AddChidren(btnDoorLockIcon);
-            int heightY = btnDoorLockIcon.Bottom + Application.GetRealHeight(70);
+
+            this.CalculatedPosition();//閲嶆柊璁$畻瀹藉害
+
+            btnDoorlockStatus = new Button()
+            {
+                Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(62),
+                Y = btnDoorLockIcon.Bottom,
+                TextAlignment = TextAlignment.Center,
+                Gravity = Gravity.CenterHorizontal,
+                TextID = StringId.DoorlockOpen,
+                TextColor = CSS_Color.WarningColor,
+                TextSize = 16,
+            };
+            whiteFl.AddChidren(btnDoorlockStatus);
+            
+            int heightY = btnDoorLockIcon.Bottom + Application.GetRealHeight(133);
             //瀹炴椂瑙嗛
             rtvFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
             whiteFl.AddChidren(rtvFL);
             rtvFL.Y = heightY;
-            rtvFL.X = Application.GetRealWidth(41);
+            rtvFL.X = Application.GetRealWidth(26);
             rtvFL.AddImageView();
             rtvFL.AddTextButtonView();
             rtvFL.GetImageButton().UnSelectedImagePath = "FunctionIcon/DoorLock/RTV.png";
             rtvFL.GetTextButton().TextID = StringId.shishishipin;
-            //鍘嗗彶璁板綍
-            recordFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
-            whiteFl.AddChidren(recordFL);
-            recordFL.Y = heightY;
-            recordFL.X = rtvFL.Right + Application.GetRealWidth(CustomFrameLayout.interval);
-            recordFL.AddImageView();
-            recordFL.AddTextButtonView();
-            recordFL.GetImageButton().UnSelectedImagePath = "FunctionIcon/DoorLock/HistoryList.png";
-            recordFL.GetTextButton().TextID = StringId.lishijilu;
+            
+            
             //涓存椂瀵嗙爜
             pswFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
             whiteFl.AddChidren(pswFL);
             pswFL.Y = heightY;
-            pswFL.X = recordFL.Right + Application.GetRealWidth(CustomFrameLayout.interval);
+            pswFL.X = rtvFL.Right + Application.GetRealWidth(CustomFrameLayout.interval);
             pswFL.AddImageView();
             pswFL.AddTextButtonView();
             pswFL.GetImageButton().UnSelectedImagePath = "FunctionIcon/DoorLock/OneOpenLock.png";
             pswFL.GetTextButton().TextID = StringId.linshimima1;
+            if (device.omodel.Contains("CS-DL30F-V100"))
+            {
+                rtvFL.Visible = rtvFL.Enable = false;
+                pswFL.X = Application.GetRealWidth(26);
+            }
 
+            //鍘嗗彶璁板綍
+            recordFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
+            whiteFl.AddChidren(recordFL);
+            recordFL.Y = heightY;
+            recordFL.X = pswFL.Right + Application.GetRealWidth(CustomFrameLayout.interval);
+            recordFL.AddImageView();
+            recordFL.AddTextButtonView();
+            recordFL.GetImageButton().UnSelectedImagePath = "FunctionIcon/DoorLock/HistoryList.png";
+            recordFL.GetTextButton().TextID = StringId.lishijilu;
+
+            if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+            {
+                //鐢ㄦ埛绠$悊
+                CustomFrameLayout userManagerView = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
+                whiteFl.AddChidren(userManagerView);
+                userManagerView.Y = heightY;
+                userManagerView.X = recordFL.Right + Application.GetRealWidth(CustomFrameLayout.interval);
+                userManagerView.AddImageView();
+                userManagerView.AddTextButtonView();
+                userManagerView.GetImageButton().UnSelectedImagePath = "FunctionIcon/DoorLock/DoorlockUserManager.png";
+                userManagerView.GetTextButton().TextID = StringId.UserManagement;
+
+                userManagerView.SetClickListener((fl, btnImage, btnText) =>
+                {
+                    var page = new VideoDoorlockUserListPage(device);
+                    MainPage.BasePageView.AddChidren(page);
+                    page.LoadPage();
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+                });
+            }
             #endregion
 
 
@@ -276,45 +323,39 @@
             //杩斿洖
             this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
             {
-                RemoveFromParent();
+                this.RemoveFromParent();
             };
             //璁剧疆
             this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
             {
-                //璋冪敤绉�缁曠殑鐣岄潰
-                var infoView = new UI.FunctionBaseInfoSetPage(this.device, () =>
+                CommonMethod.Current.MainThread(() =>
                 {
+                    //璋冪敤绉�缁曠殑鐣岄潰
+                    var infoView = new UI.FunctionBaseInfoSetPage(this.device, () =>
+                     {
+                         if (this.btnDeviceName == null || this.btnRoomName == null || this.device == null)
+                         {
+                             return;
+                         }
+                         ////鍒锋柊鏄剧ず
+                         this.btnDeviceName.Text = this.device.name;
+                         this.btnRoomName.Text = this.device.GetRoomListName();
+                         this.btnCurrDeviceName.Text = this.device.name;
+                         this.btnCurrDeviceRoom.Text = this.device.GetRoomListName();
+                         this.CalculatedPosition();//閲嶆柊璁$畻瀹藉害
 
+                     });
+                    infoView.actionDel += () =>
+                      {
+                          //瑙g粦璁惧鍚�
+                          this.RemoveFromParent();
+                          this.action?.Invoke();
 
-                    if (this.btnDeviceName == null || this.btnRoomName == null)
-                    {
-                        return;
-                    }
-                    ////鍒锋柊鏄剧ず
-                    this.btnDeviceName.Text = this.device.name;
-                    this.btnRoomName.Text = this.device.GetRoomListName();
-                    this.topView.topNameBtn.Text = this.device.name;
-                    this.btnCurrDeviceName.Text = this.device.name;
-                    this.btnCurrDeviceRoom.Text = this.device.GetRoomListName();
-
-                    ////浠庢柊璁$畻瀹藉害
-                    //this.btnDeviceName.Text = btnDeviceName.Text;
-                    //this.btnDeviceName.Width = this.btnDeviceName.GetTextWidth();
-
-                    //this.btnRoomName.Text = btnRoomName.Text;
-                    //this.btnRoomName.Width = this.btnRoomName.GetTextWidth();
-
-                    ////鍥炶皟浜嬩欢
-                    //this.SettionFinishEvent?.Invoke();
-                }, () =>
-                {
-                    //瑙g粦璁惧鍚�
-                    this.RemoveFromParent();
-                    this.action?.Invoke();
+                      };
+                    MainPage.BasePageView.AddChidren(infoView);
+                    infoView.LoadPage();
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                 });
-                MainPage.BasePageView.AddChidren(infoView);
-                infoView.LoadPage();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
             //鏀惰棌
             this.btnCollectIcon.MouseUpEventHandler += (sender, e) =>
@@ -322,15 +363,76 @@
                 btnCollectIcon.IsSelected = this.device.collect = !btnCollectIcon.IsSelected;
                 this.device.CollectFunction();
             };
+
+            int delayTimeMaxValue = 0;//
+            var startTime = DateTime.Now;
             //瀹炴椂瑙嗛
             this.rtvFL.SetClickListener((fl, btnStateImage, btnStateText) =>
             {
+                bool isDeyayClick = false;
+                var clickTime = DateTime.Now;
+                if ((clickTime - startTime).TotalMilliseconds > delayTimeMaxValue)
+                {
+                    delayTimeMaxValue = 2*1000;
+                    startTime = clickTime;
+                    isDeyayClick = true;
+                }
+                if (!isDeyayClick)
+                {
+                    return;
+                }
+                CommonMethod.Current.SkipRTVActivity(this.device.sid, this.device.deviceId, this.device.spk, false);
 
             });
+            var lastClickTime = DateTime.MinValue;
             //涓存椂瀵嗙爜
-            this.pswFL.SetClickListener((fl, btnStateImage, btnStateText) => { });
+            this.pswFL.SetClickListener((fl, btnStateImage, btnStateText) =>
+            {
+                if (lastClickTime.AddSeconds(3) > DateTime.Now)
+                {
+                    return;
+                }
+                lastClickTime = DateTime.Now;
+                CommonMethod.Current.SkipPSWActivity(this.device.deviceId);
+            });
+
             //鍘嗗彶璁板綍
-            this.recordFL.SetClickListener((fl, btnStateImage, btnStateText) => { });
+            this.recordFL.SetClickListener((fl, btnStateImage, btnStateText) =>
+            {
+                if (lastClickTime.AddSeconds(3) > DateTime.Now)
+                {
+                    return;
+                }
+                lastClickTime = DateTime.Now;
+
+                //VideoDoorlockHistoryPage historyPage = new VideoDoorlockHistoryPage(device);
+                //MainPage.BasePageView.AddChidren(historyPage);
+                //historyPage.LoadPage();
+                //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                var waitPage = new Loading();
+                this.AddChidren(waitPage);
+                waitPage.Start("");
+                new System.Threading.Thread(() =>
+                {
+                    try
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            CommonMethod.Current.SkipRecordActivity(this.device.deviceId);
+                        });
+                    }catch(Exception ex)
+                    {
+
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() => {
+                            waitPage.Hide();
+                        });
+                    }
+                })
+                { IsBackground = true }.Start();
+            });
 
 
         }
@@ -339,21 +441,30 @@
         /// </summary>
         private void ReadData()
         {
-            Loading loading = new Loading();
-            this.AddChidren(loading);
-            loading.Start();
-            new System.Threading.Thread(() =>
+            CommonMethod.Current.Loading.Start();
+            CommonMethod.Current.SunThread(() =>
             {
                 try
                 {
-                    var videoDoorLockInfo = UI2.FuntionControlView.VideoDoorLock.VideDoorLockSend.Current.GetVideoDoorLockState(this.device);
-                    var cellInfo =UI2.FuntionControlView.VideoDoorLock.VideDoorLockSend.Current.GetCellValue(this.device);
-                    Application.RunOnMainThread(() =>
+                    var videoDoorLockInfo = VideDoorLockSend.Current.GetVideoDoorLockState(this.device);
+                    var cellInfo = VideDoorLockSend.Current.GetCellValue(this.device);
+                    CommonMethod.Current.MainThread(() =>
                     {
                         //this.cellDiyArcSeekBar.Progress = i;
                         //鏇存柊鐢甸噺鍊�
                         this.btnCell.Text = cellInfo.remain + "%";
-                        this.btnDoorLockIcon.IsSelected = videoDoorLockInfo.doorStatus == "open";
+                        if(videoDoorLockInfo.doorStatus == "open")
+                        {
+                            this.btnDoorLockIcon.IsSelected = true;
+                            this.btnDoorlockStatus.TextID = StringId.DoorlockOpen;
+                            this.btnDoorlockStatus.TextColor = CSS_Color.WarningColor;
+                        }
+                        else
+                        {
+                            this.btnDoorLockIcon.IsSelected = false;
+                            this.btnDoorlockStatus.TextID = StringId.DoorlockClose;
+                            this.btnDoorlockStatus.TextColor = 0xFF000000;
+                        }
                     });
                 }
                 catch { }
@@ -361,12 +472,63 @@
                 {
                     Application.RunOnMainThread(() =>
                     {
-                        loading.Hide();
+                        CommonMethod.Current.Loading.Hide();
                     });
                 }
-            })
-            { IsBackground = true }.Start() ;
+            });
         }
+
+
+
+        /// <summary>
+        /// 閲嶆柊璁$畻瀹藉害(璁惧鍚嶇О,鎴块棿鎺т欢)
+        /// </summary>
+        private void CalculatedPosition()
+        {
+            this.btnCurrDeviceName.Width = this.btnCurrDeviceName.GetTextWidth();
+            this.btnCurrDeviceName.Width += 10; 
+            if (this.btnCurrDeviceName.GetTextWidth() > this.btnCollectIcon.X)
+            {
+                //閲嶆柊璁$畻瀹藉害
+                this.btnCurrDeviceName.Width = this.btnCollectIcon.X + Application.GetRealWidth(-10);
+            }
+            this.btnCurrDeviceRoom.Width = this.btnCurrDeviceRoom.GetTextWidth();
+            this.btnCurrDeviceRoom.Width += 10;
+            if (this.btnCurrDeviceRoom.GetTextWidth() > this.btnCollectIcon.X)
+            {
+                //閲嶆柊璁$畻瀹藉害
+                this.btnCurrDeviceRoom.Width = this.btnCollectIcon.X + Application.GetRealWidth(-20 - 10);
+            }
+            this.cellFrame.X = this.btnCurrDeviceRoom.Right + Application.GetRealWidth(20);
+        }
+
+        /// <summary>
+        /// 鏇存柊鐘舵��
+        /// </summary>
+        public void UpdateState(PushMessageType pushMessageType)
+        {
+            CommonMethod.Current.MainThread(() =>
+            {
+                if (pushMessageType == PushMessageType.Alarm)
+                {
+                    //闂ㄩ攣鐢垫睜鍊�
+                    if (this.btnCell != null)
+                    {
+                        //videoDoorLockPage.btnCell.Text = "";
+                    }
+                }
+                else
+                {
+                    if (this.btnDoorLockIcon != null && !this.btnDoorLockIcon.IsSelected)
+                    {
+                        this.btnDoorLockIcon.IsSelected = false;
+                    }
+                }
+
+            });
+
+        }
+
     }
     /// <summary>
     /// 鑷繁寮勪竴涓狥rameLayout
@@ -375,9 +537,9 @@
     {
         public const int widthFrameLayout = 48;
         public const int heightFrameLayout = 53;
-        public const int yFrameLayout = 378;
+        public const int yFrameLayout = 442;
         public const int xFrameLayout = 41;
-        public const int interval = 51;//琛屼腑鐨勫垪闂撮殧鍊�
+        public const int interval = 30;//琛屼腑鐨勫垪闂撮殧鍊�
 
         public CustomFrameLayout(int width, int height, int x = 0, int y = 0)
         {
@@ -403,9 +565,10 @@
             TextID = StringId.dangqianmenweiguan,
             TextSize = TextSize.Text12,
             TextColor = MusicColor.TextCancelColor,
-            TextAlignment=TextAlignment.Center,
+            TextAlignment = TextAlignment.Center,
             Gravity = Gravity.CenterHorizontal,
-            Name = "btnStateText"
+            Name = "btnStateText",
+            IsMoreLines = true,
         };
         public void AddImageView()
         {
@@ -485,19 +648,5 @@
             return false;
 
         }
-
-
-
-
     }
-    /// <summary>
-    /// 琛ㄧず鏉ヨ嚜閭d釜鐣岄潰
-    /// </summary>
-    public enum Comerom
-    {
-        function,//鍔熻兘
-        collect,//鏀惰棌
-        room,//鎴块棿
-    }
-
 }

--
Gitblit v1.8.0