From ff3cfcf62632bf43e51a6b6098c203bf0f5cddbc Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期二, 24 十二月 2019 19:53:29 +0800 Subject: [PATCH] 2019.12.24 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs | 378 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 253 insertions(+), 125 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs index 62d78a5..9ea0ffd 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs @@ -14,7 +14,6 @@ #region 鈼� 鍙橀噺鐢虫槑__________________________ public FrameLayout topFrameLayout = new FrameLayout { Height = Application.GetRealHeight(184), BackgroundColor = ZigbeeColor.Current.XMTopFrameLayout }; public FrameLayout midFrameLayout = new FrameLayout { Height = Application.GetRealHeight(1921 - 184), BackgroundColor = ZigbeeColor.Current.XMMidFrameLayout }; - #region 鈼� 搴曢儴鏈夊渾瑙掑竷灞�__________________________ public FrameLayout shadowRadiusFrameLayout = new FrameLayout { BackgroundColor = 0x0f000000 }; public FrameLayout bottomRadiusFrameLayout1 = new FrameLayout() @@ -70,6 +69,16 @@ }; #endregion + /// <summary> + /// 鈼� 涓儴鍒锋柊甯冨眬__________________________ + /// </summary> + //public VerticalRefreshLayout midVerticalScrolViewLayout = new VerticalRefreshLayout() + //{ + //}; + + /// <summary> + /// 鈼� 鏍囬鏍忓竷灞�__________________________ + /// </summary> public FrameLayout titleFrameLayout = new FrameLayout { Y = Application.GetRealHeight(92), @@ -99,14 +108,6 @@ }; /// <summary> - /// 鏍囬杩斿洖鎸夐敭 - /// </summary> - public Button btnTip = new Button - { - Gravity = Gravity.Center, - }; - - /// <summary> /// 鏍囬涓嬬嚎 /// </summary> public Button btnTitleLine = new Button @@ -115,6 +116,7 @@ Height = 1, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine, }; + /// <summary> /// 寮圭獥鍙栨秷鎸夐敭 @@ -152,7 +154,6 @@ }; titleFrameLayout.AddChidren(title); btnBackFrameLayout.AddChidren(btnBack); - this.midFrameLayout.AddChidren(this.btnTip); } /// <summary> /// 闂ㄩ攣涓儴甯冨眬 @@ -206,22 +207,28 @@ doorDialog.dialogMidFraFrameLayout.Height = Application.GetRealHeight(69); doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(58); doorDialog.dialogMidFraFrameLayout.Y = Application.GetRealHeight(213); - doorDialog.dialogMidFraFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBorder; + doorDialog.dialogMidFraFrameLayout.BackgroundColor = BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBorder; + + var editInputPasswordFrameLayout = new FrameLayout() + { + Width = Application.GetRealWidth(677) - 2, + Height = Application.GetRealHeight(69) - 2, + X = 1, + Y = 1, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, + }; + doorDialog.dialogMidFraFrameLayout.AddChidren(editInputPasswordFrameLayout); var editInputPassword = new EditText() { - Width = Application.GetRealWidth(672), - Height = Application.GetRealHeight(63), - X = Application.GetRealWidth(3), - Y = Application.GetRealHeight(3), - TextSize = 14, + X = Application.GetRealHeight(25), + TextSize = 13, PlaceholderTextColor = Shared.Common.ZigbeeColor.Current.XMGray3, PlaceholderText = Language.StringByID(R.MyInternationalizationString.InputUnlockPasswrd), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, - TextAlignment = TextAlignment.CenterLeft, - BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, + TextAlignment = TextAlignment.BottomLeft, }; - doorDialog.dialogMidFraFrameLayout.AddChidren(editInputPassword); + editInputPasswordFrameLayout.AddChidren(editInputPassword); doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) => { @@ -274,6 +281,7 @@ System.Threading.Thread.Sleep(500); doorLock.RemoteUnlockPassword = editInputPassword.Text; ZigBee.Device.DoorLock.minValue = DateTime.MinValue; + ZigBee.Device.DoorLock.failedCount = 3; ZigBee.Device.DoorLock.RemoteUnlockCount = 5; oldTime = DateTime.MaxValue; CommonPage.Loading.Hide(); @@ -354,13 +362,62 @@ } /// <summary> + /// 瀹夊叏楠岃瘉 + /// </summary> + /// <param name="doorLock">闂ㄩ攣璁惧</param> + /// <param name="action">浜屾楠岃瘉鐨勭粨鏋滄垚鍔熷悗鐨勯�氱煡</param> + public static void SecurityRequest(ZigBee.Device.DoorLock doorLock, Action action) + { + var dialog2 = new Dialog { }; + var doorDialog2 = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog2, Language.StringByID(R.MyInternationalizationString.Tip)); + doorDialog2.Show(); + doorDialog2.dialogMidFraFrameLayout.Width = Application.GetRealWidth(674); + doorDialog2.dialogMidFraFrameLayout.Height = Application.GetRealHeight(115); + doorDialog2.dialogMidFraFrameLayout.X = Application.GetRealWidth(60); + doorDialog2.dialogMidFraFrameLayout.Y = Application.GetRealHeight(167); + doorDialog2.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.GoSetting); + var midText1 = new Button() + { + Width = Application.GetRealWidth(674), + Height = Application.GetRealHeight(115 / 2), + TextSize = 14, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextAlignment = TextAlignment.Center, + TextID = R.MyInternationalizationString.GoPersonalCenter, + }; + doorDialog2.dialogMidFraFrameLayout.AddChidren(midText1); + var midText2 = new Button() + { + Width = Application.GetRealWidth(674), + Height = Application.GetRealHeight(115 / 2), + Y = Application.GetRealHeight(115 / 2), + TextSize = 14, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextAlignment = TextAlignment.Center, + TextID = R.MyInternationalizationString.OpenRemoteVerification, + }; + doorDialog2.dialogMidFraFrameLayout.AddChidren(midText2); + + doorDialog2.dialogBtnCancel.MouseUpEventHandler += (sender2, e2) => + { + dialog2.Close(); + }; + doorDialog2.dialogBtnConfirm.MouseUpEventHandler += async (sender2, e2) => + { + var form = new UserCenter.UserMain.SecondAuthenticationForm(); + form.AddForm(); + dialog2.Close(); + }; + } + + /// <summary> /// 杩滅▼寮�閿佽姹� /// </summary> /// <param name="doorLock">闂ㄩ攣璁惧</param> /// <param name="action">浜屾楠岃瘉鐨勭粨鏋滄垚鍔熷悗鐨勯�氱煡</param> /// <param name="progressButton">闂ㄩ攣寮�鎴栧叧鏃惰繘搴︽樉绀�</param> /// <param name="btnDoorLockPic">闂ㄩ攣鍥剧墖寮�/鍏虫樉绀�</param> - public void RemoteUnlockRequest(ZigBee.Device.DoorLock doorLock, Action action, Button progressButton = null, Button btnDoorLockPic = null, Button btnStatus = null) + public void RemoteUnlockRequest(ZigBee.Device.DoorLock doorLock, Action action, Button progressButton = null, Button btnDoorLockPic = null, Button btnStatus = null, Button btnDoorLockTitle = null) { if (doorLock.RemoteUnlockPassword == "") { @@ -383,18 +440,41 @@ { if (UserCenterResourse.UserInfo.AuthorityNo == 1) { - var userDoorLockPage = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock); - Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage); + var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock); + Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting); Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - userDoorLockPage.Show(); + functionSetting.Show(); + functionSetting.devicNameAction += (deviceRename) => + { + if (!string.IsNullOrEmpty(deviceRename)) + { + if (btnDoorLockTitle != null) + { + btnDoorLockTitle.Text = deviceRename; + } + } + }; dialog.Close(); } else { - var userDoorLockPage = new Shared.Phone.UserCenter.DoorLock.FunctionSettingSub(doorLock); - Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage); + var functionSettingSub = new Shared.Phone.UserCenter.DoorLock.FunctionSettingSub(doorLock); + Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSettingSub); Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - userDoorLockPage.Show(); + functionSettingSub.Show(); + functionSettingSub.devicNameAction += (deviceRename) => + { + if (!string.IsNullOrEmpty(deviceRename)) + { + if (!string.IsNullOrEmpty(deviceRename)) + { + if (btnDoorLockTitle != null) + { + btnDoorLockTitle.Text = deviceRename; + } + } + } + }; dialog.Close(); } }; @@ -463,148 +543,196 @@ }; doorDialog3.dialogBtnConfirm.MouseUpEventHandler += (sender1, e1) => { - action = async () => + action = () => { - //System.Threading.Tasks.Task.Run(async () => - //{ - Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); - try + System.Threading.Tasks.Task.Run(async () => { - //杩滅▼寮�閿� - if (progressButton != null) - { - progressButton.Y = Application.GetRealHeight(10); - } - if (btnDoorLockPic != null) - { - btnDoorLockPic.IsSelected = true; - } - if (btnStatus != null) + Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); + try { Application.RunOnMainThread(() => { - btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Opening); - }); - } - var remoteControlResult = await doorLock.RemoteControlAsync(doorLock.RemoteUnlockPassword); - //寮�閿佹垚鍔燂紝杩斿洖榛樿鍝嶅簲 - if (remoteControlResult != null && remoteControlResult.responseData != null) - { - if (remoteControlResult.responseData.status == 0) - { if (progressButton != null) { - progressButton.Y = Application.GetRealHeight(347); + progressButton.Y = Application.GetRealHeight(10); } if (btnDoorLockPic != null) { - btnDoorLockPic.IsSelected = false; + btnDoorLockPic.IsSelected = true; } if (btnStatus != null) { + btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Opening); + + } + }); + //杩滅▼寮�閿� + var remoteControlResult = await doorLock.RemoteControlAsync(doorLock.RemoteUnlockPassword); + //寮�閿佹垚鍔燂紝杩斿洖榛樿鍝嶅簲 + if (remoteControlResult != null && remoteControlResult.responseData != null) + { + if (remoteControlResult.responseData.status == 0) + { + ZigBee.Device.DoorLock.failedCount = 3; Application.RunOnMainThread(() => { - btnStatus.Text = Language.StringByID(R.MyInternationalizationString.DoorLockOpen); - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockSuccess), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); + if (progressButton != null) + { + progressButton.Y = Application.GetRealHeight(347); + } + if (btnDoorLockPic != null) + { + btnDoorLockPic.IsSelected = false; + } + if (btnStatus != null) + { + btnStatus.Text = Language.StringByID(R.MyInternationalizationString.DoorLockOpen); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockSuccess), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); + } + }); + System.Threading.Thread.Sleep(5000); + } + else + { + Application.RunOnMainThread(() => + { + if (progressButton != null) + { + progressButton.Y = Application.GetRealHeight(347); + } + if (btnDoorLockPic != null) + { + btnDoorLockPic.IsSelected = false; + } + if (btnStatus != null) + { + btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); + } + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); }); } - System.Threading.Thread.Sleep(5000); + } + else if (remoteControlResult != null && remoteControlResult.IsPawDispear == true) + { + ZigBee.Device.DoorLock.failedCount--; + if (ZigBee.Device.DoorLock.failedCount != 0) + { + Application.RunOnMainThread(() => + { + if (progressButton != null) + { + progressButton.Y = Application.GetRealHeight(347); + } + if (btnDoorLockPic != null) + { + btnDoorLockPic.IsSelected = false; + } + if (btnStatus != null) + { + btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); + } + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); + }); + } + else + { + Application.RunOnMainThread(() => + { + if (progressButton != null) + { + progressButton.Y = Application.GetRealHeight(347); + } + if (btnDoorLockPic != null) + { + btnDoorLockPic.IsSelected = false; + } + if (btnStatus != null) + { + btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); + } + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.DoorlockPasswordDispear), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); + CommonPage.Loading.Hide(); + doorLock.RemoteUnlockPassword = ""; + dialog3.Close(); + if (UserCenterResourse.UserInfo.AuthorityNo == 1) + { + var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock); + Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + functionSetting.Show(); + functionSetting.devicNameAction += (deviceRename) => + { + if (!string.IsNullOrEmpty(deviceRename)) + { + if (btnDoorLockTitle != null) + { + btnDoorLockTitle.Text = deviceRename; + } + } + }; + } + else + { + var functionSettingSub = new Shared.Phone.UserCenter.DoorLock.FunctionSettingSub(doorLock); + Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSettingSub); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + functionSettingSub.Show(); + functionSettingSub.devicNameAction += (deviceRename) => + { + if (!string.IsNullOrEmpty(deviceRename)) + { + if (!string.IsNullOrEmpty(deviceRename)) + { + if (btnDoorLockTitle != null) + { + btnDoorLockTitle.Text = deviceRename; + } + } + } + }; + } + }); + } } else { - if (progressButton != null) - { - progressButton.Y = Application.GetRealHeight(347); - } - if (btnDoorLockPic != null) - { - btnDoorLockPic.IsSelected = false; - } Application.RunOnMainThread(() => { + if (progressButton != null) + { + progressButton.Y = Application.GetRealHeight(347); + } + if (btnDoorLockPic != null) + { + btnDoorLockPic.IsSelected = false; + } if (btnStatus != null) { btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); } - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); }); } } - else if (remoteControlResult != null && remoteControlResult.IsPawDispear == true) + catch { } + finally { - if (progressButton != null) - { - progressButton.Y = Application.GetRealHeight(347); - } - if (btnDoorLockPic != null) - { - btnDoorLockPic.IsSelected = false; - } Application.RunOnMainThread(() => { if (btnStatus != null) { btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); } - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.DoorlockPasswordDispear), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); CommonPage.Loading.Hide(); - doorLock.RemoteUnlockPassword = ""; - }); - dialog3.Close(); - - if (UserCenterResourse.UserInfo.AuthorityNo == 1) - { - var userDoorLockPage = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock); - Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - userDoorLockPage.Show(); - - } - else - { - var userDoorLockPage = new Shared.Phone.UserCenter.DoorLock.FunctionSettingSub(doorLock); - Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - userDoorLockPage.Show(); - } - } - else - { - if (progressButton != null) - { - progressButton.Y = Application.GetRealHeight(347); - } - if (btnDoorLockPic != null) - { - btnDoorLockPic.IsSelected = false; - } - Application.RunOnMainThread(() => - { - if (btnStatus != null) - { - btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); - } - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); }); } - } - catch { } - finally - { - Application.RunOnMainThread(() => - { - if (btnStatus != null) - { - btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); - } - CommonPage.Loading.Hide(); - }); - } - //}); + }); }; HdlCheckLogic.Current.CheckSecondarySecurity(action); dialog3.Close(); }; } + // 鑾峰彇鍒板埌鍚嶇О鏇存敼鍥炶皟閫氱煡 + public Action<string> devicNameSecAction; } } -- Gitblit v1.8.0