From f1c3921b08bb22ac6f5db22d620e01d7e8e5c49f Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 30 十二月 2019 13:32:33 +0800
Subject: [PATCH] 2019-12-30-1
---
ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs | 313 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 224 insertions(+), 89 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
index 0c174e4..117357f 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
@@ -12,10 +12,10 @@
Tag = "LockLogic";
}
Button selectedIcon = new Button();
- VerticalScrolViewLayout middle;
+ VerticalRefreshLayout middle;
public int conditionsIndex = -1;
- public async void Show()
+ public void Show()
{
#region 鏈�涓婇潰鐨勫竷灞�浠g爜
var topRowLayout = new RowLayout
@@ -36,6 +36,7 @@
Height = Application.GetRealHeight(69),
Y = Application.GetRealHeight(92),
TextID = MyInternationalizationString.userlist,
+ IsBold = true,
//Text = "閫夋嫨鐢ㄦ埛",
};
topRowLayout.AddChidren(titleName);
@@ -69,14 +70,38 @@
#endregion
- middle = new VerticalScrolViewLayout
+ middle = new VerticalRefreshLayout
{
Y = topRowLayout.Bottom,
Height = Application.GetRealHeight(1920 - 184),
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
this.AddChidren(middle);
+ middle.BeginHeaderRefreshingAction += () =>
+ {
+ //閲嶆柊鍒锋柊logic鍒楄〃
+ string macport = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint.ToString();
+ for (int i = 0; i < Send.LockList.Count; i++)
+ {
+ if (Send.LockList[i].DoorLockMacPort == macport)
+ {
+ ///浠庡垪琛ㄧЩ闄ゅ綋鍓嶉棬閿佸叏閮ㄧ殑鏃ф暟鎹紱
+ Send.LockList.Remove(Send.LockList[i]);
+ i--;
+ }
+ }
+ Read();
+ //鍏抽棴鍒锋柊View锛�
+ middle.EndHeaderRefreshing();
+ };
+ Read();
+ }
+ /// <summary>
+ /// 璇诲彇褰撳墠闂ㄩ攣鐨勪簯绔暟鎹紱
+ /// </summary>
+ public void Read()
+ {
bool d = false;
string macport = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint.ToString();
for (int i = 0; i < Send.LockList.Count; i++)
@@ -89,21 +114,34 @@
}
}
CommonPage.Loading.Start();
- if (!d)
+ middle.RemoveAll();
+ System.Threading.Tasks.Task.Run(async () =>
{
- var allMemberslist = await Send.AllMembers(Send.CurrentDoorLock.DeviceAddr);
- Send.LockList.AddRange(allMemberslist);
- }
- UserAllView(macport);
- CommonPage.Loading.Hide();
-
+ try
+ {
+ if (!d)
+ {
+ var allMemberslist = await Send.AllMembers(macport);
+ Send.LockList.AddRange(allMemberslist);
+ }
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ UserAllView(macport);
+ });
+ }
+ });
}
/// <summary>
/// 鏄剧ず鎵�鏈夌敤鎴�
/// </summary>
- void UserAllView(string macport)
+ public void UserAllView(string macport)
{
-
+ middle.RemoveAll();
for (int i = 0; i < Send.LockList.Count; i++)
{
var user = Send.LockList[i];
@@ -167,10 +205,10 @@
/// 閫夋嫨鏌愪釜鐢ㄦ埛
/// </summary>
/// <param name="membershipIfon">瑙﹀彂婧愬垪琛�</param>
- /// <param name="userName">鐢ㄦ埛鍚嶅瓧</param>
- void SelectedUserID(Send.MembershipIfon membershipIfon) {
+ public void SelectedUserID(Send.MembershipIfon membershipIfon)
+ {
- var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
+ var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
this.AddChidren(flMain);
flMain.MouseUpEventHandler += (sender1, e1) =>
@@ -178,7 +216,7 @@
flMain.RemoveFromParent();
};
-
+
var lockcolorfra1 = new FrameLayout
{
@@ -242,89 +280,186 @@
};
lockRow.AddChidren(Btncomplete);
#endregion
-
+ bool @false = false;
+ if (membershipIfon.UserIdMode.Count > 10)
+ {
+ @false = false;//
+ lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * 10) - 20 - 50);
+ lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * 10) + 20 + 50);
+ }
+ else
+ {
+ @false = false;
+ lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * membershipIfon.UserIdMode.Count) - 20 - 50);
+ lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * membershipIfon.UserIdMode.Count) + 20 + 50);
+ }
string SelectedLockStatus = "";
- lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * membershipIfon.UserIdMode.Count) - 20 - 50);
- lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * membershipIfon.UserIdMode.Count) + 20 + 50);
///瀹氫箟涓や釜鍙橀噺璁板綍閫変腑鐘舵�侊紱
string attriButeId = "";
string attriButeData2 = "";
string modeName = "";
- for (int j = 0; j < membershipIfon.UserIdMode.Count; j++)
+ if (!@false)
{
- var userIdmode = membershipIfon.UserIdMode[j];
- var doorlockfra = new FrameLayout
+ for (int j = 0; j < membershipIfon.UserIdMode.Count; j++)
{
- Height = Application.GetRealHeight(160),
- Y = lockRow.Bottom + Application.GetRealHeight(20 + 160 * j),
- };
- 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 = userIdmode.ModeName,
- TextSize = 14,
- };
- doorlockRow.AddChidren(doorlockBtn);
-
- 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 ((membershipIfon.UserIdMode.Count - 1) == j)
- {
- doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor;
- }
- EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) =>
- {
- SelectedLockStatus = "DoorLock";
- selectedIcon.Visible = false;
- selectedIcon = doorlockSelected;
- doorlockSelected.Visible = true;
- //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
- attriButeId = userIdmode.OpenMode.ToString();
- attriButeData2 = userIdmode.UserId;
- modeName = userIdmode.ModeName;
- };
- doorlockRow.MouseUpEventHandler += doorlockclick;
- doorlockBtn.MouseUpEventHandler += doorlockclick;
- doorlockSelected.MouseUpEventHandler += doorlockclick;
- doorlockfra.MouseUpEventHandler += doorlockclick;
- ///鏄剧ず涔嬪墠鐨勭姸鎬�
- if (conditionsIndex != -1)
- {
- var s = Common.Logic.CurrentLogic.Conditions[conditionsIndex];
- if (s["AttriButeId"] == userIdmode.OpenMode.ToString() && s["AttriButeData2"] == userIdmode.UserId)
+ var userIdmode = membershipIfon.UserIdMode[j];
+ var doorlockfra = new FrameLayout
{
+ Height = Application.GetRealHeight(160),
+ Y = lockRow.Bottom + Application.GetRealHeight(20 + 160 * j),
+ };
+ 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 = userIdmode.ModeName,
+ TextSize = 14,
+ };
+ doorlockRow.AddChidren(doorlockBtn);
+
+ 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 ((membershipIfon.UserIdMode.Count - 1) == j)
+ {
+ doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor;
+ }
+ EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) =>
+ {
+ SelectedLockStatus = "DoorLock";
selectedIcon.Visible = false;
selectedIcon = doorlockSelected;
doorlockSelected.Visible = true;
- }
-
+ //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+ attriButeId = userIdmode.OpenMode.ToString();
+ attriButeData2 = userIdmode.UserId;
+ modeName = userIdmode.ModeName;
+ };
+ doorlockRow.MouseUpEventHandler += doorlockclick;
+ doorlockBtn.MouseUpEventHandler += doorlockclick;
+ doorlockSelected.MouseUpEventHandler += doorlockclick;
+ doorlockfra.MouseUpEventHandler += doorlockclick;
+ ///鏄剧ず涔嬪墠鐨勭姸鎬�
+ if (conditionsIndex != -1)
+ {
+ var s = Common.Logic.CurrentLogic.Conditions[conditionsIndex];
+ if (s["AttriButeId"] == userIdmode.OpenMode.ToString() && s["AttriButeData2"] == userIdmode.UserId)
+ {
+ selectedIcon.Visible = false;
+ selectedIcon = doorlockSelected;
+ doorlockSelected.Visible = true;
+ }
+
+ }
}
}
-
+ else
+ {
+ for (int j = 0; j < membershipIfon.UserIdMode.Count; j++)
+ {
+ var userIdmode = membershipIfon.UserIdMode[j];
+
+ var vv = new VerticalScrolViewLayout
+ {
+ Height = Application.GetRealHeight(160 * 8),
+ Y = lockRow.Bottom,
+ };
+ lockcolorfra1.AddChidren(vv);
+ var doorlockfra = new FrameLayout
+ {
+ Height = Application.GetRealHeight(160),
+ Y = Application.GetRealHeight(160 * j),
+ };
+ vv.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 = userIdmode.ModeName,
+ TextSize = 14,
+ };
+ doorlockRow.AddChidren(doorlockBtn);
+
+ 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 ((membershipIfon.UserIdMode.Count - 1) == j)
+ {
+ doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor;
+ }
+ EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) =>
+ {
+ SelectedLockStatus = "DoorLock";
+ selectedIcon.Visible = false;
+ selectedIcon = doorlockSelected;
+ doorlockSelected.Visible = true;
+ //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+ attriButeId = userIdmode.OpenMode.ToString();
+ attriButeData2 = userIdmode.UserId;
+ modeName = userIdmode.ModeName;
+ };
+ doorlockRow.MouseUpEventHandler += doorlockclick;
+ doorlockBtn.MouseUpEventHandler += doorlockclick;
+ doorlockSelected.MouseUpEventHandler += doorlockclick;
+ doorlockfra.MouseUpEventHandler += doorlockclick;
+ ///鏄剧ず涔嬪墠鐨勭姸鎬�
+ if (conditionsIndex != -1)
+ {
+ var s = Common.Logic.CurrentLogic.Conditions[conditionsIndex];
+ if (s["AttriButeId"] == userIdmode.OpenMode.ToString() && s["AttriButeData2"] == userIdmode.UserId)
+ {
+ selectedIcon.Visible = false;
+ selectedIcon = doorlockSelected;
+ doorlockSelected.Visible = true;
+ }
+
+
+ }
+ }
+ }
+
Btncomplete.MouseUpEventHandler += (sender, e) =>
{
var lockConditionsInfo = new Dictionary<string, string>();
@@ -339,7 +474,7 @@
lockConditionsInfo.Add("Range", "0");
var accounts = new Dictionary<string, string>();
accounts.Add("Type", "1");
- accounts.Add("Account", membershipIfon.UserName+ modeName);
+ accounts.Add("Account", membershipIfon.UserName + modeName);
accounts.Add("UserId", attriButeData2);
if (SelectedLockStatus != "")
{
@@ -410,8 +545,8 @@
if (conditionsIndex == -1)
{
var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
- Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
- Language.StringByID(MyInternationalizationString.complete));
+ Language.StringByID(MyInternationalizationString.usertip),
+ Language.StringByID(MyInternationalizationString.confrim));
alert.Show();
return;
}
@@ -422,6 +557,6 @@
lockLogicCommunalPage.Show(() => { });
};
}
-
+
}
}
--
Gitblit v1.8.0