From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码
---
ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs | 133 +++++++++++++++++++++++++++++++++-----------
1 files changed, 100 insertions(+), 33 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs b/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs
index 80f6792..96be5ac 100755
--- a/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs
@@ -42,6 +42,10 @@
/// 璁惧鍒楄〃鎺т欢
/// </summary>
private VerticalListControl listDeviceView = null;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勬ゼ灞�
+ /// </summary>
+ private string nowSelectFloorId = string.Empty;
#endregion
@@ -57,6 +61,8 @@
//璁剧疆澶撮儴淇℃伅
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.AddFunction));
+ //鍒濆鍖栧彸涓婅鐨勬帶浠�
+ this.InitTopRightMenuControl();
//鍒濆鍖栦腑閮ㄤ俊鎭�
this.InitMiddleFrame();
}
@@ -66,8 +72,58 @@
/// </summary>
private void InitMiddleFrame()
{
+ //娓呯┖body
+ this.ClearBodyFrame();
//鍒濆鍖栨埧闂磋彍鍗曟帶浠�
this.InitRoomMenuControl();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栧彸涓婅鐨勬帶浠�
+ /// </summary>
+ private void InitTopRightMenuControl()
+ {
+ //鑾峰彇妤煎眰
+ var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
+ if (dicFloor.Count == 0)
+ {
+ return;
+ }
+ var btnIconContr = new MostRightIconControl(69, 69);
+ btnIconContr.UnSelectedImagePath = "Item/Drop_Down.png";
+ topFrameLayout.AddChidren(btnIconContr);
+ btnIconContr.InitControl();
+
+ var btnFloor = new NormalViewControl(300, 69, true);
+ btnFloor.Gravity = Gravity.CenterVertical;
+ btnFloor.X = btnIconContr.X + btnIconContr.btnIcon.X - Application.GetRealWidth(300);
+ btnFloor.TextAlignment = TextAlignment.CenterRight;
+ topFrameLayout.AddChidren(btnFloor);
+
+ foreach (var floorId in dicFloor.Keys)
+ {
+ //绗竴涓ゼ灞�
+ this.nowSelectFloorId = floorId;
+ btnFloor.Text = dicFloor[floorId];
+ break;
+ }
+
+ btnIconContr.ButtonClickEvent += (sender, e) =>
+ {
+ //妤煎眰鑿滃崟
+ var contr = new TopRightFloorMenuControl(dicFloor.Count, 2, this.nowSelectFloorId, Language.StringByID(R.MyInternationalizationString.SelectFloor));
+ foreach (var floorId in dicFloor.Keys)
+ {
+ contr.AddRowMenu(floorId, () =>
+ {
+ //璁板綍璧烽�夋嫨鐨処D
+ this.nowSelectFloorId = floorId;
+ btnFloor.Text = dicFloor[this.nowSelectFloorId];
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ });
+ }
+ };
}
#endregion
@@ -98,7 +154,10 @@
roomSwitchContr.SelectRoomEvent += (selectRoom) =>
{
//鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
- this.deviceFunctionMenuContr?.RemoveAll();
+ if (this.deviceFunctionMenuContr != null && this.deviceFunctionMenuContr.Parent != null)
+ {
+ this.deviceFunctionMenuContr.RemoveAll();
+ }
this.listDeviceView?.RemoveAll();
HdlThreadLogic.Current.RunMainInThread(() =>
@@ -116,7 +175,10 @@
this.btnFinishControl = new BottomClickButton();
btnFinishControl.TextID = R.MyInternationalizationString.uFinish;
bodyFrameLayout.AddChidren(btnFinishControl);
- btnFinishControl.Visible = false;
+ if (this.dicNewListTask == null || this.dicNewListTask.Count == 0)
+ {
+ btnFinishControl.Visible = false;
+ }
btnFinishControl.ButtonClickEvent += (sender, e) =>
{
//鍥炶皟鍑芥暟
@@ -136,20 +198,24 @@
/// <returns></returns>
private List<Room> GetCanShowRoomList()
{
- //鍏堝皢鍒楄〃Dictionary鍖�
- this.dicNewListTask = new Dictionary<string, List<Safeguard.TaskListInfo>>();
- this.dicOldListTask = new Dictionary<string, List<Safeguard.TaskListInfo>>();
- foreach (var data in this.listAdjustTarget)
+ if (this.dicNewListTask == null)
{
- if (data.Type == 0)
+ //鍏堝皢鍒楄〃Dictionary鍖�
+ this.dicNewListTask = new Dictionary<string, List<Safeguard.TaskListInfo>>();
+ this.dicOldListTask = new Dictionary<string, List<Safeguard.TaskListInfo>>();
+ foreach (var data in this.listAdjustTarget)
{
- //鍙璁惧
- string mainkey = LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint);
- dicOldListTask[mainkey] = data.TaskList;
+ if (data.Type == 0)
+ {
+ //鍙璁惧
+ string mainkey = LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint);
+ dicOldListTask[mainkey] = data.TaskList;
+ }
}
}
+
//褰撳墠妤煎眰鐨勫叏閮ㄦ埧闂�
- var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
+ var lisrRoom = HdlRoomLogic.Current.GetRoomsByFloorIdAppendLoveRoom(this.nowSelectFloorId);
var listShowRoom = new List<Room>();
foreach (var room in lisrRoom)
{
@@ -181,7 +247,7 @@
var dicGroupDevice = this.GetAllGroupDevice(room);
//鍙垵濮嬪寲涓�娆�
- if (this.deviceFunctionMenuContr == null)
+ if (this.deviceFunctionMenuContr == null || this.deviceFunctionMenuContr.Parent == null)
{
//璁惧鑿滃崟鐨勭櫧鑹茶儗鏅�
var functionBack1 = new FrameLayout();
@@ -228,10 +294,10 @@
//涓婁竴娆¢�夋嫨鐨勮彍鍗曞拰鏁版嵁
DeviceRowInfo nowSelectDeviceInfo = null;
- MainPage.Controls.DeviceFunctionUnallocatedControl oldSelectContr = null;
- foreach (int Textid in dicGroupDevice.Keys)
+ MainPage.Controls.DeviceFunctionMenuControl oldSelectContr = null;
+ foreach (string strText in dicGroupDevice.Keys)
{
- var rowInfo = dicGroupDevice[Textid];
+ var rowInfo = dicGroupDevice[strText];
//璁惧绫诲瀷鐨勫鍣�
var devieFrame = new FrameLayout();
@@ -239,9 +305,9 @@
deviceFunctionMenuContr.AddChidren(devieFrame);
//鑿滃崟鍥剧墖鎺т欢
- var deviceObjContr = new MainPage.Controls.DeviceFunctionUnallocatedControl();
+ var deviceObjContr = new MainPage.Controls.DeviceFunctionMenuControl();
devieFrame.AddChidren(deviceObjContr);
- deviceObjContr.InitControl(Language.StringByID(Textid), rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys);
+ deviceObjContr.InitControl(strText, rowInfo.IconPath, rowInfo.IconPathSelected);
deviceObjContr.ButtonClickEvent += (sender, e) =>
{
//閫夋嫨鐨勬槸鍚屼竴涓笢瑗跨殑璇�,涓嶅鐞�
@@ -256,7 +322,7 @@
HdlThreadLogic.Current.RunMainInThread(() =>
{
//鍒濆鍖栬澶囧垪琛ㄦ帶浠�
- this.InitListDeviceControls(listDeviceView, rowInfo, room);
+ this.InitListDeviceControls(listDeviceView, rowInfo);
});
}
};
@@ -273,7 +339,7 @@
if (nowSelectDeviceInfo != null)
{
//鍒濆鍖栭粯璁ょ殑璁惧鍒楄〃鎺т欢
- this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo, room);
+ this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo);
}
}
@@ -286,7 +352,7 @@
/// </summary>
/// <param name="listView"></param>
/// <param name="rowInfo"></param>
- private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo, Room i_room)
+ private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo)
{
//鍏堟竻绌�
listView.RemoveAll();
@@ -348,14 +414,14 @@
Common.LocalDevice.Current.SetDeviceIconToControl(btnDeviceIcon, device);
frameIconBackGroud.AddChidren(btnDeviceIcon);
//閲嶆柊缁戝畾浜嬩欢
- rowDevice.ChangedChidrenBindMode(frameIconBackGroud, ChidrenBindMode.BindEventOnly);
+ rowDevice.ChangedChidrenBindMode(frameIconBackGroud, ChidrenBindMode.BindEvent);
//璁惧鍚嶅瓧
var btnDeviceName = new NormalViewControl(600, 60, true);
btnDeviceName.X = Application.GetRealWidth(181);
btnDeviceName.Gravity = Gravity.CenterVertical;
btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
- rowDevice.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
+ rowDevice.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent);
btnDeviceName.Y += rowDevice.chidrenYaxis;
//搴曠嚎
var btnBottomLine = new NormalViewControl(Application.GetRealWidth(841), ControlCommonResourse.BottomLineHeight, false);
@@ -490,7 +556,7 @@
/// 鑾峰彇鍒嗙粍鍚庣殑璁惧
/// </summary>
/// <returns></returns>
- private Dictionary<int, DeviceRowInfo> GetAllGroupDevice(Common.Room room)
+ private Dictionary<string, DeviceRowInfo> GetAllGroupDevice(Common.Room room)
{
//鍏ㄩ儴鐨勮澶�
var listDeviceTemp = HdlRoomLogic.Current.GetRoomListDevice(room);
@@ -506,23 +572,23 @@
//鏍规嵁璁惧鎵�灞炵被鍨嬫帓搴�
listDevice = LocalDevice.Current.SortDeviceByBelongType(listDevice);
- var dic = new Dictionary<int, DeviceRowInfo>();
+ var dic = new Dictionary<string, DeviceRowInfo>();
foreach (var device in listDevice)
{
var typeInfo = LocalDevice.Current.GetDeviceBelongEnumInfo(device);
//鎸夋墍灞濱D鍒嗙粍
- if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
+ if (dic.ContainsKey(typeInfo.BeloneText) == false)
{
- dic[typeInfo.BeloneTextId] = new DeviceRowInfo();
+ dic[typeInfo.BeloneText] = new DeviceRowInfo();
string path1 = string.Empty;
string path2 = string.Empty;
//鑾峰彇鍥剧墖
- LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
- dic[typeInfo.BeloneTextId].IconPath = path1;
- dic[typeInfo.BeloneTextId].IconPathSelected = path2;
- dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
+ LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo, ref path1, ref path2);
+ dic[typeInfo.BeloneText].IconPath = path1;
+ dic[typeInfo.BeloneText].IconPathSelected = path2;
+ dic[typeInfo.BeloneText].TextId = typeInfo.BeloneText;
}
- dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
+ dic[typeInfo.BeloneText].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
}
return dic;
}
@@ -557,6 +623,7 @@
device.Type == DeviceType.DimmableLight ||//褰╃伅
device.Type == DeviceType.OnOffOutput ||//缁х數鍣�
device.Type == DeviceType.Thermostat ||//绌鸿皟
+ device.Type == DeviceType.ColorTemperatureLight ||//鑹叉俯鐏�
device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
{
string mainkey = LocalDevice.Current.GetDeviceMainKeys(device);
@@ -575,9 +642,9 @@
private class DeviceRowInfo
{
/// <summary>
- /// 鏂囨湰ID,鐩墠鐢ㄦ潵鍋氫富閿�
+ /// 鏂囨湰,鐩墠鐢ㄦ潵鍋氫富閿�
/// </summary>
- public int TextId = 0;
+ public string TextId = string.Empty;
/// <summary>
/// 鍥炬爣
/// </summary>
--
Gitblit v1.8.0