From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs | 611 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 382 insertions(+), 229 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs index 6812b14..29c1290 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs @@ -1,40 +1,37 @@ 锘縰sing System; +using Newtonsoft.Json.Linq; using Shared.Common; using ZigBee.Device; namespace Shared.Phone.UserCenter.DoorLock { - public class DoorLockCommonLayout : FrameLayout + public class DoorLockCommonLayout : EditorCommonForm { + /// <summary> + /// 鏋勯�犲嚱鏁� + /// </summary> public DoorLockCommonLayout() { - } - #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 鈼� 搴曢儴鏈夊渾瑙掑竷灞�__________________________ + #region 鍙橀噺鐢虫槑 + public new FrameLayout topFrameLayout = new FrameLayout { Height = Application.GetRealHeight(184), BackgroundColor = ZigbeeColor.Current.XMTopFrameLayout }; + public FrameLayout midFrameLayout = new FrameLayout { Height = Application.GetRealHeight(1925 - 184), BackgroundColor = ZigbeeColor.Current.XMMidFrameLayout }; + #region 搴曢儴鏈夊渾瑙掑竷灞� + /// 鑳屾櫙闃村奖鐣岄潰 + /// </summary> public FrameLayout shadowRadiusFrameLayout = new FrameLayout { BackgroundColor = 0x0f000000 }; - public FrameLayout bottomRadiusFrameLayout1 = new FrameLayout() - { - Height = Application.GetRealHeight(100), - Y = Application.GetRealHeight(930), - Radius = 17, - BackgroundColor = ZigbeeColor.Current.XMWhite, - }; - public FrameLayout bottomRadiusFrameLayout2 = new FrameLayout() - { - Height = Application.GetRealHeight(806 - 50), - Y = Application.GetRealHeight(930 + 48), - BackgroundColor = ZigbeeColor.Current.XMWhite, - }; + /// <summary> + /// 璁剧疆鍦嗚鐨勭晫闈� + /// </summary> public FrameLayout bottomRadiusFrameLayout = new FrameLayout() { Height = Application.GetRealHeight(806), Y = Application.GetRealHeight(930), + BackgroundColor = ZigbeeColor.Current.XMWhite, }; - + /// <summary> + /// 搴曢儴鍦嗚涓殑鍙栨秷鎸夐挳 + /// </summary> public Button btnCancel = new Button { X = Application.GetRealWidth(81), @@ -45,7 +42,9 @@ TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextSize = 14, }; - + /// <summary> + /// 搴曢儴鍦嗚涓殑鏍囬鏍� + /// </summary> public Button btnBottomTitle = new Button { X = Application.GetRealWidth(446 - 50), @@ -56,7 +55,9 @@ TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 16, }; - + /// <summary> + /// 搴曢儴鍦嗚涓殑纭鎸夐挳 + /// </summary> public Button btnFinish = new Button { X = Application.GetRealWidth(919), @@ -64,14 +65,29 @@ Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(101), Text = Language.StringByID(R.MyInternationalizationString.Complete), - TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextColor = Shared.Common.ZigbeeColor.Current.XMOrange, TextSize = 14, }; + /// <summary> + /// 搴曢儴鍦嗚涓殑鏍囬鏍忎笅鐨勭嚎鏉� + /// </summary> + public Button line = new Button() + { + Y = Application.GetRealHeight(138), + Height = 1, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + }; + #endregion + /// <summary> + /// 鏍囬鏍忓竷灞� + /// </summary> public FrameLayout titleFrameLayout = new FrameLayout { Y = Application.GetRealHeight(92), + X = Application.GetRealWidth(58 * 2), + Width = Application.GetRealWidth(1080 - 116), Height = Application.GetRealHeight(69), }; @@ -80,9 +96,7 @@ /// </summary> public FrameLayout btnBackFrameLayout = new FrameLayout { - X = Application.GetRealWidth(58), - Height = Application.GetRealHeight(58), - Width = Application.GetRealWidth(58), + Width = Application.GetRealWidth(58 * 2), }; /// <summary> @@ -92,6 +106,8 @@ { Height = Application.GetRealHeight(51), Width = Application.GetRealWidth(30), + X = Application.GetRealWidth(58), + Y = Application.GetRealHeight(98), UnSelectedImagePath = "DoorLock/Left.png", }; @@ -117,8 +133,6 @@ TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout, }; - - #endregion /// <summary> @@ -128,20 +142,22 @@ public void TopFrameLayout(FrameLayout frameLayout, string titleText) { this.AddChidren(topFrameLayout); + topFrameLayout.AddChidren(btnBackFrameLayout); topFrameLayout.AddChidren(titleFrameLayout); topFrameLayout.AddChidren(btnTitleLine); + var title = new Button() { TextAlignment = TextAlignment.CenterLeft, Text = titleText, TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, - X = Application.GetRealWidth(161), Width = Application.GetRealWidth(1080 - 161), Height = Application.GetRealWidth(69), TextSize = 17, + IsBold = true, + X = Application.GetRealWidth(161 - 116), }; titleFrameLayout.AddChidren(title); - titleFrameLayout.AddChidren(btnBackFrameLayout); btnBackFrameLayout.AddChidren(btnBack); } /// <summary> @@ -175,12 +191,12 @@ /// <param name="frameLayout"></param> public void BottomRadiusFrameLayout(FrameLayout frameLayout) { - this.shadowRadiusFrameLayout.AddChidren(this.bottomRadiusFrameLayout1); - this.shadowRadiusFrameLayout.AddChidren(this.bottomRadiusFrameLayout2); this.shadowRadiusFrameLayout.AddChidren(this.bottomRadiusFrameLayout); + this.bottomRadiusFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); this.bottomRadiusFrameLayout.AddChidren(btnCancel); this.bottomRadiusFrameLayout.AddChidren(btnBottomTitle); this.bottomRadiusFrameLayout.AddChidren(btnFinish); + this.bottomRadiusFrameLayout.AddChidren(line); } /// <summary> @@ -196,22 +212,29 @@ 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, + IsNumberKeyboardType = true, }; - doorDialog.dialogMidFraFrameLayout.AddChidren(editInputPassword); + editInputPasswordFrameLayout.AddChidren(editInputPassword); doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) => { @@ -224,26 +247,26 @@ DateTime oldTime = DateTime.MaxValue; doorDialog.dialogBtnConfirm.MouseUpEventHandler += async (sender1, e1) => { - Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); if (DateTime.Now < ZigBee.Device.DoorLock.minValue) { CommonPage.Loading.Hide(); - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AfterThirtySeconds), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoFiftySeconds)); return; } if (DateTime.Now >= oldTime && ZigBee.Device.DoorLock.RemoteUnlockCount == 0) { - ZigBee.Device.DoorLock.RemoteUnlockCount = 3; + ZigBee.Device.DoorLock.RemoteUnlockCount = 5; oldTime = DateTime.MaxValue; } if (ZigBee.Device.DoorLock.RemoteUnlockCount <= 0) { - ZigBee.Device.DoorLock.minValue = DateTime.Now.AddSeconds(+20); + ZigBee.Device.DoorLock.minValue = DateTime.Now.AddSeconds(+15); oldTime = ZigBee.Device.DoorLock.minValue; CommonPage.Loading.Hide(); - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AfterThirtySeconds), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AfterFiftySeconds)); return; } @@ -252,76 +275,129 @@ ZigBee.Device.DoorLock.RemoteUnlockCount--; string tipText = Language.StringByID(R.MyInternationalizationString.PasswordError) + "," + Language.StringByID(R.MyInternationalizationString.Surplus) + ZigBee.Device.DoorLock.RemoteUnlockCount.ToString() + Language.StringByID(R.MyInternationalizationString.Opportunity); CommonPage.Loading.Hide(); - new Tip() { MaxWidth = 150, Text = tipText, Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword); + this.ShowMassage(ShowMsgType.Tip, tipText); return; } var verifyResult = await doorLock.VerifyPasswordAsync(editInputPassword.Text); - if (verifyResult != null && verifyResult.result == 0) + if (verifyResult != null) { - System.Threading.Thread.Sleep(500); - ZigBee.Device.DoorLock.RemoteUnlockPassword = editInputPassword.Text; - ZigBee.Device.DoorLock.minValue = DateTime.MinValue; - ZigBee.Device.DoorLock.RemoteUnlockCount = 3; - oldTime = DateTime.MaxValue; - CommonPage.Loading.Hide(); - dialog.Close(); - if (btnNext != null) + if (verifyResult.result == 0) { - btnNext.IsSelected = true; + 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(); + dialog.Close(); + if (btnNext != null) + { + btnNext.IsSelected = true; + } + if (!HdlUserCenterResourse.AccountOption.DoorUnLockByRemote) + { + string msg = Language.StringByID(R.MyInternationalizationString.RemoteUnlockBindSucessTip).Replace("{0}", "\r\n"); + var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.GoSetting)); + alert.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alert.ConfirmClickEvent += () => + { + var form = new UserCenter.UserMain.SecondAuthenticationForm(); + form.AddForm(); + }; + } + doorLock.ReSave(); } - if (!UserCenterResourse.Option.DoorUnLockByRemote) + else { - 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.RemoteUnlockBindSucessTip1, - }; - 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.RemoteUnlockBindSucessTip2, - }; - 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(); - }; + ZigBee.Device.DoorLock.RemoteUnlockCount--; + string tipText = Language.StringByID(R.MyInternationalizationString.OperrateFailed) + "," + Language.StringByID(R.MyInternationalizationString.Surplus) + ZigBee.Device.DoorLock.RemoteUnlockCount.ToString() + Language.StringByID(R.MyInternationalizationString.Opportunity); + CommonPage.Loading.Hide(); + this.ShowMassage(ShowMsgType.Tip, tipText); + return; } } else { - ZigBee.Device.DoorLock.RemoteUnlockCount--; - string tipText = Language.StringByID(R.MyInternationalizationString.OperrateFailed) + "," + Language.StringByID(R.MyInternationalizationString.Surplus) + ZigBee.Device.DoorLock.RemoteUnlockCount.ToString() + Language.StringByID(R.MyInternationalizationString.Opportunity); CommonPage.Loading.Hide(); - new Tip() { MaxWidth = 150, Text = tipText, Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.GwResponseOvertime)); return; } + }; + doorDialog.flMain.MouseUpEventHandler += (sender11, e11) => + { + if (btnNext != null) + { + btnNext.IsSelected = false; + } + dialog.Close(); + }; + } + + /// <summary> + /// 瀹夊叏楠岃瘉 + /// </summary> + /// <param name="doorLock">闂ㄩ攣璁惧</param> + /// <param name="action">浜屾楠岃瘉鐨勭粨鏋滄垚鍔熷悗鐨勯�氱煡</param> + public static void SecurityRequest(ZigBee.Device.DoorLock doorLock) + { + string msg = Language.StringByID(R.MyInternationalizationString.SetSecondarySecurityVerificationMode).Replace("{0}", "\r\n"); + var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.GoSetting)); + alert.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alert.ConfirmClickEvent += () => + { + var form = new UserCenter.UserMain.SecondAuthenticationForm(); + form.AddForm(); + }; + } + + /// <summary> + /// 缁戝畾杩滅▼寮�閿佹潈闄愮獥鍙� + /// </summary> + /// <param name="doorLock"></param> + /// <param name="btnDoorLockTitle"></param> + public void BindRemoteUnlockDoorlock(Room room, CommonDevice devDoorLock, Button btnDoorLockTitle = null) + { + ZigBee.Device.DoorLock doorLock = devDoorLock as ZigBee.Device.DoorLock; + string msgRemoteUnlockRequest = Language.StringByID(R.MyInternationalizationString.BindRemoteUnlockDoorlock); + var alertRemoteUnlockRequest = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msgRemoteUnlockRequest, Language.StringByID(R.MyInternationalizationString.GoSetting)); + alertRemoteUnlockRequest.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alertRemoteUnlockRequest.ConfirmClickEvent += () => + { + var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(room, devDoorLock); + 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; + } + } + }; + }; + } + + /// <summary> + /// 鍘讳釜浜轰腑蹇冿紝寮�鍚郴缁熷瘑鐮佹敮鎸佸紑閿佹潈闄� + /// </summary> + public void SystemSecondAuthentication() + { + string msgDoorUnLockByRemote = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter).Replace("{0}", "\r\n"); + var alertDoorUnLockByRemote = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msgDoorUnLockByRemote, Language.StringByID(R.MyInternationalizationString.GoSetting)); + alertDoorUnLockByRemote.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alertDoorUnLockByRemote.ConfirmClickEvent += () => + { + var form = new UserCenter.UserMain.SecondAuthenticationForm(); + form.AddForm(); }; } @@ -332,153 +408,230 @@ /// <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(Room room, CommonDevice devDoorLock, Action action, Button progressButton = null, Button btnDoorLockPic = null, Button btnStatus = null, Button btnDoorLockTitle = null) { - if (ZigBee.Device.DoorLock.RemoteUnlockPassword == "") + ZigBee.Device.DoorLock doorLock = devDoorLock as ZigBee.Device.DoorLock; + if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword)) { - var dialog = new Dialog { }; - var doorDialog = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog, Language.StringByID(R.MyInternationalizationString.Tip)); - doorDialog.Show(); - doorDialog.dialogMidFraFrameLayout.Width = Application.GetRealWidth(415); - doorDialog.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58); - doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(190); - doorDialog.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202); - doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); - doorDialog.dialogMidText.Text = Language.StringByID(R.MyInternationalizationString.BindRemoteUnlockDoorlock); - doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); - doorDialog.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.GoSetting); - doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) => - { - dialog.Close(); - }; - doorDialog.dialogBtnConfirm.MouseUpEventHandler += (sender1, e1) => - { - 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(); - dialog.Close(); - }; + BindRemoteUnlockDoorlock(room, devDoorLock, btnDoorLockTitle); return; } - if (!UserCenterResourse.Option.DoorUnLockByRemote) + if (!HdlUserCenterResourse.AccountOption.DoorUnLockByRemote) { - 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(); - }; + SystemSecondAuthentication(); return; } - var dialog3 = new Dialog { }; - var doorDialog3 = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog3, Language.StringByID(R.MyInternationalizationString.UnlockRequest)); - doorDialog3.Show(); - doorDialog3.dialogMidFraFrameLayout.Width = Application.GetRealWidth(415); - doorDialog3.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58); - doorDialog3.dialogMidFraFrameLayout.X = Application.GetRealWidth(228); - doorDialog3.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202); - doorDialog3.dialogMidFraFrameLayout.AddChidren(doorDialog3.dialogMidText); - doorDialog3.dialogMidText.Text = Language.StringByID(R.MyInternationalizationString.SureToOpenDoorLock); - doorDialog3.dialogMidFraFrameLayout.AddChidren(doorDialog3.dialogMidText); - doorDialog3.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.Confrim); - doorDialog3.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) => + string msg = Language.StringByID(R.MyInternationalizationString.SureToOpenDoorLock); + var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); + alert.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alert.ConfirmClickEvent += () => { - dialog3.Close(); - }; - doorDialog3.dialogBtnConfirm.MouseUpEventHandler += (sender1, e1) => - { - action = async () => + action = () => { - //杩滅▼寮�閿� - if (progressButton != null) + System.Threading.Tasks.Task.Run(async () => { - progressButton.Y = Application.GetRealHeight(10); - } - if (btnDoorLockPic != null) - { - btnDoorLockPic.IsSelected = true; - } - if (btnStatus != null) - { - btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Opening); - } - Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); - var remoteControlResult = await doorLock.RemoteControlAsync(ZigBee.Device.DoorLock.RemoteUnlockPassword); + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + try + { + Application.RunOnMainThread(() => + { + if (progressButton != null) + { + progressButton.Y = Application.GetRealHeight(10); + } + if (btnDoorLockPic != null) + { + btnDoorLockPic.IsSelected = true; + } + if (btnStatus != null) + { + btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Opening); - if (remoteControlResult != null && remoteControlResult.responseData != null && remoteControlResult.responseData.status == 0) - { + } + }); + //杩滅▼寮�閿� + var remoteControlResult = await doorLock.RemoteControlAsync(doorLock.RemoteUnlockPassword); - if (progressButton != null) - { - progressButton.Y = Application.GetRealHeight(347); + //杩滅▼寮�閿佹垚鍔燂紝杩斿洖榛樿鍝嶅簲 + if (remoteControlResult != null && remoteControlResult.responseData != null) + { + if (remoteControlResult.responseData.status == 0) + { + ZigBee.Device.DoorLock.failedCount = 3; + Application.RunOnMainThread(() => + { + if (progressButton != null) + { + progressButton.Y = Application.GetRealHeight(10); + } + if (btnDoorLockPic != null) + { + btnDoorLockPic.IsSelected = true; + } + if (btnStatus != null) + { + btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.UnlockSuccess)); + } + }); + //寮�閿佹垚鍔燂紝榛樿5绉掑悗闂ㄩ攣鑷姩鍏抽攣锛屾牴鎹笉鍚岀殑闂ㄩ攣鍙兘鏃堕棿涓嶅悓锛岃繖閲屼互鈥淗06C鈥濋棬閿佺粰鐨勬椂闂� + System.Threading.Thread.Sleep(5000); + } + else + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.UnlockFailed)); + } + } + //鐢ㄤ簬杩滅▼寮�閿佺殑闂ㄩ攣涓殑瀵嗙爜琚垹闄ゆ儏鍐� + else if (remoteControlResult != null && remoteControlResult.IsPawDispear == true) + { + //杩滅▼寮�閿佹湁3娆¤繛缁搷浣滃け璐ョ殑鏈轰細 + ZigBee.Device.DoorLock.failedCount--; + if (ZigBee.Device.DoorLock.failedCount != 0) + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.UnlockFailed)); + } + else + { + //3娆℃搷浣滃け璐ヨ繙绋嬪紑閿佸け璐ュ悗锛岄噸鍐欒缃繙绋嬪紑閿佸瘑鐮� + Application.RunOnMainThread(() => + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.DoorlockPasswordDispear)); + doorLock.RemoteUnlockPassword = ""; + var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(room, devDoorLock); + 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 + { + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.GwResponseOvertime)); + } } - if (btnDoorLockPic != null) + catch { } + finally { - 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.Current) + Language.StringByID(R.MyInternationalizationString.CLose); + } + CommonPage.Loading.Hide(); + }); } - if (btnStatus != null) - { - System.Threading.Thread.Sleep(2000); - //btnStatus.Text = Language.StringByID(R.MyInternationalizationString.DoorLockOpen); - System.Threading.Thread.Sleep(3000); - btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); - } - CommonPage.Loading.Hide(); - } - else - { - if (progressButton != null) - { - progressButton.Y = Application.GetRealHeight(347); - } - if (btnDoorLockPic != null) - { - btnDoorLockPic.IsSelected = false; - } - - CommonPage.Loading.Hide(); - } + }); }; + HdlCheckLogic.Current.CheckSecondarySecurity(action); - dialog3.Close(); }; } + // 鑾峰彇鍒板埌鍚嶇О鏇存敼鍥炶皟閫氱煡 + public Action<string> devicNameSecAction; + + + /// <summary> + /// 褰撳墠閫変腑鐨勫紑閿佹柟寮� + /// </summary> + /// <param name="btnAllMethod"></param> + /// <param name="btnMethodText"></param> + /// <param name="oldbutton"></param> + /// <param name="oldbuttonText"></param> + public void CurrentSelectUnlockMethod(Button btnAllMethod, Button btnMethodText, Button oldbutton, Button oldbuttonText) + { + btnAllMethod.IsSelected = true; + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbutton = btnAllMethod; + oldbuttonText = btnMethodText; + } + + /// <summary> + /// 鏄剧ず鎵�鏈夊紑閿佹柟寮忕殑鏁版嵁 + /// </summary> + /// <param name="curIndex"></param> + /// <param name="btnAllMethod"></param> + /// <param name="btnMethodText"></param> + public void DisplayAllUnlockMethod(int curIndex, Button btnAllMethod, Button btnMethodText) + { + switch (curIndex) + { + case 0: + btnAllMethod.UnSelectedImagePath = "DoorLock/AllMethod.png"; + btnAllMethod.SelectedImagePath = "DoorLock/AllMethodOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AllMethod); + break; + case 1: + btnAllMethod.UnSelectedImagePath = "DoorLock/Password.png"; + btnAllMethod.SelectedImagePath = "DoorLock/PasswordOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock); + break; + case 2: + btnAllMethod.UnSelectedImagePath = "DoorLock/Fingerprint.png"; + btnAllMethod.SelectedImagePath = "DoorLock/FingerprintOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock); + break; + case 3: + btnAllMethod.UnSelectedImagePath = "DoorLock/proximityCard.png"; + btnAllMethod.SelectedImagePath = "DoorLock/proximityCardOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock); + break; + } + } + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 鏄剧ず閿欒淇℃伅绐楀彛 + /// </summary> + /// <param name="msg"></param> + public void ShowErrorMsg(string msg) + { + Application.RunOnMainThread(() => + { + var contr = new ShowMsgControl(ShowMsgType.Error, msg); + contr.Show(); + }); + } + + /// <summary> + /// 鏄剧ずTip淇℃伅绐楀彛 + /// </summary> + /// <param name="msg"></param> + public void ShowTipMsg(string msg) + { + Application.RunOnMainThread(() => + { + var contr = new ShowMsgControl(ShowMsgType.Tip, msg); + contr.Show(); + CommonPage.Loading.Hide(); + }); + } + + #endregion } } -- Gitblit v1.8.0