From 7b60238359b94125d591678eff105ae2bf47843f Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 15 十一月 2019 13:16:21 +0800
Subject: [PATCH] 2019.11.15
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs | 399 +++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 265 insertions(+), 134 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
index 4e81bfb..3bd0b32 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
@@ -7,6 +7,7 @@
using ZigBee.Device;
using static ZigBee.Device.BindObj;
using static ZigBee.Device.Panel;
+
namespace Shared.Phone.UserCenter.DeviceBind
{
public class AddScenePage : BindCommonLayout, ZigBee.Common.IStatus
@@ -42,6 +43,10 @@
List<CommonDevice> targetList = new List<CommonDevice>();
List<Room> roomList = new List<Room>();
public Action<List<BindListResponseObj>> action;
+ Button btnFinifh;
+ Button btnFloorText;
+ Dictionary<string, string> dicFloor;
+
#endregion
public void Show()
@@ -60,12 +65,11 @@
var btnAddFrameLayout = new FrameLayout
{
X = Application.GetRealWidth(830),
- Width = Application.GetRealWidth(0),//200
- BackgroundColor = 0xff00ff00,
+ Width = Application.GetRealWidth(200),
};
this.titleFrameLayout.AddChidren(btnAddFrameLayout);
- var btnFloorText = new Button
+ btnFloorText = new Button
{
Width = Application.GetRealWidth(110),
X = Application.GetRealWidth(15),
@@ -73,7 +77,6 @@
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextSize = 15,
TextAlignment = TextAlignment.CenterRight,
- BackgroundColor = 0xffff0000,
};
btnAddFrameLayout.AddChidren(btnFloorText);
@@ -81,20 +84,19 @@
{
Height = Application.GetRealHeight(69),
Width = Application.GetRealWidth(69),
- X = Application.GetRealWidth(200 - 69),
+ X = Application.GetRealWidth(200 - 77),
UnSelectedImagePath = "BindPic/BindDown.png",
Gravity = Gravity.CenterVertical,
- BackgroundColor = 0xff0000ff,
};
btnAddFrameLayout.AddChidren(btnBindDown);
btnBindDown.MouseDownEventHandler += (sender, e) =>
{
SideslipFramelayout();
};
- MidFrameLayoutContent();
+ MidFrameLayoutContent(btnFloorText);
}
- async void MidFrameLayoutContent()
+ async void MidFrameLayoutContent(Button btnFloorText)
{
#region UI
var btnMidTopLayout = new FrameLayout
@@ -105,6 +107,7 @@
btnHorizontalScrolViewLayout = new HorizontalScrolViewLayout
{
+ X = Application.GetRealWidth(58),
};
btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout);
@@ -122,7 +125,7 @@
};
this.midFrameLayout.AddChidren(bottomFrameLayout);
- var btnFinifh = new Button()
+ btnFinifh = new Button()
{
Width = Application.GetRealWidth(907),
Height = Application.GetRealHeight(127),
@@ -136,8 +139,19 @@
bottomFrameLayout.AddChidren(btnFinifh);
#endregion
- #region 鏁版嵁澶勭悊
- roomList = Shared.Common.Room.Lists;
+ #region 鏁版嵁澶勭悊
+ //鑾峰彇妤煎眰
+ dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+ currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
+ btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
+ // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂�
+ foreach (var room in Shared.Common.Room.Lists)
+ {
+ if (room.FloorId == currentKey.currentSelectFloorId)
+ {
+ roomList.Add(room);
+ }
+ }
Shared.Common.Room curRoom = roomList[0];
int index = 0;
RefreshRoomList(curRoom, btnFinifh, ref index);
@@ -156,69 +170,88 @@
btnFinifh.MouseUpEventHandler += async (sender, e) =>
{
+ bool isFinish = false;
btnFinifh.Enable = false;
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
- if (currentKey.bindList.Count != 0)
+ try
{
- var bindResult = await currentKey.ClearBindInfoAsync();
- if (bindResult.clearBindInfoResponseData != null)
+ Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+ if (currentKey.bindList.Count != 0)
{
- if (bindResult.clearBindInfoResponseData.Result != 0)
+ var bindResult = await currentKey.ClearBindInfoAsync();
+ if (bindResult != null && bindResult.clearBindInfoResponseData != null)
{
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
- CommonPage.Loading.Hide();
- this.RemoveFromParent();
+ if (bindResult.clearBindInfoResponseData.Result != 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ CommonPage.Loading.Hide();
+ });
+ this.RemoveFromParent();
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ return;
+ }
+ else
+ {
+ currentKey.bindList.Clear();
+ }
+ }
+ else
+ {
+ var btn = new Button()
+ {
+ Gravity = Gravity.Center,
+ };
+ this.midFrameLayout.AddChidren(btn);
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btn);
+ });
+ }
+ }
+
+ var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger);
+ if (temp.setWritableValueResponData?.Status != 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
btnFinifh.Enable = true;
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
- return;
- }
- else
- {
- currentKey.bindList.Clear();
- }
+ });
+ return;
}
- }
-
- var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger);
- if (temp.setWritableValueResponData?.Status != 0)
- {
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
- btnFinifh.Enable = true;
- btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
- return;
- }
- else
- {
- currentKey.panelMode = 1;
- var addBindeDev = new AddBindData();
- addBindeDev.DeviceAddr = currentKey.DeviceAddr;
- addBindeDev.Epoint = currentKey.DeviceEpoint;
-
- foreach (var de in targetList)
+ else
{
- if (de.DeviceAddr != null)
+ currentKey.panelMode = 1;
+ var addBindeDev = new AddBindData();
+ addBindeDev.DeviceAddr = currentKey.DeviceAddr;
+ addBindeDev.Epoint = currentKey.DeviceEpoint;
+
+ foreach (var de in targetList)
{
- var addBindInfo = new AddBindListObj();
- addBindInfo.BindType = 0;
- addBindInfo.BindCluster = 6;
- addBindInfo.BindMacAddr = de.DeviceAddr;
- addBindInfo.BindEpoint = de.DeviceEpoint;
- addBindeDev.BindList.Add(addBindInfo);
+ if (de.DeviceAddr != null)
+ {
+ var addBindInfo = new AddBindListObj();
+ addBindInfo.BindType = 0;
+ addBindInfo.BindCluster = 6;
+ addBindInfo.BindMacAddr = de.DeviceAddr;
+ addBindInfo.BindEpoint = de.DeviceEpoint;
+ addBindeDev.BindList.Add(addBindInfo);
+ }
+ else
+ {
+ var addBindInfo = new AddBindListObj();
+ addBindInfo.BindType = 1;
+ addBindInfo.BindCluster = 6;
+ var sc1 = (SceneUI)de;
+ addBindInfo.BindScenesId = sc1.Id;
+ addBindeDev.BindList.Add(addBindInfo);
+ }
}
- else
- {
- var addBindInfo = new AddBindListObj();
- addBindInfo.BindType = 1;
- addBindInfo.BindCluster = 6;
- var sc1 = (SceneUI)de;
- addBindInfo.BindScenesId = sc1.Id;
- addBindeDev.BindList.Add(addBindInfo);
- }
- }
- bool isFinish = false;
- try
- {
- CommonPage.Loading.Start("");
+
var dev = new AddedDeviceBindResponseAllData();
dev = await currentKey.AddDeviceBindAsync(addBindeDev);
foreach (var ab in dev.addedDeviceBindResponseData?.BindList)
@@ -246,13 +279,16 @@
isFinish = true;
break;
case 1:
- new Tip()
+ Application.RunOnMainThread(() =>
{
- MaxWidth = 150,
- Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence),
- Direction = AMPopTipDirection.Up,
- CloseTime = 1
- }.Show(btnFinifh);
+ new Tip()
+ {
+ MaxWidth = 150,
+ Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence),
+ Direction = AMPopTipDirection.Up,
+ CloseTime = 1
+ }.Show(btnFinifh);
+ });
break;
case 2:
switch (dev.addBindResultResponseData?.Result)
@@ -271,61 +307,97 @@
isFinish = true;
break;
case 140:
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ });
break;
default:
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ });
break;
}
break;
case 3:
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ });
break;
case 4:
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+ });
break;
default:
break;
}
}
}
- catch { }
- finally
+ }
+ catch { }
+ finally
+ {
+ if (isFinish)
{
- if (isFinish)
+ if (action != null)
{
- if (action != null)
- {
- action(currentKey.bindList);
- }
- this.RemoveFromParent();
+ action(currentKey.bindList);
}
- else
- {
- this.RemoveFromParent();
- }
+ this.RemoveFromParent();
+ }
+ else
+ {
+ this.RemoveFromParent();
+ }
+ Application.RunOnMainThread(() =>
+ {
CommonPage.Loading.Hide();
btnFinifh.Enable = true;
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
- }
+ });
}
};
-
- #endregion
+ #endregion
}
// 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀�
void RefreshRoomList(Shared.Common.Room curRoom, Button btnFinish, ref int index2)
{
+ if (roomList.Count == 0)
+ {
+ return;
+ }
+ btnHorizontalScrolViewLayout.RemoveAll();
Button curentOldRoom = null;
FrameLayout curentOldRoomFrameLayout = null;
int index = 0;
+ var roomTempList = new List<Room>();
+
for (int i = 0; i < roomList.Count; i++)
{
var room = roomList[i];
+ //濡傛灉鎴块棿涓哄枩鐖憋紝鍒欎笉鏄剧ず
if (room.IsLove == true)
{
- //;
+ continue;
+ }
+
+ //濡傛灉鎴块棿涓病鏈夎澶囷紝鍒欎笉鏄剧ず
+ if (room.SceneUIList.Count == 0)
+ {
+ continue;
+ }
+ else
+ {
+ roomTempList.Add(room);
+ }
+ if (roomTempList.Count != 0)
+ {
+ curRoom = roomTempList[0];
}
var btnRoomFrameLayout = new FrameLayout
@@ -333,7 +405,6 @@
Height = Application.GetRealHeight(78),
Width = Application.GetRealWidth(187),
Y = Application.GetRealHeight(58),
- X = Application.GetRealWidth(58),
Radius = (uint)Application.GetMinRealAverage(78 / 2),
BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange,
BorderWidth = 1,
@@ -355,46 +426,60 @@
};
btnRoomFrameLayout.AddChidren(btnRoom);
+
btnRoom.IsSelected = false;
- if (currentKey.RoomId == "")
+
+ //榛樿閫変腑姣忎釜妤煎眰鐨勭涓�涓埧闂�
+ if (index == 0)
{
- if (i == index)
- {
- btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
- btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
- btnRoomFrameLayout.BorderWidth = 0;
- btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
- curentOldRoom = btnRoom;
- curentOldRoomFrameLayout = btnRoomFrameLayout;
- }
- else
- {
- btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
- btnRoom.IsSelected = false;
- btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
- btnRoomFrameLayout.BorderWidth = 1;
- }
+ btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+ btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+ btnRoomFrameLayout.BorderWidth = 0;
+ btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+ curentOldRoom = btnRoom;
+ curentOldRoomFrameLayout = btnRoomFrameLayout;
}
- else
- {
- if (currentKey.RoomId == room.Id)
- {
- btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
- btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
- btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
- btnRoomFrameLayout.BorderWidth = 0;
- curentOldRoom = btnRoom;
- curentOldRoomFrameLayout = btnRoomFrameLayout;
- curRoom = room;
- index2 = i;
- }
- else
- {
- btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
- btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
- btnRoomFrameLayout.BorderWidth = 1;
- }
- }
+
+ //璁板綍涔嬪墠閫変腑鐨勬埧闂�
+ //if (currentKey.RoomId == "")
+ //{
+ // if (i == index)
+ // {
+ // btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+ // btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+ // btnRoomFrameLayout.BorderWidth = 0;
+ // btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+ // curentOldRoom = btnRoom;
+ // curentOldRoomFrameLayout = btnRoomFrameLayout;
+ // }
+ // else
+ // {
+ // btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+ // btnRoom.IsSelected = false;
+ // btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
+ // btnRoomFrameLayout.BorderWidth = 1;
+ // }
+ //}
+ //else
+ //{
+ // if (currentKey.RoomId == room.Id)
+ // {
+ // btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+ // btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+ // btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+ // btnRoomFrameLayout.BorderWidth = 0;
+ // curentOldRoom = btnRoom;
+ // curentOldRoomFrameLayout = btnRoomFrameLayout;
+ // curRoom = room;
+ // index2 = i;
+ // }
+ // else
+ // {
+ // btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+ // btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
+ // btnRoomFrameLayout.BorderWidth = 1;
+ // }
+ //}
EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) =>
{
@@ -458,11 +543,18 @@
};
btnHorizontalScrolViewLayout.AddChidren(btnEmpty);
}
+
+ BindInfo.FinishDisplay(roomTempList, btnFinish);
+ index++;
}
//鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀�
void RefreshSceneList(Shared.Common.Room curRoom)
{
+ if (curRoom.SceneUIList.Count == 0)
+ {
+ return;
+ }
midVerticalScrolViewLayout.RemoveAll();
Button oldScene = null;
@@ -615,7 +707,7 @@
Width = Application.GetRealWidth(200),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(81),
- Y = Application.GetRealHeight(58),
+ Y = Application.GetRealHeight(81),
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
TextSize = 14,
TextAlignment = TextAlignment.CenterLeft,
@@ -626,12 +718,9 @@
var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
{
Height = Application.GetRealHeight(600),
- Y = Application.GetRealHeight(173),
+ Y = btnSelectFloor.Bottom,
};
sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
-
- //鑾峰彇妤煎眰
- var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
Button oldbutton = null;
Button oldbuttonText = null;
@@ -640,6 +729,8 @@
var rowFrameLayout = new RowLayout()
{
Height = Application.GetRealHeight(150),
+ LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+ X = Application.GetRealWidth(81),
};
sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout);
@@ -647,8 +738,9 @@
{
Width = Application.GetRealWidth(81),
Height = Application.GetRealHeight(81),
- X = Application.GetRealWidth(81),
Y = Application.GetRealHeight(55),
+ UnSelectedImagePath = "Floor/Floor.png",
+ SelectedImagePath = "Floor/FloorSelected.png",
};
rowFrameLayout.AddChidren(btnAllMethod);
@@ -656,7 +748,7 @@
{
Width = Application.GetRealWidth(311),
Height = Application.GetRealHeight(58),
- X = Application.GetRealWidth(173),
+ X = Application.GetRealWidth(92),
Y = Application.GetRealHeight(69),
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
TextSize = 14,
@@ -665,8 +757,23 @@
};
rowFrameLayout.AddChidren(btnMethodText);
+ if (currentKey.currentSelectFloorId == floorId)
+ {
+ btnAllMethod.IsSelected = true;
+ btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+
+ string curFloorId = floorId;
EventHandler<MouseEventArgs> hander = (sender, e) =>
{
+ if (currentKey.currentSelectFloorId == curFloorId)
+ {
+ return;
+ }
+ currentKey.currentSelectFloorId = curFloorId;
+ btnFloorText.Text = dicFloor[floorId];
+ roomList.Clear();
+
if (!btnMethodText.IsSelected)
{
if (oldbutton != null)
@@ -682,6 +789,30 @@
btnMethodText.IsSelected = true;
oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
+
+ //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂�
+ foreach (var room in Shared.Common.Room.Lists)
+ {
+ if (room.FloorId == currentKey.currentSelectFloorId)
+ {
+ roomList.Add(room);
+ }
+ }
+
+ Shared.Common.Room curRoom = new Shared.Common.Room();
+ if (roomList.Count != 0)
+ {
+ curRoom = roomList[0];
+ }
+ else
+ {
+ curRoom = new Shared.Common.Room();
+ roomList.Add(curRoom);
+ }
+ int index = 0;
+ RefreshRoomList(curRoom, btnFinifh, ref index);
+ RefreshSceneList(roomList[0]);
+
dialog.Close();
};
btnAllMethod.MouseUpEventHandler += hander;
--
Gitblit v1.8.0