From dc6493db59dcb0893eac50b72122f94c24056b3f Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 12 十月 2020 14:35:39 +0800
Subject: [PATCH] 新版本
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs | 1009 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 699 insertions(+), 310 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
index be6c3a1..5348f72 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
@@ -2,32 +2,18 @@
using System.Collections.Generic;
using Microsoft.AppCenter.Crashes;
using Shared.Common;
-using Shared.Phone.Device.Light;
using Shared.Phone.UserCenter.Device;
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
+ /// <summary>
+ /// 鏅�氶潰鏉跨殑缁戝畾鍦烘櫙鐣岄潰銆愬彧鍙粦瀹�1涓満鏅��
+ /// </summary>
+ public class AddScenePage : BindCommonLayout
{
- /// <summary>
- /// 鎸夐敭妯″紡鎺ユ敹
- /// </summary>
- /// <param name="common">Common.</param>
- public void Changed(CommonDevice common)
- {
- //if (common.Type != ZigBee.Device.DeviceType.OnOffSwitch)
- //{
- // return;
- //}
-
- Shared.Application.RunOnMainThread(() =>
- {
- //var dev = common as Panel;
- });
- }
-
/// 鏋勯�犲嚱鏁�
/// </summary>
/// <param name="doorLock"></param>
@@ -36,19 +22,54 @@
this.currentKey = key;
}
- #region 鈼� 鍙橀噺鐢虫槑__________________________
+ #region 鍙橀噺鐢虫槑
+ /// <summary>
+ /// 褰撳墠鎸夐敭
+ /// </summary>
ZigBee.Device.Panel currentKey;
- //鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
+ /// <summary>
+ /// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
+ /// </summary>
VerticalScrolViewLayout midVerticalScrolViewLayout;
+ /// <summary>
+ /// 鏄剧ず鎴块棿鐨剉iew
+ /// </summary>
HorizontalScrolViewLayout btnHorizontalScrolViewLayout;
/// <summary>
/// 鎸夐敭閰嶇疆鐨勭洰鏍囧垪琛�
/// </summary>
- List<CommonDevice> targetList = new List<CommonDevice>();
+ List<CommonDevice> targetListDevice = new List<CommonDevice>();
+ /// <summary>
+ /// 鎸夐敭閰嶇疆鐨勫満鏅洰鏍囧垪琛�
+ /// </summary>
+ List<SceneUI> targetListScene = new List<SceneUI>();
+ /// <summary>
+ /// 鏈湴鎴块棿鍒楄〃
+ /// </summary>
List<Room> roomList = new List<Room>();
+ /// <summary>
+ /// 褰撶粦瀹氳〃鍙樺寲鍚庣殑鍥炶皟
+ /// </summary>
public Action<List<BindListResponseObj>> action;
+ /// <summary>
+ /// 淇濆瓨瀹屾垚鎸夐挳
+ /// </summary>
+ Button btnFinish;
+ /// <summary>
+ /// 妤煎眰鏂囨湰
+ /// </summary>
+ Button btnFloorText;
+ /// <summary>
+ /// 妤煎眰鍒楄〃
+ /// </summary>
+ Dictionary<string, string> dicFloor;
+ List<SceneUI> currentKeyAllRoomSceneList = new List<SceneUI>();
+
#endregion
+ /// <summary>
+ /// 娣诲姞鍦烘櫙椤垫樉绀�
+ /// </summary>
public void Show()
{
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.AddScene));
@@ -57,42 +78,67 @@
{
RemoveFromParent();
};
+ this.btnTitle.Width = Application.GetRealWidth(1080 - 161 - 300);
this.btnBack.MouseUpEventHandler += eHandlerBack;
this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
this.MidFrameLayout(this);
var btnAddFrameLayout = new FrameLayout
{
- X = Application.GetRealWidth(953),
- Height = Application.GetRealHeight(72),
- Width = Application.GetRealWidth(72),
+ X = Application.GetRealWidth(619),
};
this.titleFrameLayout.AddChidren(btnAddFrameLayout);
- var btnFloorText = new Button
+ btnFloorText = new Button
{
- Height = Application.GetRealHeight(84),
- Width = Application.GetRealWidth(58),
- X = Application.GetRealWidth(881),
- Text = "涓�妤�",
+ Width = Application.GetRealWidth(300 - 69 - 58),
+ X = Application.GetRealWidth(15),
+ Text = Language.StringByID(R.MyInternationalizationString.FirstFloor),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+ TextSize = 14,
+ IsBold = true,
+ TextAlignment = TextAlignment.CenterRight,
};
btnAddFrameLayout.AddChidren(btnFloorText);
+ var btnBindDownFrameLayout = new FrameLayout
+ {
+ Width = Application.GetMinReal(69 + 58),
+ X = Application.GetRealWidth(300 - 69 - 58),
+ };
+ btnAddFrameLayout.AddChidren(btnBindDownFrameLayout);
+
var btnBindDown = new Button
{
- Height = Application.GetRealHeight(72),
- Width = Application.GetRealWidth(72),
- //UnSelectedImagePath = "BindPic/BindDown.png",
+ Height = Application.GetMinReal(69),
+ Width = Application.GetMinReal(69),
+ UnSelectedImagePath = "BindPic/BindDown.png",
+ Gravity = Gravity.CenterVertical,
};
- btnAddFrameLayout.AddChidren(btnBindDown);
- btnBindDown.MouseDownEventHandler += (sender, e) =>
+ btnBindDownFrameLayout.AddChidren(btnBindDown);
+
+ EventHandler<MouseEventArgs> eHandlerBindDown = (sender, e) =>
{
+ SideslipFramelayout();
};
- MidFrameLayoutContent();
+ btnBindDown.MouseDownEventHandler += eHandlerBindDown;
+ btnBindDownFrameLayout.MouseDownEventHandler += eHandlerBindDown;
+
+ if (Common.Config.Instance.Home.FloorDics.Count == 0)
+ {
+ btnAddFrameLayout.Width = 0;
+ }
+ else
+ {
+ btnAddFrameLayout.Width = Application.GetRealWidth(300);
+ }
+ MidFrameLayoutContent(btnFloorText);
}
- async void MidFrameLayoutContent()
+ /// <summary>
+ /// 涓儴甯冨眬
+ /// </summary>
+ async void MidFrameLayoutContent(Button btnFloorText)
{
#region UI
var btnMidTopLayout = new FrameLayout
@@ -103,221 +149,314 @@
btnHorizontalScrolViewLayout = new HorizontalScrolViewLayout
{
+ X = Application.GetRealWidth(58),
};
btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout);
-
- //var btnLine = new Button
- //{
- // Y = btnMidTopLayout.Bottom,
- // Height = 1,
- // BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine,
- //};
- //this.midFrameLayout.AddChidren(btnLine);
midVerticalScrolViewLayout = new VerticalScrolViewLayout()
{
Y = btnMidTopLayout.Bottom,
+ Height = Application.GetRealHeight(1145),
};
this.midFrameLayout.AddChidren(midVerticalScrolViewLayout);
var bottomFrameLayout = new FrameLayout()
{
Width = LayoutParams.MatchParent,
- Height = Application.GetRealHeight(1737 - 1472),
+ Height = Application.GetRealHeight(127),
Y = Application.GetRealHeight(1472),
};
this.midFrameLayout.AddChidren(bottomFrameLayout);
- var btnFinifh = new Button()
+ btnFinish = new Button()
{
Width = Application.GetRealWidth(907),
- Height = Application.GetRealHeight(127),
Gravity = Gravity.CenterHorizontal,
- Radius = (uint)Application.GetRealHeight(120) / 2,
+ Radius = (uint)Application.GetRealHeight(127) / 2,
TextID = R.MyInternationalizationString.Save,
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+ IsBold = true,
TextSize = 16,
};
- bottomFrameLayout.AddChidren(btnFinifh);
+ bottomFrameLayout.AddChidren(btnFinish);
#endregion
#region 鏁版嵁澶勭悊
- roomList = Shared.Common.Room.Lists;
- Shared.Common.Room curRoom = roomList[0];
- int index = 0;
- RefreshRoomList(curRoom, btnFinifh, ref index);
- RefreshSceneList(roomList[index]);
+ //鑾峰彇妤煎眰
+ dicFloor = HdlRoomLogic.Current.GetFloorSortList();
+ currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
+ btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
- if (curRoom.SceneUIList.Count == 0)
+ var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+ if (Common.Config.Instance.Home.FloorDics.Count == 0)
{
- btnFinifh.Enable = false;
- btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ // 鑾峰彇娌℃湁妤煎眰鎴块棿
+ foreach (var room in listAllRoom)
+ {
+ if (string.IsNullOrEmpty(room.FloorId))
+ {
+ roomList.Add(room);
+ }
+ }
}
else
{
- btnFinifh.Enable = true;
- btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂�
+ foreach (var room in listAllRoom)
+ {
+ if (room.FloorId == currentKey.currentSelectFloorId)
+ {
+ roomList.Add(room);
+ }
+ }
}
-
- btnFinifh.MouseUpEventHandler += async (sender, e) =>
+ if (roomList.Count == 0)
{
- btnFinifh.Enable = false;
- btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ return;
+ }
+ //棣栨鎷垮埌鎵�鏈夋埧闂翠腑鎸夐敭鐨勭洰鏍囧苟瀛樺偍
+ GetALlDispalyRoomSceneList();
+
+ if (currentKeyAllRoomSceneList.Count != 0)
+ {
if (currentKey.bindList.Count != 0)
{
- var bindResult = await currentKey.ClearBindInfoAsync();
- if (bindResult.clearBindInfoResponseData != null)
+ foreach (var scTemp in currentKeyAllRoomSceneList)
{
- if (bindResult.clearBindInfoResponseData.Result != 0)
+ var sc = currentKey.bindList.Find(obj => (obj != null) && (obj.BindScenesId == scTemp.Id));
+ if (sc != null)
{
- 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;
+ targetListScene.Add(scTemp);
+ }
+ }
+ }
+ }
+
+ Shared.Common.Room curRoom = roomList[0];
+ int index = 0;
+ RefreshRoomList(curRoom, ref index);
+
+ if (curRoom.ListSceneId.Count == 0)
+ {
+ btnFinish.Enable = false;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ if (targetListDevice.Count == 0 && targetListScene.Count == 0)
+ {
+ btnFinish.Enable = false;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ btnFinish.MouseUpEventHandler += (sender, e) =>
+ {
+ bool isFinish = false;
+ System.Threading.Tasks.Task.Run(() =>
+ {
+ try
+ {
+ if (targetListDevice.Count == 0 && targetListScene.Count == 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ var myTip = new Tip();
+ myTip.Direction = AMPopTipDirection.None;
+ myTip.CloseTime = 2;
+ myTip.Text = Language.StringByID(R.MyInternationalizationString.BindDeviceTargetIsEmpty);
+ myTip.Show(Common.CommonPage.Instance);
+ });
+ return;
+ }
+
+ Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+ if (currentKey.bindList.Count != 0)
+ {
+ var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
+ if (bindResult != null && bindResult.clearBindInfoResponseData != null)
+ {
+ if (bindResult.clearBindInfoResponseData.Result != 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+ CommonPage.Loading.Hide();
+ });
+ return;
+ }
+ else
+ {
+ currentKey.bindList.Clear();
+ }
+ }
+ else
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ CommonPage.Loading.Hide();
+ var myTip = new Tip();
+ myTip.Direction = AMPopTipDirection.None;
+ myTip.CloseTime = 2;
+ myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")";
+ myTip.Show(Common.CommonPage.Instance);
+ });
+ return;
+ }
+ }
+
+ var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Scene_Trigger);
+ if (temp == null || temp.setWritableValueResponData == null)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ CommonPage.Loading.Hide();
+ var myTip = new Tip();
+ myTip.Direction = AMPopTipDirection.None;
+ myTip.CloseTime = 2;
+ myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "120_ 6533" + ")";
+ myTip.Show(Common.CommonPage.Instance);
+ });
+ return;
+ }
+ if (temp.setWritableValueResponData.Status != 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ var myTip = new Tip();
+ myTip.Direction = AMPopTipDirection.None;
+ myTip.CloseTime = 2;
+ myTip.Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode);
+ myTip.Show(Common.CommonPage.Instance);
+ CommonPage.Loading.Hide();
+ });
return;
}
else
{
- currentKey.bindList.Clear();
- }
- }
- }
-
- 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)
- {
- 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);
- }
- }
- bool isFinish = false;
- try
- {
- CommonPage.Loading.Start("");
- var dev = new AddedDeviceBindResponseAllData();
- dev = await currentKey.AddDeviceBindAsync(addBindeDev);
- foreach (var ab in dev.addedDeviceBindResponseData?.BindList)
- {
- switch (ab.Result)
+ currentKey.panelMode = 1;
+ var addBindeDev = new AddBindData();
+ addBindeDev.DeviceAddr = currentKey.DeviceAddr;
+ addBindeDev.Epoint = currentKey.DeviceEpoint;
+ foreach (var de in targetListDevice)
{
- case 0:
- currentKey.bindList.Add((BindListResponseObj)ab);
+ 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);
+ }
+ }
+ foreach (var de in targetListScene)
+ {
+ var addBindInfo = new AddBindListObj();
+ addBindInfo.BindType = 1;
+ addBindInfo.BindCluster = 6;
+ addBindInfo.BindScenesId = de.Id;
+ addBindeDev.BindList.Add(addBindInfo);
+ }
- for (int i = 0; i < targetList.Count; i++)
- {
- var de = targetList[i];
- var sc1 = new SceneUI();
- if (de.DeviceAddr == null)
- {
- sc1 = (SceneUI)de;
-
- if (sc1.Id == ab.BindScenesId)
- {
- targetList.RemoveAt(i);
- i--;
- }
- }
- }
+ var dev = new AddedDeviceBindResponseAllData();
+ dev = HdlDeviceBindLogic.Current.AddDeviceBindAsync(addBindeDev);
+ if (dev != null && dev.addedDeviceBindResponseData != null)
+ {
+ if (dev.addedDeviceBindResponseData.Result == 0)
+ {
+ currentKey.bindList = dev.addedDeviceBindResponseData.BindList;
+ targetListDevice.Clear();
+ targetListScene.Clear();
isFinish = true;
- break;
- case 1:
- new Tip()
+ Application.RunOnMainThread(() =>
{
- MaxWidth = 150,
- Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence),
- Direction = AMPopTipDirection.Up,
- CloseTime = 1
- }.Show(btnFinifh);
- break;
- case 2:
- switch (dev.addBindResultResponseData?.Result)
- {
- case 0:
- currentKey.bindList.Add((BindListResponseObj)ab);
- for (int i = 0; i < targetList.Count; i++)
+ if (isFinish)
+ {
+ if (action != null)
{
- var de = targetList[i];
- if (de.DeviceAddr == ab.BindMacAddr && de.DeviceEpoint == ab.BindEpoint)
- {
- targetList.RemoveAt(i);
- i--;
- }
+ action(currentKey.bindList);
}
- isFinish = true;
- break;
- case 140:
- 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);
- break;
- }
- break;
- case 3:
- 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);
- break;
- default:
- break;
+ this.RemoveFromParent();
+ }
+ else
+ {
+ this.RemoveFromParent();
+ }
+ CommonPage.Loading.Hide();
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ });
+ }
+ else if (dev.addedDeviceBindResponseData.Result == 1)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ CommonPage.Loading.Hide();
+ new Tip()
+ {
+ MaxWidth = 150,
+ Text = Language.StringByID(R.MyInternationalizationString.BindFailed),
+ Direction = AMPopTipDirection.Up,
+ CloseTime = 1
+ }.Show(btnFinish);
+ });
+ return;
+ }
+ else
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ CommonPage.Loading.Hide();
+ new Tip()
+ {
+ MaxWidth = 150,
+ Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError),
+ Direction = AMPopTipDirection.Up,
+ CloseTime = 1
+ }.Show(btnFinish);
+ });
+
+ return;
+ }
+ }
+ else
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ CommonPage.Loading.Hide();
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5001" + ")", Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+ });
+
+ return;
}
}
}
catch { }
- finally
- {
- if (isFinish)
- {
- if (action != null)
- {
- action(currentKey.bindList);
- }
- this.RemoveFromParent();
- }
- else
- {
- this.RemoveFromParent();
- }
- CommonPage.Loading.Hide();
- btnFinifh.Enable = true;
- btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
- }
- }
+ });
};
-
- #endregion
+ #endregion
}
/// <summary>
@@ -325,22 +464,48 @@
/// </summary>
/// <param name="gateway">Gateway.</param>
/// <param name="key">Key.</param>
- void RefreshRoomList(Shared.Common.Room curRoom, Button btnFinish, ref int index2)
+ void RefreshRoomList(Shared.Common.Room curRoom, 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.ListSceneId.Count == 0)
+ {
+ continue;
+ }
+ else
+ {
+ roomTempList.Add(room);
+ }
+ }
+ for (int i = 0; i < roomTempList.Count; i++)
+ {
+ var room = roomTempList[i];
+ curRoom = roomTempList[0];
var btnRoomFrameLayout = new FrameLayout
{
- 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,
+ Height = Application.GetMinReal(159),
+ Width = Application.GetMinReal(255),
+ Y = Application.GetRealHeight(23),
+ X = Application.GetRealWidth(5),
+ BackgroundImagePath = "Item/RoomIconBackground.png",
BorderWidth = 1,
};
btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayout);
@@ -348,7 +513,7 @@
var btnRoom = new Button
{
Height = Application.GetRealHeight(58),
- Width = Application.GetRealWidth(127),
+ Width = Application.GetRealWidth(255),
Y = Application.GetRealHeight(58),
X = Application.GetRealWidth(14),
Text = room.Name,
@@ -359,43 +524,25 @@
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;
- btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
- btnRoomFrameLayout.BorderWidth = 1;
- }
+ btnRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
+ btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+ curentOldRoom = btnRoom;
+ curentOldRoomFrameLayout = btnRoomFrameLayout;
}
- else
+
+ if (index == roomTempList.Count - 1 && index > 2)
{
- if (currentKey.RoomId == room.Id)
+ var btnRoomFrameLayoutEmpty = new FrameLayout
{
- 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;
- }
+ Height = Application.GetMinReal(159),
+ Width = Application.GetMinReal(50),
+ Y = Application.GetRealHeight(23),
+ X = Application.GetRealWidth(5),
+ BorderWidth = 1,
+ };
+ btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayoutEmpty);
}
EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) =>
@@ -405,75 +552,75 @@
if (curentOldRoom != null)
{
curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
- curentOldRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
}
curentOldRoom = btnRoom;
curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
- curentOldRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
- curRoom = room;
- currentKey.RoomId = room.Id;
- if (curRoom.SceneUIList.Count == 0)
- {
- btnFinish.Enable = false;
- btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
- }
- else
- {
- btnFinish.Enable = true;
- btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
- }
- RefreshSceneList(curRoom);
}
-
if (btnRoomFrameLayout.BorderWidth == 1)
{
if (curentOldRoomFrameLayout != null)
{
curentOldRoomFrameLayout.BorderWidth = 1;
- curentOldRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
+ curentOldRoomFrameLayout.BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+ curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackground.png";
}
curentOldRoomFrameLayout = btnRoomFrameLayout;
curentOldRoomFrameLayout.BorderWidth = 0;
- curentOldRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
- curRoom = room;
- currentKey.RoomId = room.Id;
- if (curRoom.SceneUIList.Count == 0)
- {
- btnFinish.Enable = false;
- btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
- }
- else
- {
- btnFinish.Enable = true;
- btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
- }
- RefreshSceneList(curRoom);
+ curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
}
+ curRoom = room;
+ if (curRoom.ListSceneId.Count == 0)
+ {
+ btnFinish.Enable = false;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ if (targetListDevice.Count == 0 && targetListScene.Count == 0)
+ {
+ btnFinish.Enable = false;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ RefreshSceneList(curRoom);
+
};
btnRoom.MouseUpEventHandler += eHandlerRoom;
btnRoomFrameLayout.MouseUpEventHandler += eHandlerRoom;
-
- var btnEmpty = new Button
- {
- Width = Application.GetRealWidth(58),
- X = btnRoom.Right,
- };
- btnHorizontalScrolViewLayout.AddChidren(btnEmpty);
+ index++;
}
+ BindInfo.FinishDisplay(roomTempList, btnFinish);
+ RefreshSceneList(curRoom);
}
/// <summary>
/// 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀�
/// </summary>
- /// <param name="gateway">Gateway.</param>
- /// <param name="key">Key.</param>
+ /// <param name="curRoom"></param>
void RefreshSceneList(Shared.Common.Room curRoom)
{
midVerticalScrolViewLayout.RemoveAll();
-
+ if (curRoom.ListSceneId.Count == 0)
+ {
+ return;
+ }
Button oldScene = null;
int curIndex = 0;
- foreach (var scene in curRoom.SceneUIList)
+ var currentSceneUIList = GetMatchSceneUIList(curRoom);
+ if (currentSceneUIList.Count == 0)
+ {
+ btnFinish.Enable = false;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ return;
+ }
+ foreach (var scene in currentSceneUIList)
{
#region 缁戝畾琛║I鏄撅紙鏃犳暟鎹鐞嗭級
var rowLayout = new FrameLayout()
@@ -487,25 +634,26 @@
{
X = Application.GetMinRealAverage(58),
Y = Application.GetMinRealAverage(46),
- Width = Application.GetMinRealAverage(81),
- Height = Application.GetMinRealAverage(81),
- UnSelectedImagePath = scene.IconPath,
+ Width = Application.GetMinReal(81),
+ Height = Application.GetMinReal(81),
+ UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath,
};
rowLayout.AddChidren(devicePic);
var btnBindName = new Button()
{
- Width = Application.GetRealWidth(500 - 120),
+ Width = Application.GetRealWidth(790),
X = devicePic.Right + Application.GetRealWidth(20),
TextColor = Shared.Common.ZigbeeColor.Current.TextBlack,
TextAlignment = TextAlignment.CenterLeft,
+ TextSize = 15,
};
rowLayout.AddChidren(btnBindName);
var btnChoose = new Button()
{
- Width = Application.GetRealWidth(60),
- Height = Application.GetRealHeight(60),
+ Width = Application.GetMinReal(60),
+ Height = Application.GetMinReal(60),
X = Application.GetRealWidth(861 + 81),
Y = Application.GetRealHeight(35),
SelectedImagePath = "DoorLock/SelectedIcon.png",
@@ -523,7 +671,7 @@
};
rowLayout.AddChidren(line2);
- if (curIndex == curRoom.SceneUIList.Count - 1)
+ if (curIndex == curRoom.ListSceneId.Count - 1)
{
line2.Visible = false;
}
@@ -538,28 +686,36 @@
{
btnBindName.Text = scene.Name;
}
-
- foreach (var bindedSc in currentKey.bindList)
+ if (targetListDevice.Count == 0 && targetListScene.Count == 0)
{
- if (scene.Id == bindedSc.BindScenesId)
+ foreach (var bindedSc in currentKey.bindList)
{
- btnChoose.IsSelected = true;
- btnChoose.Visible = true;
- oldScene = btnChoose;
- targetList.Add(scene);
+ if (scene.Id == bindedSc.BindScenesId)
+ {
+ btnChoose.IsSelected = true;
+ btnChoose.Visible = true;
+ oldScene = btnChoose;
+ targetListScene.Add(scene);
+ }
+ }
+ }
+ else
+ {
+ foreach (var bindedSc in targetListScene)
+ {
+ if (scene.Id == bindedSc.Id)
+ {
+ btnChoose.IsSelected = true;
+ btnChoose.Visible = true;
+ oldScene = btnChoose;
+ }
}
}
- bool IsTip = false;
EventHandler<MouseEventArgs> hander = (sender, e) =>
{
if (currentKey.bindList.Count != 0)
{
- if (IsTip)
- {
- return;
- }
- IsTip = true;
if (btnChoose.IsSelected)
{
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindExist), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnBindName);
@@ -573,14 +729,23 @@
{
oldScene.IsSelected = false;
oldScene.Visible = false;
- targetList.Clear();
}
oldScene = btnChoose;
oldScene.IsSelected = true;
oldScene.Visible = true;
- currentKey.curSelectSceneID = scene.Id.ToString();
- targetList.Clear();
- targetList.Add(scene);
+ targetListDevice.Clear();
+ targetListScene.Clear();
+ targetListScene.Add(scene);
+ }
+ if (targetListDevice.Count == 0 && targetListScene.Count == 0)
+ {
+ btnFinish.Enable = false;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
};
rowLayout.MouseUpEventHandler += hander;
@@ -589,18 +754,242 @@
btnChoose.MouseUpEventHandler += hander;
curIndex++;
}
+ if (targetListDevice.Count == 0 && targetListScene.Count == 0)
+ {
+ btnFinish.Enable = false;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
}
- public void DeviceInfoChange(CommonDevice common, string typeTag)
+ /// <summary>
+ /// 妤煎眰閫夋嫨鐨勪晶杈瑰鑸爮
+ /// </summary>
+ void SideslipFramelayout()
{
+ var dialog = new Dialog
+ {
+ };
+ dialog.Show();
+
+ var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
+ dialog.AddChidren(flMain);
+ flMain.MouseUpEventHandler += (sender11, e11) =>
+ {
+ dialog.Close();
+ };
+
+ var sidelipFrameLayout = new FrameLayout()
+ {
+ Width = Application.GetMinReal(449),
+ Y = Application.GetRealHeight(161),
+ X = Application.GetRealWidth(596),
+ BackgroundImagePath = "DoorLock/SideslipPic.png",
+ };
+ flMain.AddChidren(sidelipFrameLayout);
+
+ var btnSelectFloor = new Button()
+ {
+ Width = Application.GetRealWidth(200),
+ Height = Application.GetRealHeight(58),
+ X = Application.GetRealWidth(81),
+ Y = Application.GetRealHeight(81),
+ TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+ TextSize = 14,
+ IsBold = true,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextID = R.MyInternationalizationString.SelectFloor,
+ };
+ sidelipFrameLayout.AddChidren(btnSelectFloor);
+
+ var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
+ {
+ Height = Application.GetRealHeight(600),
+ Y = btnSelectFloor.Bottom + Application.GetRealHeight(45),
+ };
+ sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
+
+ Button oldbutton = null;
+ Button oldbuttonText = null;
+ int count = 0;
+ foreach (var floorId in dicFloor.Keys)
+ {
+ count++;
+ var rowFrameLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(152),
+ LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+ X = Application.GetRealWidth(81),
+ };
+ sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout);
+
+ var btnAllMethod = new Button()
+ {
+ Width = Application.GetMinReal(81),
+ Height = Application.GetMinReal(81),
+ Gravity = Gravity.CenterVertical,
+ UnSelectedImagePath = "Floor/Floor.png",
+ SelectedImagePath = "Floor/FloorSelected.png",
+ };
+ rowFrameLayout.AddChidren(btnAllMethod);
+
+ var btnMethodText = new Button()
+ {
+ Width = Application.GetRealWidth(311),
+ Height = Application.GetRealHeight(58),
+ X = Application.GetRealWidth(92),
+ Gravity = Gravity.CenterVertical,
+ TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterLeft,
+ Text = dicFloor[floorId],
+ };
+ rowFrameLayout.AddChidren(btnMethodText);
+
+ if (currentKey.currentSelectFloorId == floorId)
+ {
+ btnAllMethod.IsSelected = true;
+ btnAllMethod.IsBold = 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)
+ {
+ oldbutton.IsSelected = false;
+ }
+ if (oldbuttonText != null)
+ {
+ oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+ }
+ oldbutton = btnMethodText;
+ oldbuttonText = btnMethodText;
+ btnMethodText.IsSelected = true;
+ oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ oldbuttonText.IsBold = true;
+ }
+
+ //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂�
+ var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+ foreach (var room in listAllRoom)
+ {
+ 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, ref index);
+ RefreshSceneList(roomList[0]);
+ if (targetListDevice.Count == 0 && targetListScene.Count == 0)
+ {
+ btnFinish.Enable = false;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnFinish.Enable = true;
+ btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ dialog.Close();
+ };
+ btnAllMethod.MouseUpEventHandler += hander;
+ rowFrameLayout.MouseUpEventHandler += hander;
+ btnMethodText.MouseUpEventHandler += hander;
+ }
+
+ if (count == 0)
+ {
+ sidelipFrameLayout.Height = 0;
+ }
+ else if (count <= 4 && count > 0)
+ {
+ sidelipFrameLayout.Height = Application.GetRealHeight(180) + count * Application.GetRealHeight(150);
+ }
+ else
+ {
+ sidelipFrameLayout.Height = Application.GetMinReal(780);
+ }
}
- public void ChangedILogicStatus(ZigBee.Device.Logic logic)
+ /// <summary>
+ /// 褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夊満鏅鐞�
+ /// </summary>
+ /// <returns></returns>
+ List<SceneUI> GetALlDispalyRoomSceneList()
{
- }
+ currentKeyAllRoomSceneList.Clear();
+ // 鑾峰彇鎵�鏈夋埧闂�
+ var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+ foreach (var room in listAllRoom)
+ {
+ //濡傛灉鎴块棿涓哄枩鐖憋紝鍒欎笉鏄剧ず
+ if (room.IsLove == true)
+ {
+ continue;
+ }
+ //濡傛灉鎴块棿涓病鏈夊満鏅紝鍒欎笉鏄剧ず
+ if (room.ListSceneId.Count == 0)
+ {
+ continue;
+ }
- public void ChangedISceneStatus(Scene scene)
+ foreach (var sceneId in room.ListSceneId)
+ {
+ var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
+ if (scene == null)
+ {
+ continue;
+ }
+ currentKeyAllRoomSceneList.Add(scene);
+ }
+ }
+ return currentKeyAllRoomSceneList;
+ }
+ /// <summary>
+ /// 鑾峰彇缃戝叧涓瓨鍦ㄧ殑鏈湴鍦烘櫙鍒楄〃
+ /// </summary>
+ /// <param name="curRoom"></param>
+ /// <returns></returns>
+ List<SceneUI> GetMatchSceneUIList(Shared.Common.Room curRoom)
{
+ var tempSceneUIList = new List<SceneUI>();
+ foreach (var sceneId in curRoom.ListSceneId)
+ {
+ var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
+ if (scene == null)
+ {
+ continue;
+ }
+ tempSceneUIList.Add(scene);
+ }
+ return tempSceneUIList;
}
}
}
--
Gitblit v1.8.0