using System;
|
using Newtonsoft.Json.Linq;
|
using Shared.Common;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.DoorLock
|
{
|
public class AddUnLockMethodTip : DoorLockCommonLayout
|
{
|
/// 构造函数
|
/// </summary>
|
/// <param name="doorLock"></param>
|
public AddUnLockMethodTip(ZigBee.Device.DoorLock doorLock, MemberInfoRes accountObj, string entryType)
|
{
|
this.doorLock = doorLock;
|
this.curAccountObj = accountObj;
|
this.currentType = entryType;
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
|
}
|
|
#region 变量申明
|
/// <summary>
|
/// 当前门锁
|
/// </summary>
|
ZigBee.Device.DoorLock doorLock;
|
/// <summary>
|
/// 当前账户
|
/// </summary>
|
MemberInfoRes curAccountObj;
|
/// <summary>
|
/// 当前类型
|
/// </summary>
|
string currentType = string.Empty;
|
/// <summary>
|
/// 接收通知
|
/// </summary>
|
Action<string, string> action;
|
|
#endregion
|
|
/// <summary>
|
/// UI显示
|
/// </summary>
|
public void Show()
|
{
|
string currentTitle = "";
|
if (currentType == "password")
|
{
|
currentTitle = Language.StringByID(R.MyInternationalizationString.AddPassword);
|
}
|
else if (currentType == "fingerprint")
|
{
|
currentTitle = Language.StringByID(R.MyInternationalizationString.AddFingerprint);
|
}
|
else if (currentType == "proximity")
|
{
|
currentTitle = Language.StringByID(R.MyInternationalizationString.AddIcCard);
|
}
|
this.TopFrameLayout(this, currentTitle);
|
|
EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
|
{
|
this.RemoveFromParent();
|
};
|
this.btnBack.MouseUpEventHandler += eHandlerBack;
|
this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
|
this.MidFrameLayout(this);
|
|
MidFrameLayoutContent();
|
}
|
|
/// <summary>
|
/// 重写移除方法
|
/// </summary>
|
public override void RemoveFromParent()
|
{
|
if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null)
|
{
|
doorLock.Gateway.GwResDataAction -= action;
|
}
|
base.RemoveFromParent();
|
}
|
|
/// <summary>
|
/// 中部布局
|
/// </summary>
|
public void MidFrameLayoutContent()
|
{
|
var topMidFrameLayout = new FrameLayout
|
{
|
X = Application.GetRealWidth(104),
|
Y = Application.GetRealHeight(112),
|
Height = Application.GetRealHeight(873),
|
Width = Application.GetRealWidth(876),
|
};
|
this.midFrameLayout.AddChidren(topMidFrameLayout);
|
|
var btnPicTip1 = new Button
|
{
|
X = Application.GetRealWidth(446),
|
Y = Application.GetRealHeight(330),
|
Height = Application.GetRealHeight(76 / 2),
|
Width = Application.GetRealWidth(407),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
|
TextSize = 10,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
topMidFrameLayout.AddChidren(btnPicTip1);
|
|
var btnPicTip2 = new Button
|
{
|
X = Application.GetRealWidth(446),
|
Y = btnPicTip1.Bottom,
|
Height = Application.GetRealHeight(76 / 2),
|
Width = Application.GetRealWidth(207),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
|
TextSize = 10,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
topMidFrameLayout.AddChidren(btnPicTip2);
|
|
var btnPicTip3 = new Button
|
{
|
X = Application.GetRealWidth(294),
|
Y = Application.GetRealHeight(1089),
|
Height = Application.GetRealHeight(100 / 2),
|
Width = Application.GetRealWidth(488),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
|
Gravity = Gravity.CenterHorizontal,
|
TextSize = 14,
|
};
|
this.midFrameLayout.AddChidren(btnPicTip3);
|
|
var btnPicTip4 = new Button
|
{
|
X = Application.GetRealWidth(397),
|
Y = btnPicTip3.Y + Application.GetRealHeight(50),
|
Width = Application.GetRealWidth(288),
|
Height = Application.GetRealHeight(100 / 2),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
|
Gravity = Gravity.CenterHorizontal,
|
TextSize = 14,
|
};
|
this.midFrameLayout.AddChidren(btnPicTip4);
|
|
var btnPicTip5 = new Button
|
{
|
X = Application.GetRealWidth(202),
|
Y = Application.GetRealHeight(1388),
|
Height = Application.GetRealHeight(49),
|
Width = Application.GetRealWidth(685),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
Gravity = Gravity.CenterHorizontal,
|
TextSize = 12,
|
};
|
this.midFrameLayout.AddChidren(btnPicTip5);
|
|
var nextBtn = new Button
|
{
|
X = Application.GetRealWidth(86),
|
Y = Application.GetRealHeight(1472),
|
Height = Application.GetRealHeight(127),
|
Width = Application.GetRealWidth(907),
|
Text = Language.StringByID(R.MyInternationalizationString.NextStepXm),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
|
Gravity = Gravity.CenterHorizontal,
|
Radius = (uint)Application.GetRealHeight(127 / 2),
|
TextSize = 16,
|
IsBold = true,
|
Enable = false,
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect,
|
};
|
this.midFrameLayout.AddChidren(nextBtn);
|
|
if (currentType == "password")
|
{
|
topMidFrameLayout.BackgroundImagePath = "DoorLock/AddPasswordTicPic.png";
|
btnPicTip1.Width = Application.GetRealWidth(307);
|
btnPicTip1.X = Application.GetRealWidth(500);
|
btnPicTip1.Y = Application.GetRealHeight(350);
|
btnPicTip2.X = Application.GetRealWidth(543);
|
btnPicTip2.Y = btnPicTip1.Bottom + Application.GetRealHeight(10);
|
btnPicTip2.Width = Application.GetRealWidth(207);
|
btnPicTip1.Text = Language.StringByID(R.MyInternationalizationString.EntryPasswordTip1);
|
btnPicTip2.Text = Language.StringByID(R.MyInternationalizationString.EntryPassword);
|
btnPicTip3.Text = Language.StringByID(R.MyInternationalizationString.EntryPasswordTip2);
|
btnPicTip4.Text = btnPicTip2.Text;
|
btnPicTip5.Text = Language.StringByID(R.MyInternationalizationString.EntryTip);
|
}
|
else if (currentType == "fingerprint")
|
{
|
topMidFrameLayout.BackgroundImagePath = "DoorLock/AddFingerprintTipPic.png";
|
btnPicTip1.Text = Language.StringByID(R.MyInternationalizationString.EntryFingerprintTip1);
|
btnPicTip2.Text = Language.StringByID(R.MyInternationalizationString.EntryFingerprint);
|
btnPicTip3.Text = Language.StringByID(R.MyInternationalizationString.EntryFingerprintTip2);
|
btnPicTip4.Text = btnPicTip2.Text;
|
btnPicTip1.X = Application.GetRealWidth(486);
|
btnPicTip1.Y = Application.GetRealHeight(320);
|
btnPicTip2.X = Application.GetRealWidth(543);
|
btnPicTip2.Width = Application.GetRealWidth(207);
|
btnPicTip1.X = Application.GetRealWidth(450);
|
btnPicTip5.Text = Language.StringByID(R.MyInternationalizationString.EntryTip);
|
}
|
else if (currentType == "proximity")
|
{
|
topMidFrameLayout.BackgroundImagePath = "DoorLock/AddIcCardTipPic.png";
|
btnPicTip3.Width = Application.GetRealWidth(495);
|
btnPicTip1.X = Application.GetRealWidth(440);
|
btnPicTip1.Y = Application.GetRealHeight(313);
|
btnPicTip2.X = Application.GetRealWidth(538);
|
btnPicTip2.Width = Application.GetRealWidth(207);
|
btnPicTip1.Text = Language.StringByID(R.MyInternationalizationString.EntryProximityTip1);
|
btnPicTip2.Text = Language.StringByID(R.MyInternationalizationString.EntryProximityCard);
|
btnPicTip3.Text = Language.StringByID(R.MyInternationalizationString.EntryProximityTip2);
|
btnPicTip4.Text = btnPicTip2.Text;
|
btnPicTip5.Text = Language.StringByID(R.MyInternationalizationString.EntryTip);
|
}
|
|
action = (topic, data) =>
|
{
|
var gatewayID = topic.Split('/')[0];
|
var jObjectdata = JObject.Parse(data);
|
if (jObjectdata == null)
|
{
|
return;
|
}
|
if (topic == $"{gatewayID}/DoorLock/DoorLockOperatingEventNotificationCommand")
|
{
|
var OperatingEventNotificationDatad = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockOperatingEventNotificationCommand>(jObjectdata["Data"].ToString());
|
if (OperatingEventNotificationDatad != null)
|
{
|
doorLock.doorLockOperatingEventNotificationCommand = OperatingEventNotificationDatad;
|
}
|
}
|
if (topic == $"{gatewayID}/DoorLock/DoorLockProgrammingEventNotificationCommand")
|
{
|
var ProgrammingEventNotificationData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockProgrammingEventNotificationCommand>(jObjectdata["Data"].ToString());
|
if (ProgrammingEventNotificationData != null)
|
{
|
int curMethod = -1;
|
if (currentType == "password")
|
{
|
curMethod = 0;
|
}
|
else if (currentType == "fingerprint")
|
{
|
curMethod = 15;
|
}
|
else if (currentType == "proximity")
|
{
|
curMethod = 3;
|
}
|
else
|
{
|
return;
|
}
|
if (ProgrammingEventNotificationData.ProgramEventSoure == curMethod)
|
{
|
doorLock.doorLockProgrammingEventNotificationCommand = ProgrammingEventNotificationData;
|
var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
|
localDoorLockObj.UserID = ProgrammingEventNotificationData.UserID;
|
localDoorLockObj.UnlockType = ProgrammingEventNotificationData.ProgramEventSoure;
|
localDoorLockObj.EntryTime = System.DateTime.Now;
|
//先暂时加入,等云端添加和获取真正成功后才真的加入
|
if (!doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj.UserID))
|
{
|
doorLock.localDoorLockUserList.Add(ProgrammingEventNotificationData.UserID, localDoorLockObj);
|
}
|
Application.RunOnMainThread(() =>
|
{
|
nextBtn.Enable = true;
|
nextBtn.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
|
});
|
}
|
}
|
}
|
};
|
|
if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null)
|
{
|
doorLock.Gateway.GwResDataAction += action;
|
}
|
|
nextBtn.MouseDownEventHandler += (sende, e) =>
|
{
|
this.RemoveFromParent();
|
var entryStatusPage = new Shared.Phone.UserCenter.DoorLock.EntryStatusPage(doorLock, curAccountObj, currentType);
|
Shared.Phone.UserView.HomePage.Instance.AddChidren(entryStatusPage);
|
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
|
entryStatusPage.Show();
|
};
|
}
|
}
|
}
|