From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs | 713 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 522 insertions(+), 191 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs old mode 100755 new mode 100644 index 8b4e4d4..2beae28 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs @@ -7,23 +7,39 @@ { 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 }; + /// <summary> + /// 閫変腑鐨勫紑閿佹柟寮忓洖璋� + /// </summary> + public Action<string> ChooseUnlockMethodAction = null; + /// <summary> + /// 閫変腑鐨勫紑閿佹柟寮忓洖璋� + /// </summary> + public Action<int> UndateUnlockMethodAction = null; + #region 搴曢儴鏈夊渾瑙掑竷灞� + /// 鑳屾櫙闃村奖鐣岄潰 + /// </summary> public FrameLayout shadowRadiusFrameLayout = new FrameLayout { BackgroundColor = 0x0f000000 }; - + /// <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), @@ -34,7 +50,9 @@ TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextSize = 14, }; - + /// <summary> + /// 搴曢儴鍦嗚涓殑鏍囬鏍� + /// </summary> public Button btnBottomTitle = new Button { X = Application.GetRealWidth(446 - 50), @@ -45,7 +63,9 @@ TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 16, }; - + /// <summary> + /// 搴曢儴鍦嗚涓殑纭鎸夐挳 + /// </summary> public Button btnFinish = new Button { X = Application.GetRealWidth(919), @@ -56,7 +76,9 @@ TextColor = Shared.Common.ZigbeeColor.Current.XMOrange, TextSize = 14, }; - + /// <summary> + /// 搴曢儴鍦嗚涓殑鏍囬鏍忎笅鐨勭嚎鏉� + /// </summary> public Button line = new Button() { Y = Application.GetRealHeight(138), @@ -66,15 +88,8 @@ #endregion - /// <summary> - /// 鈼� 涓儴鍒锋柊甯冨眬__________________________ - /// </summary> - //public VerticalRefreshLayout midVerticalScrolViewLayout = new VerticalRefreshLayout() - //{ - //}; - /// <summary> - /// 鈼� 鏍囬鏍忓竷灞�__________________________ + /// 鏍囬鏍忓竷灞� /// </summary> public FrameLayout titleFrameLayout = new FrameLayout { @@ -114,7 +129,6 @@ BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine, }; - /// <summary> /// 寮圭獥鍙栨秷鎸夐敭 /// </summary> @@ -139,6 +153,7 @@ topFrameLayout.AddChidren(btnBackFrameLayout); topFrameLayout.AddChidren(titleFrameLayout); topFrameLayout.AddChidren(btnTitleLine); + var title = new Button() { TextAlignment = TextAlignment.CenterLeft, @@ -219,12 +234,13 @@ var editInputPassword = new EditText() { - X = Application.GetRealHeight(25), + X = Application.GetRealHeight(15), TextSize = 13, - PlaceholderTextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + PlaceholderTextColor = Shared.Common.ZigbeeColor.Current.XMGray4, PlaceholderText = Language.StringByID(R.MyInternationalizationString.InputUnlockPasswrd), - TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, - TextAlignment = TextAlignment.BottomLeft, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, + TextAlignment = TextAlignment.CenterLeft, + IsNumberKeyboardType = true, }; editInputPasswordFrameLayout.AddChidren(editInputPassword); @@ -239,11 +255,11 @@ 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.NoFiftySeconds), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoFiftySeconds)); return; } @@ -258,7 +274,7 @@ 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.AfterFiftySeconds), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AfterFiftySeconds)); return; } @@ -267,7 +283,7 @@ 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; } @@ -276,6 +292,8 @@ { if (verifyResult.result == 0) { + ///淇濆瓨杩滅▼闂ㄩ攣瀵嗙爜 + new Device.DeviceMacInfoEditorForm { }.SaveLocalPassword(editInputPassword.Text); System.Threading.Thread.Sleep(500); doorLock.RemoteUnlockPassword = editInputPassword.Text; ZigBee.Device.DoorLock.minValue = DateTime.MinValue; @@ -288,10 +306,10 @@ { btnNext.IsSelected = true; } - if (!UserCenterResourse.Option.DoorUnLockByRemote) + if (!UserCenterResourse.AccountOption.DoorUnLockByRemote) { string msg = Language.StringByID(R.MyInternationalizationString.RemoteUnlockBindSucessTip).Replace("{0}", "\r\n"); - var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.GoSetting)); + var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.GoSetting)); alert.Show(); //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� alert.ConfirmClickEvent += () => @@ -307,14 +325,14 @@ 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.Down, CloseTime = 2 }.Show(editInputPassword); + this.ShowMassage(ShowMsgType.Tip, tipText); return; } } else { CommonPage.Loading.Hide(); - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.GwResponseOvertime)); return; } }; @@ -333,13 +351,60 @@ /// </summary> /// <param name="doorLock">闂ㄩ攣璁惧</param> /// <param name="action">浜屾楠岃瘉鐨勭粨鏋滄垚鍔熷悗鐨勯�氱煡</param> - public static void SecurityRequest(ZigBee.Device.DoorLock doorLock, Action action) + public static void SecurityRequest(ZigBee.Device.DoorLock doorLock) { - string msg = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter).Replace("{0}", "\r\n"); - var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.GoSetting)); + 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(); @@ -353,73 +418,23 @@ /// <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, Button btnDoorLockTitle = null) + public void RemoteUnlockRequest(Room room, CommonDevice devDoorLock, Action action, Button progressButton = null, Button btnDoorLockPic = null, Button btnStatus = null, Button btnDoorLockTitle = null) { + ZigBee.Device.DoorLock doorLock = devDoorLock as ZigBee.Device.DoorLock; if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword)) { - string msgRemoteUnlockRequest = Language.StringByID(R.MyInternationalizationString.BindRemoteUnlockDoorlock); - var alertRemoteUnlockRequest = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msgRemoteUnlockRequest, Language.StringByID(R.MyInternationalizationString.GoSetting)); - alertRemoteUnlockRequest.Show(); - //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� - alertRemoteUnlockRequest.ConfirmClickEvent += () => - { - 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; - } - } - } - }; - } - }; + BindRemoteUnlockDoorlock(room, devDoorLock, btnDoorLockTitle); return; } - if (!UserCenterResourse.Option.DoorUnLockByRemote) + if (!UserCenterResourse.AccountOption.DoorUnLockByRemote) { - string msgDoorUnLockByRemote = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter).Replace("{0}", "\r\n"); - var alertDoorUnLockByRemote = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msgDoorUnLockByRemote, Language.StringByID(R.MyInternationalizationString.GoSetting)); - alertDoorUnLockByRemote.Show(); - //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� - alertDoorUnLockByRemote.ConfirmClickEvent += () => - { - var form = new UserCenter.UserMain.SecondAuthenticationForm(); - form.AddForm(); - }; + SystemSecondAuthentication(); return; } string msg = Language.StringByID(R.MyInternationalizationString.SureToOpenDoorLock); - var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); + var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); alert.Show(); //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� alert.ConfirmClickEvent += () => @@ -449,7 +464,8 @@ }); //杩滅▼寮�閿� var remoteControlResult = await doorLock.RemoteControlAsync(doorLock.RemoteUnlockPassword); - //寮�閿佹垚鍔燂紝杩斿洖榛樿鍝嶅簲 + + //杩滅▼寮�閿佹垚鍔燂紝杩斿洖榛樿鍝嶅簲 if (remoteControlResult != null && remoteControlResult.responseData != null) { if (remoteControlResult.responseData.status == 0) @@ -459,139 +475,63 @@ { 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.DoorLockOpen); - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockSuccess), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance); + 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 { - 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(CommonPage.Instance); - }); + 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) { - 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(CommonPage.Instance); - }); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.UnlockFailed)); } else { + //3娆℃搷浣滃け璐ヨ繙绋嬪紑閿佸け璐ュ悗锛岄噸鍐欒缃繙绋嬪紑閿佸瘑鐮� 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(CommonPage.Instance); - CommonPage.Loading.Hide(); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.DoorlockPasswordDispear)); doorLock.RemoteUnlockPassword = ""; - if (UserCenterResourse.UserInfo.AuthorityNo == 1) + 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) => { - 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 (!string.IsNullOrEmpty(deviceRename)) + if (btnDoorLockTitle != null) { - if (btnDoorLockTitle != null) - { - btnDoorLockTitle.Text = deviceRename; - } + 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 { - 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.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance); - }); + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.GwResponseOvertime)); } } catch { } @@ -599,19 +539,410 @@ { 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); + btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose); } CommonPage.Loading.Hide(); }); } }); }; + HdlCheckLogic.Current.CheckSecondarySecurity(action); }; } // 鑾峰彇鍒板埌鍚嶇О鏇存敼鍥炶皟閫氱煡 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(ZigBee.Device.DoorLock doorLock, int curIndex, Button btnAllMethod, Button btnMethodText) + { + var listDevice = Common.LocalDevice.Current.GetDevicesByMac(doorLock.DeviceAddr); + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice); + if (curIndex == 0) + { + btnAllMethod.UnSelectedImagePath = "DoorLock/AllMethod.png"; + btnAllMethod.SelectedImagePath = "DoorLock/AllMethodOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AllMethod); + } + else if (curIndex == 1) + { + btnAllMethod.UnSelectedImagePath = "DoorLock/Password.png"; + btnAllMethod.SelectedImagePath = "DoorLock/PasswordOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock); + } + else if (curIndex == 2) + { + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_AT1F) + { + btnAllMethod.UnSelectedImagePath = "DoorLock/Fingerprint.png"; + btnAllMethod.SelectedImagePath = "DoorLock/FingerprintOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.CalmFingerprintUnlock); + } + else if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_HAT1B) + { + btnAllMethod.UnSelectedImagePath = "DoorLock/Fingerprint.png"; + btnAllMethod.SelectedImagePath = "DoorLock/FingerprintOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.CalmFingerprintUnlock); + } + else + { + btnAllMethod.UnSelectedImagePath = "DoorLock/Fingerprint.png"; + btnAllMethod.SelectedImagePath = "DoorLock/FingerprintOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock); + } + } + else if (curIndex == 3) + { + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_AT1F) + { + btnAllMethod.UnSelectedImagePath = "DoorLock/faceId.png"; + btnAllMethod.SelectedImagePath = "DoorLock/faceIdOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.FaceIDUnlock); + } + else if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_AT1TF) + { + btnAllMethod.UnSelectedImagePath = "DoorLock/proximityCard.png"; + btnAllMethod.SelectedImagePath = "DoorLock/proximityCardOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock); + } + else + { + btnAllMethod.UnSelectedImagePath = "DoorLock/proximityCard.png"; + btnAllMethod.SelectedImagePath = "DoorLock/proximityCardOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock); + } + } + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_AT1TF) + { + if (curIndex == 4) + { + btnAllMethod.UnSelectedImagePath = "DoorLock/faceId.png"; + btnAllMethod.SelectedImagePath = "DoorLock/faceIdOn.png"; + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.FaceIDUnlock); + } + } + + + + //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; + // case 4: + // btnAllMethod.UnSelectedImagePath = "DoorLock/faceId.png"; + // btnAllMethod.SelectedImagePath = "DoorLock/faceIdOn.png"; + // btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.FaceIDUnlock); + // break; + // case 5: + // btnAllMethod.UnSelectedImagePath = "DoorLock/Fingerprint.png"; + // btnAllMethod.SelectedImagePath = "DoorLock/FingerprintOn.png"; + // btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.CalmFingerprintUnlock); + // break; + //} + } + + /// <summary> + /// 渚ц竟瀵艰埅鏍� + /// </summary> + public void SideslipFramelayout(ZigBee.Device.DoorLock doorLock) + { + #region sidelipFrameLayout UI + var dialog = new Dialog + { + }; + dialog.Show(); + + var flMain = new FrameLayout { BackgroundColor = 0x00000000 }; + dialog.AddChidren(flMain); + flMain.MouseUpEventHandler += (sender11, e11) => + { + dialog.Close(); + }; + + var sidelipFrameLayout = new FrameLayout() + { + Width = Application.GetRealWidth(449), + Y = Application.GetRealHeight(115 + 160), + X = Application.GetRealWidth(596), + BackgroundImagePath = "DoorLock/SideslipPic.png", + }; + flMain.AddChidren(sidelipFrameLayout); + + var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout() + { + Y = Application.GetRealHeight(28), + }; + sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout); + #endregion + + Button oldbutton = null; + Button oldbuttonText = null; + int count = 1 + GetSupportType(doorLock); + sidelipFrameLayout.Height = Application.GetRealHeight(150) * count + Application.GetRealHeight(6); + sidelipVerticalScrolViewLayout.Height = Application.GetRealHeight(150) * count + Application.GetRealHeight(6); + for (var i = 0; i < count; i++) + { + #region rowFrameLayout UI + var rowFrameLayout = new FrameLayout() + { + Height = Application.GetRealHeight(150), + X = Application.GetRealWidth(81), + }; + sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout); + + var btnAllMethod = new Button() + { + Width = Application.GetRealWidth(81), + Height = Application.GetRealHeight(81), + Y = Application.GetRealHeight(35), + }; + rowFrameLayout.AddChidren(btnAllMethod); + + var btnMethodText = new Button() + { + Width = Application.GetRealWidth(311), + Height = Application.GetRealHeight(58), + X = Application.GetRealWidth(92), + Y = Application.GetRealHeight(49), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextSize = 14, + TextAlignment = TextAlignment.CenterLeft, + }; + rowFrameLayout.AddChidren(btnMethodText); + + var line2 = new Button() + { + Y = rowFrameLayout.Height - 1, + X = Application.GetRealWidth(81), + Width = Application.GetRealWidth(965), + Height = 1, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + }; + rowFrameLayout.AddChidren(line2); + if (i == count) + { + line2.Visible = false; + } + #endregion + + #region 鏁版嵁澶勭悊 + EventHandler<MouseEventArgs> hander = (sender, e) => + { + if (!btnAllMethod.IsSelected) + { + if (oldbutton != null) + { + oldbutton.IsSelected = false; + } + if (oldbuttonText != null) + { + oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; + } + oldbutton = btnAllMethod; + oldbuttonText = btnMethodText; + + doorLock.ReSave(); + btnAllMethod.IsSelected = true; + oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + oldbuttonText.IsBold = true; + doorLock.currentUserDisplayMethod = btnMethodText.Text; + TypeRefresh(doorLock); + } + dialog.Close(); + }; + rowFrameLayout.MouseUpEventHandler += hander; + btnAllMethod.MouseUpEventHandler += hander; + btnMethodText.MouseUpEventHandler += hander; + + DisplayAllUnlockMethod(doorLock, i, btnAllMethod, btnMethodText); + + if (string.IsNullOrEmpty(doorLock.currentUserDisplayMethod) && i == 0) + { + CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText); + } + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod) && i == 0) + { + CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText); + } + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock) && i == 1) + { + CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText); + } + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock) && i == 2) + { + CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText); + } + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock) && i == 3) + { + CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText); + } + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FaceIDUnlock) && i == 4) + { + CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText); + } + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.CalmFingerprintUnlock) && i == 5) + { + CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText); + } + #endregion + } + } + + /// <summary> + /// 褰撳墠闂ㄩ攣鏀寔鐨勫紑閿佺被鍨嬩釜鏁� + /// </summary> + /// <param name="doorLock"></param> + /// <returns></returns> + public int GetSupportType(ZigBee.Device.DoorLock doorLock) + { + int count = 0; + var listDevice = Common.LocalDevice.Current.GetDevicesByMac(doorLock.DeviceAddr); + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice); + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_AT1F) + { + //AT1F鏈夊瘑鐮侊紝鎰熷簲鍗★紝faceID + count = 3; + } + else if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_AT1T) + { + //AT1T鏈夊瘑鐮侊紝鎸囩汗锛屾劅搴斿崱 + count = 3; + } + else if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_AT1TF) + { + //AT1TF鏈夊瘑鐮侊紝鎸囩汗锛屾劅搴斿崱,faceID + count = 4; + } + else if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_HAT1B) + { + //HAT1B瀵嗙爜銆侀潤鑴夌汗銆佸埛鍗� + count = 3; + } + else if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.IntelligentLocks_HAT1T) + { + //HAT1T瀵嗙爜銆佹寚绾广�佸埛鍗� + count = 3; + } + else + { + //鍙湁瀵嗙爜锛屾寚绾癸紝鎰熷簲鍗� + count = 3; + } + return count; + } + + /// <summary> + /// 绫诲瀷鍖哄垎 + /// </summary> + public void TypeRefresh(ZigBee.Device.DoorLock doorLock) + { + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock)) + { + UndateUnlockMethodAction?.Invoke(0); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock)) + { + UndateUnlockMethodAction?.Invoke(3); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.CalmFingerprintUnlock)) + { + UndateUnlockMethodAction?.Invoke(13); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FaceIDUnlock)) + { + UndateUnlockMethodAction?.Invoke(14); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock)) + { + UndateUnlockMethodAction?.Invoke(15); + } + else + { + UndateUnlockMethodAction?.Invoke(-1); + } + //姣忔璋冨畬娓呯┖ + UndateUnlockMethodAction = null; + } + + #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