using System;
|
using Shared;
|
using Shared.R;
|
using System.Collections.Generic;
|
using Newtonsoft.Json.Linq;
|
using ZigBee.Device;
|
using Shared.Common;
|
namespace Shared.Phone.Device.Logic
|
{
|
public class MemberList : FrameLayout
|
{
|
public MemberList()
|
{
|
Tag = "Logic";
|
}
|
Button selectedIcon = new Button();
|
public static Action action;
|
public static bool edit=false;
|
|
|
public async void Show(CommonDevice common, Dictionary<string, string> editdeviceConditionsInfo=null)
|
{
|
|
|
UserView.HomePage.Instance.ScrollEnabled = false;
|
this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
|
#region 最上面的布局代码
|
var topRowLayout = new RowLayout
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor,
|
Height = Application.GetRealHeight(184),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor,
|
};
|
this.AddChidren(topRowLayout);
|
|
var titleName = new Button
|
{
|
TextSize = 16,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
TextAlignment = TextAlignment.CenterLeft,
|
X = Application.GetRealWidth(176),
|
Width = Application.GetRealWidth(600),
|
Height = Application.GetRealHeight(69),
|
Y = Application.GetRealHeight(92),
|
TextID = MyInternationalizationString.userlist,
|
};
|
topRowLayout.AddChidren(titleName);
|
|
var clickBtn = new Button
|
{
|
Width = Application.GetRealWidth(81 + 51),
|
Height = Application.GetRealHeight(58 + 40),
|
Y = Application.GetRealHeight(98 - 40),
|
};
|
topRowLayout.AddChidren(clickBtn);
|
clickBtn.MouseDownEventHandler += (sender, e) =>
|
{
|
RemoveFromParent();
|
action();
|
};
|
|
var back = new Button
|
{
|
Width = Application.GetRealWidth(30),
|
Height = Application.GetRealHeight(51),
|
X = Application.GetRealWidth(81),
|
Y = Application.GetRealHeight(98),
|
//Gravity = Gravity.CenterVertical;
|
UnSelectedImagePath = "ZigeeLogic/back.png",
|
};
|
topRowLayout.AddChidren(back);
|
back.MouseDownEventHandler += (sender, e) =>
|
{
|
RemoveFromParent();
|
};
|
#endregion
|
|
var middle = new VerticalScrolViewLayout
|
{
|
Y = topRowLayout.Bottom,
|
Height = Application.GetRealHeight(1920 - 184),
|
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
this.AddChidren(middle);
|
|
|
bool d = false;
|
string macport = common.DeviceAddr + "_" + common.DeviceEpoint.ToString();
|
for (int i = 0; i < Send.LockList.Count; i++)
|
{
|
if (Send.LockList[i].DoorLockMacPort == macport)
|
{
|
///已经存在该门锁信息
|
d = true;
|
break;
|
}
|
|
}
|
|
if (!d)
|
{
|
var allMemberslist = await Send.AllMembers(common.DeviceAddr);
|
Send.LockList.AddRange(allMemberslist);
|
}
|
|
|
foreach (var user in Send.LockList)
|
{
|
if (user.DoorLockMacPort != macport)
|
{
|
continue;
|
}
|
var userFramelayout = new RowLayout
|
{
|
Height = Application.GetRealHeight(160),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(userFramelayout);
|
|
|
var userRow = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(1080 - 81 - 58),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(81),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
userFramelayout.AddChidren(userRow);
|
|
var userBtn = new Button
|
{
|
Text = user.UserName,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
};
|
userRow.AddChidren(userBtn);
|
|
var userBack = new Button
|
{
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
UnSelectedImagePath = "ZigeeLogic/next.png",
|
X = Application.GetRealWidth(1080 - 81 - 58 - 58),
|
Gravity = Gravity.CenterVertical,
|
};
|
userRow.AddChidren(userBack);
|
|
EventHandler<MouseEventArgs> useridclick = (sender, e) =>
|
{
|
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
|
this.AddChidren(flMain);
|
flMain.MouseUpEventHandler += (sender1, e1) =>
|
{
|
flMain.RemoveFromParent();
|
};
|
|
var lockcolorfra = new FrameLayout
|
{
|
Width = Application.GetRealWidth(1080),
|
Height = Application.GetRealHeight(100),
|
Y = Application.GetRealHeight(1920 - 100),
|
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
|
};
|
flMain.AddChidren(lockcolorfra);
|
|
var lockcolorfra1 = new FrameLayout
|
{
|
|
Width = Application.GetRealWidth(1080),
|
Height = Application.GetRealHeight(530),
|
Y = Application.GetRealHeight(1920 - 530),
|
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
|
Radius = (uint)Application.GetRealHeight(60),
|
};
|
flMain.AddChidren(lockcolorfra1);
|
|
#region -------取消 完成
|
var lockRow = new RowLayout
|
{
|
Height = Application.GetRealHeight(140),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
lockcolorfra1.AddChidren(lockRow);
|
var Btncancel = new Button
|
{
|
TextID = MyInternationalizationString.cancel,
|
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
Height = Application.GetRealHeight(140),
|
Width = Application.GetRealWidth(200),
|
X = Application.GetRealWidth(80),
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
lockRow.AddChidren(Btncancel);
|
Btncancel.MouseUpEventHandler += (sender16, e16) =>
|
{
|
flMain.RemoveFromParent();
|
UserView.HomePage.Instance.ScrollEnabled = true;
|
};
|
|
var Btntitle = new Button
|
{
|
TextID = MyInternationalizationString.security,
|
TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
|
Height = Application.GetRealHeight(140),
|
Width = Application.GetRealWidth(320),
|
TextAlignment = TextAlignment.Center,
|
X = Btncancel.Right + Application.GetRealWidth(100),
|
TextSize = 16,
|
Text = user.UserName,
|
};
|
lockRow.AddChidren(Btntitle);
|
var Btncomplete = new Button
|
{
|
TextID = MyInternationalizationString.complete,
|
TextColor = ZigbeeColor.Current.LogicBtnCompleteColor,
|
Height = Application.GetRealHeight(140),
|
Width = Application.GetRealWidth(200),
|
TextAlignment = TextAlignment.CenterRight,
|
X = Btntitle.Right + Application.GetRealWidth(100),
|
|
};
|
lockRow.AddChidren(Btncomplete);
|
#endregion
|
///定两个变量记录之前的只值;
|
string userId = "", openMode = "", accountname="", SelectedDeviceStatuscondition = "";
|
lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * user.UserIdMode.Count) - 20 - 50);
|
lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * user.UserIdMode.Count) + 20 + 50);
|
for (int i = 0; i < user.UserIdMode.Count; i++)
|
{
|
var userifon = user.UserIdMode[i];
|
var doorlockfra = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160),
|
Y = lockRow.Bottom + Application.GetRealHeight(20 + 160 * i),
|
};
|
lockcolorfra1.AddChidren(doorlockfra);
|
|
var doorlockRow = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(920),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(80),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
doorlockfra.AddChidren(doorlockRow);
|
|
var doorlockBtn = new Button
|
{
|
Width = Application.GetRealWidth(600),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
|
Text= userifon.ModeName,
|
};
|
doorlockRow.AddChidren(doorlockBtn);
|
//(1按键/3卡/15指纹)
|
//switch (userifon.OpenMode.ToString())
|
//{
|
// case "0":
|
// {
|
// doorlockBtn.Text = Language.StringByID(MyInternationalizationString.lockpassword);
|
// }
|
// break;
|
// case "3":
|
// {
|
// doorlockBtn.Text = Language.StringByID(MyInternationalizationString.ic);
|
// }
|
// break;
|
// case "15":
|
// {
|
// doorlockBtn.Text = Language.StringByID(MyInternationalizationString.fingerprint);
|
// }
|
// break;
|
//}
|
var doorlockSelected = new Button
|
{
|
X = Application.GetRealWidth(860),
|
Width = Application.GetMinRealAverage(60),
|
Height = Application.GetMinRealAverage(60),
|
UnSelectedImagePath = "ZigeeLogic/selected.png",
|
Visible = false,
|
Gravity = Gravity.CenterVertical,
|
|
};
|
doorlockRow.AddChidren(doorlockSelected);
|
if ((user.UserIdMode.Count - 1) == i)
|
{
|
doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor;
|
}
|
EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) =>
|
{
|
SelectedDeviceStatuscondition = "DoorLock";
|
selectedIcon.Visible = false;
|
selectedIcon = doorlockSelected;
|
doorlockSelected.Visible = true;
|
userId = userifon.UserId;
|
openMode = userifon.OpenMode.ToString();
|
accountname = Btntitle.Text + doorlockBtn.Text;
|
//doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
|
};
|
doorlockRow.MouseUpEventHandler += doorlockclick;
|
doorlockBtn.MouseUpEventHandler += doorlockclick;
|
doorlockSelected.MouseUpEventHandler += doorlockclick;
|
doorlockfra.MouseUpEventHandler += doorlockclick;
|
|
if (edit && editdeviceConditionsInfo != null)
|
{
|
|
if (editdeviceConditionsInfo["AttriButeData2"] == userifon.UserId.ToString())
|
{
|
selectedIcon.Visible = false;
|
selectedIcon = doorlockSelected;
|
doorlockSelected.Visible = true;
|
}
|
|
}
|
|
}
|
|
|
Btncomplete.MouseUpEventHandler += (sender3, e3) =>
|
{
|
string userIdstr = "", openModestr="";
|
var deviceConditionsInfo = new Dictionary<string, string>();
|
var userdictionary = new Dictionary<string, string>();
|
deviceConditionsInfo.Add("Type", "1");
|
deviceConditionsInfo.Add("IsValid", "1");
|
deviceConditionsInfo.Add("MacAddr", common.DeviceAddr);
|
deviceConditionsInfo.Add("Epoint", common.DeviceEpoint.ToString());
|
deviceConditionsInfo.Add("Cluster_ID", "64529");
|
deviceConditionsInfo.Add("AttriButeData1", "2");
|
deviceConditionsInfo.Add("Range", "0");
|
deviceConditionsInfo.Add("AttriButeId", openMode);
|
deviceConditionsInfo.Add("AttriButeData2", userId);
|
userdictionary.Add("Account",accountname);
|
userdictionary.Add("Type", "1");
|
userdictionary.Add("UserId", userId);
|
if (edit)
|
{
|
openModestr = editdeviceConditionsInfo["AttriButeId"];
|
userIdstr = editdeviceConditionsInfo["AttriButeData2"];
|
}
|
else
|
{
|
openModestr = deviceConditionsInfo["AttriButeId"];
|
userIdstr = deviceConditionsInfo["AttriButeData2"];
|
}
|
if (SelectedDeviceStatuscondition != "")
|
{
|
bool add = false;
|
for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
|
{
|
if (Common.Logic.CurrentLogic.Conditions[i]["Type"] == "1")
|
{
|
if ((Common.Logic.CurrentLogic.Conditions[i]["MacAddr"] == common.DeviceAddr) && (Common.Logic.CurrentLogic.Conditions[i]["Epoint"] == common.DeviceEpoint.ToString()))
|
{
|
if (Common.Logic.CurrentLogic.Conditions[i]["AttriButeId"] == openModestr && Common.Logic.CurrentLogic.Conditions[i]["AttriButeData2"] == userIdstr)
|
{
|
Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
|
Common.Logic.CurrentLogic.Conditions.Insert(i, deviceConditionsInfo);
|
for (int j = 0; j < Common.Logic.CurrentLogic.Accounts.Count; j++)
|
{
|
if (Common.Logic.CurrentLogic.Accounts[j]["UserId"] == userIdstr)
|
{
|
Common.Logic.CurrentLogic.Accounts.RemoveAt(j);
|
Common.Logic.CurrentLogic.Accounts.Insert(j, userdictionary);
|
}
|
}
|
add = true;
|
break;
|
}
|
}
|
}
|
}
|
if (!add)
|
{
|
Common.Logic.CurrentLogic.Accounts.Add(userdictionary);
|
Common.Logic.CurrentLogic.Conditions.Add(deviceConditionsInfo);
|
}
|
|
}
|
else
|
{
|
if (!edit)
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
|
Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
|
Language.StringByID(MyInternationalizationString.complete));
|
alert.Show();
|
return;
|
}
|
|
}
|
flMain.RemoveFromParent();
|
var logicCommunalPage = new LogicCommunalPage();
|
UserView.HomePage.Instance.AddChidren(logicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
logicCommunalPage.Show(() => { });
|
|
};
|
|
};
|
userBtn.MouseUpEventHandler += useridclick;
|
userBack.MouseUpEventHandler += useridclick;
|
userFramelayout.MouseUpEventHandler += useridclick;
|
userRow.MouseUpEventHandler += useridclick;
|
|
}
|
}
|
|
}
|
}
|