using System; using Shared.Common; using ZigBee.Device; namespace Shared.Phone.UserCenter.DoorLock { public class DoorLockCommonLayout : FrameLayout { 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 }; public FrameLayout bottomRadiusFrameLayout = new FrameLayout() { Height = Application.GetRealHeight(100), Y = Application.GetRealHeight(930), Radius = 17, BackgroundColor = ZigbeeColor.Current.XMWhite, }; public FrameLayout titleFrameLayout = new FrameLayout { Y = Application.GetRealHeight(92), Height = Application.GetRealHeight(69), }; /// /// 标题返回布局 /// public FrameLayout btnBackFrameLayout = new FrameLayout { X = Application.GetRealWidth(58), Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(58), }; /// /// 标题返回按键 /// public Button btnBack = new Button { Height = Application.GetRealHeight(51), Width = Application.GetRealWidth(30), UnSelectedImagePath = "DoorLock/Left.png", }; /// /// 标题下线 /// public Button btnTitleLine = new Button { Y = Application.GetRealHeight(181), Height = 1, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine, }; /// /// 弹窗取消按键 /// public Button dialogBtnCancel = new Button { Width = Application.GetRealWidth(397), Height = Application.GetRealHeight(127), Y = Application.GetRealHeight(380), TextID = R.MyInternationalizationString.Cancel, TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout, }; #endregion /// /// 门锁顶部布局 /// /// public void TopFrameLayout(FrameLayout frameLayout, string titleText) { this.AddChidren(topFrameLayout); 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, }; titleFrameLayout.AddChidren(title); titleFrameLayout.AddChidren(btnBackFrameLayout); btnBackFrameLayout.AddChidren(btnBack); } /// /// 门锁中部布局 /// /// public void MidFrameLayout(FrameLayout frameLayout) { //midFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCBackgroundColor; midFrameLayout.Y = topFrameLayout.Bottom; this.AddChidren(midFrameLayout); } /// /// 门锁底部布局 /// /// public void BottomFrameLayout(FrameLayout frameLayout) { var bottomFrameLayout1 = new FrameLayout() { Height = Application.GetRealHeight(806 - 50), Y = Application.GetRealHeight(930 + 48), BackgroundColor = ZigbeeColor.Current.XMWhite, }; this.midFrameLayout.AddChidren(bottomFrameLayout1); } /// /// 远程控制权限处理 /// /// public void RemotePasswordDialog(ZigBee.Device.DoorLock doorLock, Button btnNext) { var dialog = new Dialog { }; var doorDialog = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog, Language.StringByID(R.MyInternationalizationString.BindDoorLock)); doorDialog.Show(); doorDialog.dialogMidFraFrameLayout.Width = Application.GetRealWidth(677); 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; var editInputPassword = new EditText() { Width = Application.GetRealWidth(672), Height = Application.GetRealHeight(63), X = Application.GetRealWidth(3), Y = Application.GetRealHeight(3), TextSize = 14, 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, }; doorDialog.dialogMidFraFrameLayout.AddChidren(editInputPassword); doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) => { btnNext.IsSelected = false; dialog.Close(); }; DateTime oldTime = DateTime.MaxValue; doorDialog.dialogBtnConfirm.MouseUpEventHandler += async (sender1, e1) => { Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); 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); return; } if (DateTime.Now >= oldTime && ZigBee.Device.DoorLock.RemoteUnlockCount == 0) { ZigBee.Device.DoorLock.RemoteUnlockCount = 3; oldTime = DateTime.MaxValue; } if (ZigBee.Device.DoorLock.RemoteUnlockCount <= 0) { ZigBee.Device.DoorLock.minValue = DateTime.Now.AddSeconds(+20); 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); return; } if (editInputPassword.Text.Length != 6) { 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); return; } var verifyResult = await doorLock.VerifyPasswordAsync(editInputPassword.Text); if (verifyResult != null && verifyResult.result == 0) { 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(); btnNext.IsSelected = true; if (!UserCenterResourse.Option.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.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(); }; } } 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); return; } }; } /// /// /// /// 门锁设备 /// 二次验证的结果成功后的通知 /// 门锁开或关时进度显示 /// 门锁图片开/关显示 public void RemoteUnlockRequest(ZigBee.Device.DoorLock doorLock, Action action, Button progressButton, Button btnDoorLockPic, Button btnStatus) { if (ZigBee.Device.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(); }; return; } if (!UserCenterResourse.Option.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(); }; 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) => { dialog3.Close(); }; doorDialog3.dialogBtnConfirm.MouseUpEventHandler += (sender1, e1) => { action = async () => { //远程开锁 progressButton.Y = Application.GetRealHeight(10); btnDoorLockPic.IsSelected = true; btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Opening); Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); var remoteControlResult = await doorLock.RemoteControlAsync(ZigBee.Device.DoorLock.RemoteUnlockPassword); if (remoteControlResult != null && remoteControlResult.responseData != null && remoteControlResult.responseData.status == 0) { btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Opening); System.Threading.Thread.Sleep(2000); btnStatus.Text = Language.StringByID(R.MyInternationalizationString.DoorLockOpen); System.Threading.Thread.Sleep(3000); progressButton.Y = Application.GetRealHeight(347); btnDoorLockPic.IsSelected = false; btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose); CommonPage.Loading.Hide(); } else { progressButton.Y = Application.GetRealHeight(347); btnDoorLockPic.IsSelected = false; CommonPage.Loading.Hide(); } }; HdlCheckLogic.Current.CheckSecondarySecurity(action); dialog3.Close(); }; } } }