From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期二, 21 七月 2020 09:46:53 +0800 Subject: [PATCH] 请合并最新多功能面板代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs | 813 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 813 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs new file mode 100755 index 0000000..d259aeb --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs @@ -0,0 +1,813 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using Shared.Common; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter.DoorLock +{ + public class UnLockMethod : DoorLockCommonLayout, ZigBee.Common.IStatus + { + /// <summary> + /// 澶勭悊鍙樺寲浜嬩欢 + /// </summary> + /// <param name="common"></param> + /// <param name="typeTag"></param> + public void DeviceInfoChange(CommonDevice tempDevice, string typeTag) + { + if (typeTag == "DoorLockProgrammingEventNotificationCommand" && tempDevice != null) + { + if (tempDevice != null) + { + if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint + && tempDevice.DeviceAddr == doorLock.DeviceAddr) + { + var doorLock = tempDevice as ZigBee.Device.DoorLock; + if (doorLock.doorLockProgrammingEventNotificationCommand != null) + { + } + } + } + } + } + /// 鏋勯�犲嚱鏁� + /// </summary> + /// <param name="doorLock"></param> + public UnLockMethod(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj) + { + this.doorLock = doorLock; + this.curAccountObj = accountObj; + BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; + } + + #region 鍙橀噺鐢虫槑 + /// <summary> + /// 褰撳墠闂ㄩ攣 + /// </summary> + ZigBee.Device.DoorLock doorLock; + /// <summary> + /// 鍒锋柊View + /// </summary> + VerticalListRefreshControl bodyView; + /// <summary> + /// 褰撳墠閫夋嫨鐨勬柟寮� + /// </summary> + Button currentMethod; + /// <summary> + /// 褰撳墠璐︽埛 + /// </summary> + Shared.Phone.UserCenter.MemberInfoRes curAccountObj; + /// <summary> + /// 鏁版嵁涓虹┖锛孶I鏄剧ず鐨勭┖鍥剧墖 + /// </summary> + Button entryStatusPic; + /// <summary> + /// 鏁版嵁涓虹┖锛孶I鏄剧ず鐨勬枃鏈彁绀� + /// </summary> + Button btnPicTip; + /// <summary> + /// 鏁版嵁涓虹┖锛孶I鏄剧ず鐨勬枃鏈彁绀� + /// </summary> + Button btnPicTip1; + /// <summary> + /// //鏄惁浜屾鍒犻櫎 + /// </summary> + bool isSecondDel; + /// <summary> + /// 绌烘暟鎹樉绀哄竷灞� + /// </summary> + FrameLayout blankFrameLayout; + #endregion + + /// <summary> + /// 璇诲彇闂ㄩ攣瀛樺偍鐨勬渶鏂版暟鎹� + /// </summary> + void ReadDoorLockUserInfo() + { + System.Threading.Tasks.Task.Run(async () => + { + try + { + var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock); + if (doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] == true) + { + //鏁版嵁濡傛灉鍦ㄩ棬閿佷笂闈㈡槸绌虹殑鏃跺�欙紝鏁版嵁涔熸槸娌℃湁鐨� + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + // 绫诲瀷鍖哄垎 + TypeRefresh(); + CommonPage.Loading.Hide(); + bodyView.EndHeaderRefreshing(); + }); + } + }); + } + + /// <summary> + /// UI鏄剧ず + /// </summary> + public void Show() + { + UserView.HomePage.Instance.ScrollEnabled = false; + doorLock.currentUserDisplayMethod = ""; + this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.LockMethod)); + this.btnTitleLine.Visible = false; + EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => + { + this.RemoveFromParent(); + }; + this.btnBack.MouseUpEventHandler += eHandlerBack; + this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; + this.MidFrameLayout(this); + + var btnAddFrameLayout = new FrameLayout + { + X = Application.GetRealWidth(953 - 116), + Height = Application.GetRealHeight(72), + Width = Application.GetRealWidth(72), + }; + this.titleFrameLayout.AddChidren(btnAddFrameLayout); + + var btnAdd = new Button + { + Height = Application.GetRealHeight(69), + Width = Application.GetRealWidth(69), + UnSelectedImagePath = "DoorLock/AddIcon.png", + }; + btnAddFrameLayout.AddChidren(btnAdd); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + btnAdd.Width = 0; + } + btnAdd.MouseDownEventHandler += (sender, e) => + { + if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == true) + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + } + else + { + var addUnLockMethod = new Shared.Phone.UserCenter.DoorLock.AddUnLockMethod(doorLock, curAccountObj); + Shared.Phone.UserView.HomePage.Instance.AddChidren(addUnLockMethod); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + addUnLockMethod.Show(); + } + }; + if (UserCenterResourse.UserInfo.AuthorityNo == 3) + { + btnAddFrameLayout.Width = 0; + } + else + { + btnAddFrameLayout.Width = Application.GetRealWidth(72); + } + + MidFrameLayoutContent(); + if (doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] == true) + { + CommonPage.Loading.Start("Loading..."); + ReadDoorLockUserInfo(); + } + else + { + RefreshList(); + } + } + + /// <summary> + /// 涓儴甯冨眬 + /// </summary> + void MidFrameLayoutContent() + { + #region 寮�閿佹柟寮廢I + var midTopFrameLayout = new FrameLayout() + { + Height = Application.GetRealHeight(115), + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout, + }; + this.midFrameLayout.AddChidren(midTopFrameLayout); + + var btnAllMethod = new Button() + { + Height = Application.GetRealHeight(49), + Width = Application.GetRealWidth(141 + 100), + Y = Application.GetRealHeight(35), + X = Application.GetRealWidth(812 - 100), + TextAlignment = TextAlignment.CenterRight, + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, + TextSize = 12, + IsBold = true, + }; + midTopFrameLayout.AddChidren(btnAllMethod); + // 绫诲瀷鍖哄垎 + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod)) + { + btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock)) + { + btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock)) + { + btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock)) + { + btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock); + } + else + { + btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod); + } + + var btnNext = new Button() + { + X = Application.GetRealWidth(953), + Y = Application.GetRealHeight(20), + Height = Application.GetRealHeight(69), + Width = Application.GetRealWidth(69), + UnSelectedImagePath = "DoorLock/UnLockSideslipIcon.png", + SelectedImagePath = "DoorLock/UnLockSideslipIcon.png", + }; + midTopFrameLayout.AddChidren(btnNext); + + EventHandler<MouseEventArgs> handerSideLip = (sender, e) => + { + SideslipFramelayout(); + }; + btnNext.MouseUpEventHandler += handerSideLip; + btnAllMethod.MouseUpEventHandler += handerSideLip; + var btnLine = new Button + { + Y = midTopFrameLayout.Bottom, + Height = 1, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine, + }; + this.midFrameLayout.AddChidren(btnLine); + #endregion + + bodyView = new VerticalListRefreshControl(29) + { + Y = btnLine.Bottom, + Height = Application.GetRealHeight(1921 - 184 - 116), + }; + this.midFrameLayout.AddChidren(bodyView); + bodyView.BeginHeaderRefreshingAction += () => + { + bodyView.BeginHeaderRefreshing(); + ReadDoorLockUserInfo(); + }; + BlankPicUI(); + } + + /// <summary> + /// 绌烘暟鎹甎I鏄剧ず + /// </summary> + void BlankPicUI() + { + blankFrameLayout = new FrameLayout + { + }; + bodyView.AddChidren(blankFrameLayout); + + entryStatusPic = new Button + { + X = Application.GetRealWidth(164), + Y = Application.GetRealHeight(377), + Height = Application.GetRealHeight(435), + Width = Application.GetRealHeight(757), + Visible = false, + UnSelectedImagePath = "DoorLock/UnLockBlankPic.png", + Gravity = Gravity.CenterHorizontal, + }; + blankFrameLayout.AddChidren(entryStatusPic); + + btnPicTip = new Button + { + X = Application.GetRealWidth(397), + Text = Language.StringByID(R.MyInternationalizationString.NoPasswordInformation), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + Gravity = Gravity.CenterHorizontal, + Visible = false, + Y = Application.GetRealHeight(844), + TextSize = 12, + }; + blankFrameLayout.AddChidren(btnPicTip); + + btnPicTip1 = new Button + { + X = Application.GetRealWidth(397), + Y = Application.GetRealHeight(844 + 49), + Text = Language.StringByID(R.MyInternationalizationString.NoPasswordInformation1), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + Gravity = Gravity.CenterHorizontal, + Visible = true, + TextSize = 12, + }; + blankFrameLayout.AddChidren(btnPicTip1); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + btnPicTip1.Width = 0; + } + } + + /// <summary> + /// 鍒锋柊鍒楄〃 + /// </summary> + /// <param name="gateway"></param> + /// <param name="key"></param> + public void RefreshList(int unlockMethod = -1) + { + bodyView.RemoveAll(); + this.midFrameLayout.RemoveAll(); + MidFrameLayoutContent(); + var curAccountDoorLockUserList = new Dictionary<int, ZigBee.Device.DoorLock.LocaDoorLockObj>(); + foreach (var curUserId in doorLock.localDoorLockUserList.Keys) + { + var curDoorLockUser = doorLock.localDoorLockUserList[curUserId]; + + if (string.IsNullOrEmpty(curDoorLockUser.ConnectedAccount) || curDoorLockUser.ConnectedAccount != curAccountObj.SubAccountDistributedMark) + { + continue; + } + else + { + curAccountDoorLockUserList.Add(curDoorLockUser.UserID, curDoorLockUser); + } + } + + if (curAccountDoorLockUserList.Count == 0) + { + entryStatusPic.Visible = true; + btnPicTip.Visible = true; + btnPicTip1.Visible = true; + blankFrameLayout.Visible = true; + entryStatusPic.Height = Application.GetRealHeight(435); + entryStatusPic.Width = Application.GetRealHeight(757); + btnPicTip.Height = Application.GetRealHeight(98 / 2); + btnPicTip1.Height = Application.GetRealHeight(98 / 2); + blankFrameLayout.Height = bodyView.Height; + } + else + { + entryStatusPic.Visible = false; + btnPicTip.Visible = false; + btnPicTip1.Visible = false; + blankFrameLayout.Visible = false; + entryStatusPic.Height = Application.GetRealHeight(0); + entryStatusPic.Width = Application.GetRealHeight(0); + btnPicTip.Height = Application.GetRealHeight(0); + btnPicTip1.Height = Application.GetRealHeight(0); + blankFrameLayout.Height = Application.GetRealHeight(0); + + int i = 0; + foreach (var curUserId in curAccountDoorLockUserList.Keys) + { + var curDoorLockUser = curAccountDoorLockUserList[curUserId]; + switch (unlockMethod) + { + case 0: + if (curDoorLockUser.UnlockType != unlockMethod) + { + continue; + } + break; + case 3: + if (curDoorLockUser.UnlockType != unlockMethod) + { + continue; + } + break; + case 15: + if (curDoorLockUser.UnlockType != unlockMethod) + { + continue; + } + break; + default: + break; + } + + #region UI + var rowFrameLayout = new RowLayoutControl(bodyView.rowSpace / 2); + rowFrameLayout.BackgroundColor = ZigbeeColor.Current.XMWhite; + bodyView.AddChidren(rowFrameLayout); + rowFrameLayout.frameTable.UseClickStatu = false; + var btnicon = rowFrameLayout.frameTable.AddLeftIcon(); + btnicon.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png"; + //涓婇潰闂ㄩ攣鐢ㄦ埛鍚嶇О涓�琛� + var memberText = ""; + if (string.IsNullOrEmpty(curAccountObj.UserName)) + { + memberText = curAccountObj.Account; + } + else + { + memberText = curAccountObj.UserName; + } + //鎴愬憳涓�琛� + var btnaa = rowFrameLayout.frameTable.AddBottomView(memberText, 800); + var btnDoorlockUser = new EditText() + { + Width = Application.GetRealWidth(800), + Height = Application.GetRealHeight(60), + X = btnaa.X, + Y = rowFrameLayout.chidrenYaxis + Application.GetRealHeight(12), + TextSize = 14, + PlaceholderTextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, + TextAlignment = TextAlignment.CenterLeft, + }; + rowFrameLayout.frameTable.AddChidren(btnDoorlockUser, ChidrenBindMode.NotBind); + rowFrameLayout.frameTable.AddBottomLine(); + var btndelete = rowFrameLayout.AddDeleteControl(); + btndelete.ButtonClickEvent += (sender, e) => + { + string msg = Language.StringByID(R.MyInternationalizationString.SureToDelUnlockMethod); + var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); + alert.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alert.ConfirmClickEvent += async () => + { + try + { + CommonPage.Loading.Start(""); + var passData = doorLock.SetUserAccessData(curDoorLockUser.UserID, ZigBee.Device.DoorLock.AccessType.DelCurrentUser); + var resultData = await doorLock.DefaultControlAsync(passData); + if (resultData != null && resultData.defaultControlResponseData != null) + { + if (resultData.defaultControlResponseData.status == 0 || resultData.defaultControlResponseData.status == 2) + { + var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + deleteDoorLockData.IsOtherAccountCtrl = true; + } + if (doorLock.DeviceAddr != null) + { + deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString(); + deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId; + deleteDoorLockData.DelDoorLockDelType = 2; + var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData); + if (result != null) + { + if (result.StateCode == "Success") + { + isSecondDel = false; + if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID)) + { + doorLock.localDoorLockAccountList.Remove(curDoorLockUser.ConnectedAccount); + var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; + localDoorLockObj.UserID = curDoorLockUser.UserID; + doorLock.localDoorLockUserList.Remove(curUserId); + doorLock.ReSave(); + TypeRefresh(); + } + } + else + { + //寮�鍏冲浘鏍� + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); + } + } + else + { + isSecondDel = true; + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); + } + } + else + { + if (isSecondDel) + { + var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + deleteDoorLockData.IsOtherAccountCtrl = true; + } + if (doorLock.DeviceAddr != null) + { + deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString(); + deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId; + deleteDoorLockData.DelDoorLockDelType = 2; + var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData); + if (result != null) + { + if (result.StateCode == "Success") + { + isSecondDel = false; + if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID)) + { + doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID); + var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; + localDoorLockObj.UserID = curDoorLockUser.UserID; + doorLock.localDoorLockUserList.Remove(curUserId); + TypeRefresh(); + } + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); + } + } + else + { + isSecondDel = true; + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); + } + } + else + { + if (curDoorLockUser.UserID < 10) + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.OnlyBeDeletedOnTheDevice), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); + } + } + } + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance); + } + } + catch { } + finally + { + CommonPage.Loading.Hide(); + } + }; + }; + #endregion + + #region 鏁版嵁澶勭悊 + int currentIndex = i; + if (currentIndex == curAccountDoorLockUserList.Keys.Count - 1) + { + rowFrameLayout.LineColor = Shared.Common.ZigbeeColor.Current.XMWhite; + } + + switch (curDoorLockUser.UnlockType) + { + case 0: + if (!string.IsNullOrEmpty(curDoorLockUser.UserName)) + { + btnDoorlockUser.Text = curDoorLockUser.UserName; + } + else + { + btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID; + } + break; + case 3: + if (!string.IsNullOrEmpty(curDoorLockUser.UserName)) + { + btnDoorlockUser.Text = curDoorLockUser.UserName; + } + else + { + btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID; + } + break; + case 15: + if (!string.IsNullOrEmpty(curDoorLockUser.UserName)) + { + btnDoorlockUser.Text = curDoorLockUser.UserName; + } + else + { + btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID; + } + break; + } + + + Action<Shared.View> action = async (obj) => + { + var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + refreshDoorLockData.IsOtherAccountCtrl = true; + } + if (doorLock.DeviceAddr != null) + { + refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + refreshDoorLockData.OpenLockMode = curDoorLockUser.UnlockType; + refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString(); + refreshDoorLockData.PrimaryId = curDoorLockUser.PrimaryId; + refreshDoorLockData.UserIdRemarks = btnDoorlockUser.Text; + var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData); + if (result != null) + { + if (result.StateCode == "Success") + { + if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID)) + { + doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID); + var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; + localDoorLockObj.UserID = curDoorLockUser.UserID; + localDoorLockObj.UnlockType = curDoorLockUser.UnlockType; + localDoorLockObj.PrimaryId = curDoorLockUser.PrimaryId; + localDoorLockObj.EntryTime = curDoorLockUser.EntryTime; + localDoorLockObj.UserName = refreshDoorLockData.UserIdRemarks; + localDoorLockObj.ConnectedAccount = curAccountObj.SubAccountDistributedMark; + doorLock.localDoorLockUserList.Add(curDoorLockUser.UserID, localDoorLockObj); + TypeRefresh(); + } + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ModigfyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); + } + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); + } + }; + btnDoorlockUser.EditorEnterAction += action; + #endregion + i++; + } + } + } + + /// <summary> + /// 渚ц竟瀵艰埅鏍� + /// </summary> + void SideslipFramelayout() + { + #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() + { + Height = Application.GetRealHeight(625), + Width = Application.GetRealWidth(449), + Y = Application.GetRealHeight(115 + 160), + X = Application.GetRealWidth(596), + BackgroundImagePath = "DoorLock/SideslipPic.png", + }; + flMain.AddChidren(sidelipFrameLayout); + + var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout() + { + Height = Application.GetRealHeight(600), + Y = Application.GetRealHeight(28), + }; + sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout); + #endregion + + Button oldbutton = null; + Button oldbuttonText = null; + for (var i = 0; i < 4; i++) + { + #region rowFrameLayout UI + var rowFrameLayout = new RowLayout() + { + Height = Application.GetRealHeight(150), + LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + 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); + #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.currentUserDisplayMethod = btnMethodText.Text; + doorLock.ReSave(); + btnAllMethod.IsSelected = true; + oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + oldbuttonText.IsBold = true; + TypeRefresh(); + } + dialog.Close(); + }; + rowFrameLayout.MouseUpEventHandler += hander; + btnAllMethod.MouseUpEventHandler += hander; + btnMethodText.MouseUpEventHandler += hander; + + DisplayAllUnlockMethod(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); + } + #endregion + } + } + + /// <summary> + /// 绫诲瀷鍖哄垎 + /// </summary> + void TypeRefresh() + { + if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock)) + { + RefreshList(0); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock)) + { + RefreshList(15); + } + else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock)) + { + RefreshList(3); + } + else + { + RefreshList(); + } + } + + /// <summary> + /// 閲嶅啓绉婚櫎鏂规硶 + /// </summary> + public override void RemoveFromParent() + { + UserView.HomePage.Instance.ScrollEnabled = true; + ZbGateway.StatusList.Remove(this); + base.RemoveFromParent(); + } + } +} -- Gitblit v1.8.0