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 | 248 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 197 insertions(+), 51 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs index 087a854..d86a322 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs @@ -60,6 +60,7 @@ /// 闂ㄩ攣鐘舵�� /// </summary> private Button btnDoorLockIcon; + Button btnDoorlockStatus; /// <summary> /// 瀹炴椂瑙嗛 /// </summary> @@ -88,8 +89,8 @@ /// 鏋勯�犲嚱鏁� /// </summary> /// <param name="function">璁惧</param> - /// <param name="btnDeviceName">涓婁竴绾х晫闈㈢殑璁惧鍚嶅瓧鎺т欢</param> - /// <param name="btnRoomName">涓婁竴绾х晫闈㈢殑鎴块棿鍚嶅瓧鎺т欢</param> + /// <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; @@ -217,6 +218,14 @@ cellFrame.AddChidren(btnCell); +#if __IOS__ +//btnCell.Padding = new Padding(0,0,0,0); + btnCell.Width += 5; + cellFrame.Width += 5; +#else +#endif + + //闂ㄩ攣鐘舵�� btnDoorLockIcon = new Button { @@ -231,37 +240,77 @@ this.CalculatedPosition();//閲嶆柊璁$畻瀹藉害 - int heightY = btnDoorLockIcon.Bottom + Application.GetRealHeight(70); + 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 @@ -274,36 +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.btnCurrDeviceName.Text = this.device.name; - this.btnCurrDeviceRoom.Text = this.device.GetRoomListName(); - this.CalculatedPosition();//閲嶆柊璁$畻瀹藉害 - - }, () => - { - //瑙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) => @@ -311,18 +363,75 @@ btnCollectIcon.IsSelected = this.device.collect = !btnCollectIcon.IsSelected; this.device.CollectFunction(); }; + + int delayTimeMaxValue = 0;// + var startTime = DateTime.Now; //瀹炴椂瑙嗛 this.rtvFL.SetClickListener((fl, btnStateImage, btnStateText) => { - CommonMethod.Current.SkipRTVActivity(this.device.sid,this.device.deviceId,this.device.spk); + 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) => { - CommonMethod.Current.SkipPSWActivity(); + 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) => { - CommonMethod.Current.SkipRecordActivity(); + 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(); }); @@ -344,7 +453,18 @@ //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 { } @@ -358,24 +478,55 @@ }); } + + /// <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; + } + } + + }); + } } @@ -386,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) { @@ -416,7 +567,8 @@ TextColor = MusicColor.TextCancelColor, TextAlignment = TextAlignment.Center, Gravity = Gravity.CenterHorizontal, - Name = "btnStateText" + Name = "btnStateText", + IsMoreLines = true, }; public void AddImageView() { @@ -496,11 +648,5 @@ return false; } - - - - } - - } -- Gitblit v1.8.0