using System;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;
using Shared.Common;
using Shared.Phone.UserCenter.Device;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.DoorLock
{
public class EntryStatusPage : DoorLockCommonLayout, ZigBee.Common.IStatus
{
/// 构造函数
///
///
public EntryStatusPage(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj, string entryType)
{
this.doorLock = doorLock;
this.curAccountObj = accountObj;
this.currentType = entryType;
BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
}
#region ◆ 变量申明__________________________
ZigBee.Device.DoorLock doorLock;
Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
string currentType = string.Empty;
FrameLayout bottomFrameLayout;
#endregion
///
/// UI显示
///
public void Show()
{
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.AddNewUnlockMethod));
EventHandler eHandlerBack = (sender, e) =>
{
RemoveFromParent();
};
this.btnBack.MouseUpEventHandler += eHandlerBack;
this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
this.MidFrameLayout(this);
MidFrameLayoutContent();
}
public void MidFrameLayoutContent()
{
var entryStatusPic = new Button
{
X = Application.GetRealWidth(297),
Y = Application.GetRealHeight(268),
Height = Application.GetRealHeight(363),
Width = Application.GetRealWidth(452),
UnSelectedImagePath = "DoorLock/EntrySuccessIcon.png",
};
this.midFrameLayout.AddChidren(entryStatusPic);
var btnPicTip = new Button
{
X = Application.GetRealWidth(372),
Y = Application.GetRealHeight(634),
Height = Application.GetRealHeight(81),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
Gravity = Gravity.CenterHorizontal,
TextSize = 20,
IsBold = true,
};
this.midFrameLayout.AddChidren(btnPicTip);
if (currentType == "password")
{
btnPicTip.Text = Language.StringByID(R.MyInternationalizationString.EntryPasswordSuccess);
}
else if (currentType == "fingerprint")
{
btnPicTip.Text = Language.StringByID(R.MyInternationalizationString.EntryFingerprintSuccess);
}
else
{
btnPicTip.Text = Language.StringByID(R.MyInternationalizationString.EntryProximitySuccess);
}
BottomFrameLayoutContent();
}
public void BottomFrameLayoutContent()
{
bottomFrameLayout = new FrameLayout()
{
Height = Application.GetRealHeight(737),
Y = Application.GetRealHeight(999),
BackgroundColor = ZigbeeColor.Current.XMWhite,
};
this.midFrameLayout.AddChidren(bottomFrameLayout);
var passwordRemarkFrameLayout = new FrameLayout()
{
Width = Application.GetRealWidth(965),
Height = Application.GetRealHeight(127),
X = Application.GetRealWidth(58),
Y = Application.GetRealHeight(81),
};
bottomFrameLayout.AddChidren(passwordRemarkFrameLayout);
var btnPasswordRemark = new Button()
{
Width = Application.GetRealWidth(222),
Height = Application.GetRealHeight(58),
Y = Application.GetRealHeight(35),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextAlignment = TextAlignment.CenterLeft,
TextSize = 14,
};
passwordRemarkFrameLayout.AddChidren(btnPasswordRemark);
var btnPasswordRemarkContent = new EditText()
{
Width = Application.GetRealWidth(965 - 222),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(223),
Y = Application.GetRealHeight(35),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 14,
PlaceholderTextColor = ZigbeeColor.Current.XMGray3,
TextColor = ZigbeeColor.Current.XMBlack
};
passwordRemarkFrameLayout.AddChidren(btnPasswordRemarkContent);
var btnLine = new FrameLayout()
{
Width = Application.GetRealWidth(965),
Height = 1,
X = Application.GetRealWidth(58),
Y = Application.GetRealHeight(81 + 127),
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
};
bottomFrameLayout.AddChidren(btnLine);
var personRemarkRemarkFrameLayout = new FrameLayout()
{
Width = Application.GetRealWidth(965),
Height = Application.GetRealHeight(127),
X = Application.GetRealWidth(58),
Y = btnLine.Bottom + Application.GetRealHeight(2),
};
bottomFrameLayout.AddChidren(personRemarkRemarkFrameLayout);
var btnMatchPersonRemark = new Button()
{
Width = Application.GetRealWidth(222),
Height = Application.GetRealHeight(58),
Y = Application.GetRealHeight(35),
Text = Language.StringByID(R.MyInternationalizationString.MatchPerson) + ":",
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextAlignment = TextAlignment.CenterLeft,
TextSize = 14,
};
personRemarkRemarkFrameLayout.AddChidren(btnMatchPersonRemark);
var btnMatchPersonContent = new Button()
{
Width = Application.GetRealWidth(965 - 222),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(223),
Y = Application.GetRealHeight(35),
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
TextAlignment = TextAlignment.CenterLeft,
TextSize = 14,
};
personRemarkRemarkFrameLayout.AddChidren(btnMatchPersonContent);
var btnLine1 = new FrameLayout()
{
Width = Application.GetRealWidth(965),
Height = 1,
X = Application.GetRealWidth(58),
Y = Application.GetRealHeight(81 + 127 + 12 + 127),
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
};
bottomFrameLayout.AddChidren(btnLine1);
var completeBtn = new Button
{
X = Application.GetRealWidth(86),
Y = Application.GetRealHeight(472),
Height = Application.GetRealHeight(127),
Width = Application.GetRealWidth(907),
Text = Language.StringByID(R.MyInternationalizationString.DoorLockComplete),
TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
Gravity = Gravity.CenterHorizontal,
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack,
Radius = (uint)Application.GetRealHeight(127 / 2),
TextSize = 16,
IsBold = true,
};
bottomFrameLayout.AddChidren(completeBtn);
if (currentType == "password")
{
btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.PasswordRemark);
btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
}
else if (currentType == "fingerprint")
{
btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.FingerprintRemark);
btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
}
else
{
btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.ProximityRemark);
btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
}
if (!string.IsNullOrEmpty(curAccountObj.UserName))
{
btnMatchPersonContent.Text = curAccountObj.UserName;
}
else
{
btnMatchPersonContent.Text = curAccountObj.Account;
}
completeBtn.MouseDownEventHandler += async (sender, e) =>
{
completeBtn.Enable = false;
if (doorLock.doorLockProgrammingEventNotificationCommand == null)
{
return;
}
var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
if (UserCenterResourse.UserInfo.AuthorityNo != 1)
{
addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
addLockInfo.IsOtherAccountCtrl = true;
}
addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
if (doorLock.DeviceAddr != null)
{
addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
}
addLockInfo.OpenLockMode = doorLock.doorLockProgrammingEventNotificationCommand.ProgramEventSoure;
addLockInfo.DoorLockLocalUserId = doorLock.doorLockProgrammingEventNotificationCommand.UserID.ToString();
addLockInfo.EntryTime = System.DateTime.Now;
if (!string.IsNullOrEmpty(btnPasswordRemarkContent.Text))
{
addLockInfo.UserIdRemarks = btnPasswordRemarkContent.Text;
}
else
{
addLockInfo.UserIdRemarks = btnPasswordRemarkContent.PlaceholderText;
}
try
{
Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
if (result != null)
{
if (result.StateCode == "Success")
{
if (doorLock.localDoorLockUserList.ContainsKey(doorLock.doorLockProgrammingEventNotificationCommand.UserID))
{
//存门锁信息
var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetCloudLocalDoorLocklist(doorLock, curAccountObj.SubAccountDistributedMark);
if (resultList != null)
{
if (resultList.ContainsKey(doorLock.doorLockProgrammingEventNotificationCommand.UserID) == true)
{
var a = resultList[doorLock.doorLockProgrammingEventNotificationCommand.UserID];
if (a?.ConnectedAccount == curAccountObj.SubAccountDistributedMark)
{
completeBtn.Enable = true;
this.RemoveFromParent();
for (int i = UserView.HomePage.Instance.ChildrenCount - 1; i >= 0; i--)
{
var form = UserView.HomePage.Instance.GetChildren(i);
if (form is UnLockMethod)
{
doorLock.currentUserDisplayMethod = "";
((UnLockMethod)form).RefreshList();
break;
}
else
{
form.RemoveFromParent();
}
}
}
else
{
completeBtn.Enable = true;
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnPasswordRemarkContent);
}
}
}
else
{
completeBtn.Enable = true;
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnPasswordRemarkContent);
}
}
}
else
{
completeBtn.Enable = true;
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AddFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnPasswordRemarkContent);
}
}
else
{
completeBtn.Enable = true;
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnPasswordRemarkContent);
}
}
catch { }
finally
{
CommonPage.Loading.Hide();
}
};
}
public void MatchUsersFrameLayout()
{
var flMain = new FrameLayout { BackgroundColor = 0x0f000000 };
this.midFrameLayout.AddChidren(flMain);
flMain.MouseUpEventHandler += (sender11, e11) =>
{
flMain.RemoveFromParent();
bottomFrameLayout.RemoveAll();
BottomFrameLayoutContent();
};
bottomFrameLayout = new FrameLayout()
{
Height = Application.GetRealHeight(100),
Y = Application.GetRealHeight(930),
Radius = 17,
BackgroundColor = ZigbeeColor.Current.XMWhite,
};
flMain.AddChidren(bottomFrameLayout);
var bottomFrameLayout1 = new FrameLayout()
{
Height = Application.GetRealHeight(806 - 50),
Y = Application.GetRealHeight(930 + 48),
BackgroundColor = ZigbeeColor.Current.XMWhite,
};
flMain.AddChidren(bottomFrameLayout1);
var bottomFrameLayout2 = new FrameLayout()
{
Height = Application.GetRealHeight(806),
Y = Application.GetRealHeight(930),
};
flMain.AddChidren(bottomFrameLayout2);
var matchUsersFrameLayout = new FrameLayout()
{
Height = Application.GetRealHeight(138),
};
bottomFrameLayout2.AddChidren(matchUsersFrameLayout);
var btnCancel = new Button
{
X = Application.GetRealWidth(81),
Y = Application.GetRealHeight(40),
Height = Application.GetRealHeight(58),
Width = Application.GetRealWidth(101),
Text = Language.StringByID(R.MyInternationalizationString.Cancel),
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
TextSize = 14,
};
matchUsersFrameLayout.AddChidren(btnCancel);
var btnMatchUser = new Button
{
X = Application.GetRealWidth(446),
Y = Application.GetRealHeight(35),
Height = Application.GetRealHeight(63),
Width = Application.GetRealWidth(284),
Text = Language.StringByID(R.MyInternationalizationString.MatchPerson),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextSize = 16,
};
matchUsersFrameLayout.AddChidren(btnMatchUser);
var btnFinish = new Button
{
X = Application.GetRealWidth(919),
Y = Application.GetRealHeight(40),
Height = Application.GetRealHeight(58),
Width = Application.GetRealWidth(101),
Text = Language.StringByID(R.MyInternationalizationString.Complete),
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
TextSize = 14,
};
matchUsersFrameLayout.AddChidren(btnFinish);
var btnTopLine = new FrameLayout()
{
Height = Application.GetRealHeight(5),
Y = Application.GetRealHeight(138),
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3,
};
bottomFrameLayout2.AddChidren(btnTopLine);
var matchUserHorizontalScrolViewLayout = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(207),
Height = Application.GetRealHeight(806 - 207),
};
bottomFrameLayout2.AddChidren(matchUserHorizontalScrolViewLayout);
for (var i = 0; i < 4; i++)
{
var rowFrameLayout = new FrameLayout()
{
Height = Application.GetRealHeight(127),
};
matchUserHorizontalScrolViewLayout.AddChidren(rowFrameLayout);
var btnUserName = new Button()
{
Width = Application.GetRealWidth(743),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(81),
Y = Application.GetRealHeight(37),
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
TextSize = 14,
TextAlignment = TextAlignment.CenterLeft,
};
rowFrameLayout.AddChidren(btnUserName);
var btnChoose = new Button()
{
Width = Application.GetRealWidth(58),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(861 + 81),
Y = Application.GetRealHeight(35),
BackgroundColor = ZigbeeColor.Current.XMOrange,
};
rowFrameLayout.AddChidren(btnChoose);
var btnLine = new FrameLayout()
{
Width = Application.GetRealWidth(919),
Height = Application.GetRealHeight(5),
X = Application.GetRealWidth(81),
Y = Application.GetRealHeight(122),
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3,
};
rowFrameLayout.AddChidren(btnLine);
}
}
#region ◆ 接口实现__________________________
///
/// 处理变化事件 --将弃用 改用DeviceInfoChange()
///
/// The changed.
/// Common.
public void Changed(CommonDevice common)
{
}
///
/// 处理变化事件
///
///
///
public void DeviceInfoChange(CommonDevice common, string typeTag)
{
}
///
/// Changeds the IL ogic status.
///
/// Logic.
public void ChangedILogicStatus(ZigBee.Device.Logic logic)
{
}
///
/// Changeds the IS cene status.
///
/// Scene.
public void ChangedISceneStatus(Scene scene)
{
}
#endregion
}
}