From 351bdda734832d821a9764b0cde8be5d83c4ec50 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 01 十二月 2022 09:56:25 +0800
Subject: [PATCH] 2022年12月01日09:56:23
---
ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs | 1167 +++++++++++++++++++--------------------------------------
1 files changed, 399 insertions(+), 768 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
index fa0c778..55ae1c5 100755
--- a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
@@ -23,11 +23,11 @@
/// <summary>
/// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView(楂樺害涓鸿澶囪彍鍗曠殑閭d釜鐧借壊鑳屾櫙鐨勪笂閮ㄥ埌灞忓箷搴曢儴)
/// </summary>
- public FrameLayout functionSceneBodyView;
+ public NormalFrameLayout functionSceneBodyView;
/// <summary>
/// 涓儴鑳屾櫙bodyView(楂樺害涓哄満鏅姛鑳藉垏鎹㈡帶浠剁殑搴曢儴鍒板睆骞曞簳閮�)
/// </summary>
- public FrameLayout functionSceneAutoBodyView;
+ public NormalFrameLayout functionSceneAutoBodyView;
/// <summary>
/// 鍙充笂瑙掓坊鍔犳寜閽�
/// </summary>
@@ -54,6 +54,7 @@
/// </summary>
public CategoryMainForm()
{
+ this.FormID = "CategoryMainForm";
BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
instance = this;
}
@@ -65,6 +66,7 @@
{
//鍏堟竻闄ゅ惂
this.RemoveAll();
+
//鍒濆鍖栧ご閮ㄦ帶浠�
this.InitTopControl();
//鍒濆鍖栦腑闂存帶浠�
@@ -73,6 +75,8 @@
this.AddNormalDeviceReportEvent();
//娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
this.AddSensorDeviceReportEvent();
+ //寮�鍚紶鎰熷櫒鐘舵�佽繕鍘熺殑绾跨▼
+ this.StartRecoverSenorStatuThread();
}
/// <summary>
@@ -81,13 +85,13 @@
private void InitTopControl()
{
//澶撮儴FrameLayout
- this.topFrameLayout = new FrameLayout();
+ this.topFrameLayout = new NormalFrameLayout();
topFrameLayout.Y = Application.GetRealHeight(104);
topFrameLayout.Height = Application.GetRealHeight(127);
topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
this.AddChidren(topFrameLayout);
//鏍囬鍒嗙被
- var btnTitle = new NormalViewControl(300, 95, true);
+ var btnTitle = new NormalViewControl(400, 95, true);
btnTitle.X = ControlCommonResourse.XXLeft;
btnTitle.Gravity = Gravity.CenterVertical;
btnTitle.TextID = R.MyInternationalizationString.Category;
@@ -107,12 +111,18 @@
if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
{
//娣诲姞鍦烘櫙
- Add_Scene();
+ var form = new AddOrEditorSceneForm();
+ form.AddForm(new object[] { null });
+ form.SceneChangedEvent += (scene, roomId) =>
+ {
+ //鍒锋柊bodyView
+ this.RefreshBodyView();
+ };
}
else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
{
//娣诲姞鑷姩鍖�
- Add_Automation();
+ Device.Logic.SkipView.SkipAddLogic(0);
}
};
}
@@ -123,9 +133,9 @@
private void InitMidControls()
{
//搴旇鏄痓ody鍚�
- this.bodyFrameLayout = new FrameLayout();
+ this.bodyFrameLayout = new NormalFrameLayout();
bodyFrameLayout.Y = topFrameLayout.Bottom;
- bodyFrameLayout.Height = Application.GetRealHeight(1549);
+ bodyFrameLayout.Height = this.Height - topFrameLayout.Bottom;
bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
this.AddChidren(bodyFrameLayout);
@@ -145,18 +155,21 @@
btnFloorName.Y = Application.GetRealHeight(17);
btnFloorName.TextAlignment = TextAlignment.CenterRight;
btnFloorName.IsBold = true;
- btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(Config.Instance.Home.CurrentFloorId);
+ btnFloorName.Text = Common.Config.Instance.Home.GetCurrentFloorName;
frameSwitchBack.AddChidren(btnFloorName);
btnFloorName.ButtonClickEvent += (sender, e) =>
{
- var floors = new Device.Category.SelectFloor();
+ var floors = new SelectFloorForm();
+ floors.CurFloorId = Config.Instance.Home.CurrentFloorId;
AddChidren(floors);
floors.Init(580, 330, Direction.Right);
- floors.changeFloor = true;
floors.FloorAction += (floorId) =>
{
- btnFloorName.Text = Config.Instance.Home.GetFloorNameById(floorId);
- HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
+ btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(floorId);
+ Config.Instance.Home.CurrentFloorId = floorId;
+ HdlRoomLogic.Current.NowCategoryRoom = HdlRoomLogic.Current.GetLoveRoom();
+ //杩欎釜鏃跺�欓渶瑕佸埛鏂颁富椤�
+ UserPage.Instance.RefreshMainPageForm = true;
//鍒锋柊bodyView
this.RefreshBodyView();
};
@@ -164,7 +177,7 @@
//妤煎眰鍥炬爣
this.btnFloorIcon = new IconViewControl(69);
btnFloorIcon.X = Application.GetRealWidth(950);
- btnFloorIcon.Y = btnFloorName.Y;
+ btnFloorIcon.Y = Application.GetRealHeight(17);
btnFloorIcon.UnSelectedImagePath = "Item/Drop_Down.png";
frameSwitchBack.AddChidren(btnFloorIcon);
btnFloorIcon.ButtonClickEvent += (sender, e) =>
@@ -174,13 +187,14 @@
}
//鐩墠涓嶇煡閬撻儹闆煄鐨勮繖涓叿浣撴斁鍦ㄥ摢涓殑浣嶇疆
- this.functionSceneAutoBodyView = new FrameLayout();
+ this.functionSceneAutoBodyView = new NormalFrameLayout();
functionSceneAutoBodyView.Y = frameSwitchBack.Bottom;
- functionSceneAutoBodyView.Height = Application.GetRealHeight(1423);
+ functionSceneAutoBodyView.Height = bodyFrameLayout.Height - frameSwitchBack.Bottom;
bodyFrameLayout.AddChidren(functionSceneAutoBodyView);
//鍦烘櫙,鍔熻兘,鑷姩鍖栫殑鍒囨崲鎺т欢
var switchContr = new SceneFunctionSwitchControl();
+ switchContr.Y = Application.GetRealHeight(40);
switchContr.Width = Application.GetRealWidth(650);
switchContr.Gravity = Gravity.CenterVertical;
frameSwitchBack.AddChidren(switchContr);
@@ -198,6 +212,14 @@
switchContr.SelectTabEvent += (selectIndex) =>
{
UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = selectIndex;
+ if (selectIndex == 2)
+ {
+ Common.Logic.LogicDviceList.Clear();
+ if (Common.Logic.LogicDviceList.Count == 0)
+ {
+ Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
+ }
+ }
//鍒锋柊bodyView
this.RefreshBodyView();
};
@@ -234,7 +256,8 @@
//鑷姩鍖�
else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
{
- this.ShowAutotion();
+ //鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
+ Device.Logic.SkipView.ShowAutotionView(functionSceneAutoBodyView);
//闅愯棌妤煎眰
floorVisible = false;
//鏄剧ず鍙充笂瑙掔殑鍔犲彿
@@ -260,17 +283,22 @@
private void InitRoomMenuControl()
{
//褰撳墠妤煎眰鐨勫叏閮ㄦ埧闂�
- var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
+ var lisrRoom = HdlRoomLogic.Current.GetRoomsByFloorIdAppendLoveRoom(Config.Instance.Home.CurrentFloorId);
+ if (HdlRoomLogic.Current.NowCategoryRoom == null)
+ {
+ //璁剧疆绗竴涓负鍒濆鎴块棿
+ HdlRoomLogic.Current.NowCategoryRoom = lisrRoom[0];
+ }
//鎴块棿鑿滃崟鎺т欢
var roomSwitchContr = new RoomDeviceGroupMenuControl(lisrRoom);
roomSwitchContr.Y = Application.GetRealHeight(-55);
this.functionSceneAutoBodyView.AddChidren(roomSwitchContr);
//璁剧疆鍒濆鍊�
- roomSwitchContr.SetDefultIndex(HdlRoomLogic.Current.CurrentRoom.Id);
+ roomSwitchContr.SetDefultIndex(HdlRoomLogic.Current.NowCategoryRoom.Id);
//閫夋嫨浜嬩欢
roomSwitchContr.SelectRoomEvent += (selectRoom) =>
{
- HdlRoomLogic.Current.CurrentRoom = selectRoom;
+ HdlRoomLogic.Current.NowCategoryRoom = selectRoom;
//鍦烘櫙
if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
{
@@ -296,7 +324,7 @@
};
//鍔熻兘鍜屽満鏅痓odyView
- this.functionSceneBodyView = new FrameLayout();
+ this.functionSceneBodyView = new NormalFrameLayout();
functionSceneBodyView.Y = roomSwitchContr.Bottom;
functionSceneBodyView.Height = functionSceneAutoBodyView.Height - roomSwitchContr.Bottom;
functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
@@ -319,7 +347,9 @@
var dicGroupDevice = this.GetAllGroupDevice(room);
if (dicGroupDevice.Count == 0)
{
- this.ShowNoFunctionTip();
+ //娌℃湁鍔熻兘{0}璇峰湪涓汉涓績--璁惧绠$悊澶勬坊鍔�
+ string[] arryMsg = Language.StringByID(R.MyInternationalizationString.NoFunction).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+ this.ShowNotDataImage(functionSceneBodyView, arryMsg);
return;
}
@@ -366,11 +396,11 @@
frameDeviceBack.AddChidren(listDeviceView);
//涓婁竴娆¢�夋嫨鐨勮彍鍗�
- MainPage.Controls.DeviceFunctionUnallocatedControl oldSelectContr = null;
+ MainPage.Controls.DeviceFunctionMenuControl oldSelectContr = null;
DeviceRowInfo nowSelectDeviceInfo = null;
- foreach (int Textid in dicGroupDevice.Keys)
+ foreach (string strText in dicGroupDevice.Keys)
{
- var rowInfo = dicGroupDevice[Textid];
+ var rowInfo = dicGroupDevice[strText];
//璁惧绫诲瀷鐨勫鍣�
var devieFrame = new FrameLayout();
@@ -378,13 +408,13 @@
HorizontalView.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) =>
{
//閫夋嫨鐨勬槸鍚屼竴涓笢瑗跨殑璇�,涓嶅鐞�
- if (nowSelectDeviceInfo.TextId != rowInfo.TextId)
+ if (nowSelectDeviceInfo.Text != rowInfo.Text)
{
//涓婁竴娆$殑鑿滃崟鍙栨秷,鏈鑿滃崟閫夋嫨
oldSelectContr.SetSelectStatu(false);
@@ -395,7 +425,7 @@
HdlThreadLogic.Current.RunMainInThread(() =>
{
//鍒濆鍖栬澶囧垪琛ㄦ帶浠�
- this.InitListDeviceControls(listDeviceView, rowInfo);
+ this.InitListDeviceControls(listDeviceView, rowInfo, room);
});
}
};
@@ -412,37 +442,8 @@
if (nowSelectDeviceInfo != null)
{
//鍒濆鍖栭粯璁ょ殑璁惧鍒楄〃鎺т欢
- this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo);
+ this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo, room);
}
- }
-
- /// <summary>
- /// 鎻愮ず娌℃湁鍔熻兘
- /// </summary>
- private void ShowNoFunctionTip()
- {
- var noFunction = new Button()
- {
- Y = Application.GetRealHeight(320),
- Width = Application.GetMinRealAverage(757),
- Height = Application.GetMinRealAverage(435),
- UnSelectedImagePath = "Item/NoFunction.png",
- Gravity = Gravity.CenterHorizontal
- };
- functionSceneBodyView.AddChidren(noFunction);
-
- var noFunctionTip = new Button()
- {
- Y = noFunction.Bottom + Application.GetRealHeight(32),
- Height = Application.GetRealHeight(200),
- Width = Application.GetRealWidth(700),
- Gravity = Gravity.CenterHorizontal,
- Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}", "\r\n"),
- TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
- TextAlignment = TextAlignment.Center,
- IsMoreLines = true
- };
- functionSceneBodyView.AddChidren(noFunctionTip);
}
#endregion
@@ -454,18 +455,33 @@
/// </summary>
/// <param name="listView"></param>
/// <param name="rowInfo"></param>
- private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo)
+ private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo, Room i_room)
{
//鍏堟竻绌�
listView.RemoveAll();
+ this.dicDeviceRowControl = new Dictionary<string, Controls.DeviceRowCommon>();
var listDevice = new List<CommonDevice>();
- foreach (var mainkeys in rowInfo.listDeviceKeys)
+ for (int i = 0; i < rowInfo.listDeviceKeys.Count; i++)
{
- var device = LocalDevice.Current.GetDevice(mainkeys);
+ var device = LocalDevice.Current.GetDevice(rowInfo.listDeviceKeys[i]);
+
+ //鑾峰彇璁惧绫诲瀷鐨�
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
+ //鏂伴闈㈡澘涓嬬殑鍥炶矾涓嶆樉绀猴紝锛堝鏂伴銆佹俯/婀垮害浼犳劅鍣ㄥ垯涓嶆樉绀猴級
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+ {
+ continue;
+ }
+
if (device != null)
{
listDevice.Add(device);
+ }
+ else
+ {
+ rowInfo.listDeviceKeys.RemoveAt(i);
+ i--;
}
}
@@ -478,70 +494,141 @@
//绐楀笜
if (device.Type == DeviceType.WindowCoveringDevice)
{
- cardContr = new Controls.DeviceCurtainRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceCurtainRowControl();
+ }
+ //鏅捐。鏋� Airer
+ if (device.Type == DeviceType.Airer)
+ {
+ cardContr = new Controls.DeviceAirerRowControl();
}
//缁х數鍣�
else if (device.Type == DeviceType.OnOffOutput)
{
- cardContr = new Controls.DeviceRelayRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceRelayRowControl();
}
//绌烘皵寮�鍏�
else if (device.Type == DeviceType.AirSwitch)
{
- cardContr = new Controls.DeviceAirSwitchRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceAirSwitchRowControl();
}
//绌鸿皟
else if (device.Type == DeviceType.Thermostat)
{
- cardContr = new Controls.DeviceAcRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceAcRowControl();
+ }
+ // 鏂伴
+ else if (device.Type == DeviceType.FreshAir)
+ {
+ cardContr = new Controls.DeviceFreshAirRowControl();
+ }
+ // PM2.5
+ else if (device.Type == DeviceType.PMSensor)
+ {
+ cardContr = new Controls.DevicePmSensorRowControl();
+ }
+ // 绌烘皵璐ㄩ噺浼犳劅鍣�
+ else if (device.Type == DeviceType.TemperatureSensor)
+ {
+ //鑾峰彇璁惧绫诲瀷
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+ {
+ cardContr = new Controls.DeviceAirQualitySensorRowControl();
+ }
+ else
+ {
+ //娓╂箍搴�
+ cardContr = new Controls.DeviceTemperatureRowControl();
+ }
}
//褰╃伅(璋冨厜鍣�)
else if (device.Type == DeviceType.DimmableLight)
{
- cardContr = new Controls.DeviceColorLightRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceColorLightRowControl();
}
//浼犳劅鍣�
else if (device.Type == DeviceType.IASZone)
{
- cardContr = new Controls.DeviceSensorRowControl(listView.rowSpace / 2);
- }
- //娓╂箍搴�
- else if (device.Type == DeviceType.TemperatureSensor)
- {
- cardContr = new Controls.DeviceTemperatureRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceSensorRowControl();
}
//闂ㄩ攣
else if (device.Type == DeviceType.DoorLock)
{
- cardContr = new Controls.DeviceDoorLockRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceDoorLockRowControl();
+ }
+ //鑹叉俯鐏�
+ else if (device.Type == DeviceType.ColorTemperatureLight)
+ {
+ cardContr = new Controls.DeviceColorTemperatureRowControl();
}
//鏃犳硶璇嗗埆
- else
+ if (cardContr == null)
{
- cardContr = new Controls.DeviceRowCommon(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceRowCommon();
//娌℃湁鐘舵�佸姛鑳�
cardContr.hadStatuFunction = false;
}
-
+ cardContr.chidrenYaxis = listView.rowSpace / 2;
//鍒濆鍖栧崱鐗�
listView.AddChidren(cardContr);
- cardContr.InitControl(device);
+ cardContr.InitControl(device, HdlRoomLogic.Current.NowCategoryRoom);
//鎺т欢璁板綍鍒扮紦瀛樹腑
this.dicDeviceRowControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
//鍔犵紦瀛�,鐒跺悗鍙戝懡浠�
listContr.Add(cardContr);
+ //鎺т欢琚Щ闄ょ殑鍥炶皟鍑芥暟
+ cardContr.RowNeedRemoveEvent += () =>
+ {
+ string myKeys = LocalDevice.Current.GetDeviceMainKeys(cardContr.device);
+ rowInfo.listDeviceKeys.Remove(myKeys);
+ this.dicDeviceRowControl.Remove(myKeys);
+
+ if (rowInfo.listDeviceKeys.Count == 0)
+ {
+ //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
+ this.functionSceneBodyView.RemoveAll();
+ HdlThreadLogic.Current.RunMainInThread(() =>
+ {
+ //鍒锋柊璁惧鍒嗘敮鎺т欢
+ this.RefreshFunctionView(i_room);
+ });
+ }
+ };
}
HdlThreadLogic.Current.RunThread(() =>
{
- for (int i = 0; i < listContr.Count; i++)
+ int sendCount = 0;
+ while (listView.Parent != null)
{
- if (listView.Parent == null)
+ bool hadSend = false;
+ for (int i = 0; i < listContr.Count; i++)
{
- return;
+ if (listView.Parent == null)
+ {
+ return;
+ }
+ //濡傛灉杩樻病鏈夋帴鏀跺埌鏁版嵁,鍒欏啀娆″彂閫�
+ if (listContr[i].ReceiveResponeResultStatu() == false)
+ {
+ //鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
+ listContr[i].SendStatuComand();
+ hadSend = true;
+ System.Threading.Thread.Sleep(300);
+ }
}
- System.Threading.Thread.Sleep(20);
- //鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
- listContr[i].SendStatuComand();
+ if (hadSend == false)
+ {
+ //濡傛灉宸茬粡鍏ㄩ儴鍥炶矾閮芥帴鏀朵簡缃戝叧鍥炲,鍒欎笉鍐嶄簩娆″彂閫�
+ break;
+ }
+ sendCount++;
+ if (sendCount == 2)
+ {
+ //灏卞彂2娆�
+ break;
+ }
+ System.Threading.Thread.Sleep(5000);
}
}, ShowErrorMode.NO);
@@ -558,6 +645,64 @@
/// <param name="room"></param>
private void RefreshSceneView(Room room)
{
+ //涓讳汉锛岀鐞嗗憳涓撶敤鍒锋柊鎺т欢
+ VerticalListRefreshControl listview1 = null;
+ //鎴愬憳涓撶敤涓嶈兘鍒锋柊鐨勬帶浠�
+ VerticalListControl listview2 = null;
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+ {
+ //涓讳汉锛岀鐞嗗憳涓撶敤鍒锋柊鎺т欢
+ listview1 = new VerticalListRefreshControl();
+ functionSceneBodyView.AddChidren(listview1);
+ //涓嬫媺鍒锋柊
+ listview1.BeginHeaderRefreshingAction += () =>
+ {
+ //濡傛灉褰撳墠鏄櫄鎷熶綇瀹�,鍒欏彧缁欎釜鐗规晥
+ if (Common.Config.Instance.Home.IsVirtually == true)
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ System.Threading.Thread.Sleep(1500);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ listview1.EndHeaderRefreshing();
+ });
+ });
+ return;
+ }
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //浠庣綉鍏冲埛鏂板満鏅垪琛�
+ bool result = HdlSceneLogic.Current.RefreshSceneUIList(false);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ listview1.EndHeaderRefreshing();
+ //listview1.Parent涓簄ull浠h〃瀹冨垏鎹㈡埧闂翠簡
+ if (result == true && listview1.Parent != null)
+ {
+ //鍒锋柊鍦烘櫙鐨勬椂鍊�,鍏抽棴宸﹀垝鑿滃崟鐨勬湭鍒嗛厤鐣岄潰
+ MainPage.LeftListRoomViewFrom.Instance?.CloseUnallocatedRoomForm();
+ //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
+ this.functionSceneBodyView.RemoveAll();
+
+ HdlThreadLogic.Current.RunMainInThread(() =>
+ {
+ //鍒锋柊鍦烘櫙鍒嗘敮鎺т欢
+ this.RefreshSceneView(room);
+ });
+ }
+ });
+ });
+ };
+ }
+ else
+ {
+ //鎴愬憳涓撶敤涓嶈兘鍒锋柊鐨勬帶浠�
+ listview2 = new VerticalListControl();
+ functionSceneBodyView.AddChidren(listview2);
+ }
+
var listScene = new List<SceneUI>();
foreach (var sceneId in room.ListSceneId)
{
@@ -569,35 +714,70 @@
}
if (listScene.Count == 0)
{
- this.ShowNoSceneTip();
+ //鍦ㄦ粦鍔ㄦ帶浠堕噷闈㈡坊鍔犱竴涓甯�
+ var frameTable = new FrameLayout();
+ listview1?.AddChidren(frameTable);
+ listview2?.AddChidren(frameTable);
+ //娌℃湁鍦烘櫙{0}璇风偣鍑诲彸涓婅娣诲姞
+ string[] arryMsg = Language.StringByID(R.MyInternationalizationString.NoScene).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+ this.ShowNotDataImage(frameTable, arryMsg);
return;
}
var dicSceneContr = new Dictionary<int, SceneCategoryView>();
- var listview = new VerticalListControl();
- functionSceneBodyView.AddChidren(listview);
foreach (var scene in listScene)
{
//鍦烘櫙鍗$墖鎺т欢
var sceneView = new SceneCategoryView();
- listview.AddChidren(sceneView);
+ listview1?.AddChidren(sceneView);
+ listview2?.AddChidren(sceneView);
sceneView.InitControl(scene, room);
dicSceneContr[scene.Id] = sceneView;
}
HdlThreadLogic.Current.RunThread(() =>
{
- //鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
- this.GetAllDelayScene(dicSceneContr, listview);
+ if (listview1 != null)
+ {
+ //鎵撳紑鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+ this.StartAllDelayScene(dicSceneContr, listview1);
+ }
+ else
+ {
+ //鎵撳紑鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+ this.StartAllDelayScene(dicSceneContr, listview2);
+ }
}, ShowErrorMode.NO);
}
/// <summary>
- /// 鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+ /// 鎵撳紑鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
/// </summary>
/// <param name="dicSceneContr"></param>
- private async void GetAllDelayScene(Dictionary<int, SceneCategoryView> dicSceneContr, VerticalListControl listview)
+ private async void StartAllDelayScene(Dictionary<int, SceneCategoryView> dicSceneContr, ViewGroup listview)
{
+ string hourText = Language.StringByID(R.MyInternationalizationString.Hour);
+ string minuText = Language.StringByID(R.MyInternationalizationString.Minute);
+ string secondText = Language.StringByID(R.MyInternationalizationString.Second);
+
+ //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
+ if (Config.Instance.Home.IsVirtually == true)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //寮�鍚欢鏃剁壒鏁�
+ foreach (var myContr in dicSceneContr.Values)
+ {
+ if (myContr.scene.RemainTime > 0)
+ {
+ //寮�鍚満鏅欢鏃剁壒鏁�
+ this.StartSceneDelayApeal(myContr, listview, myContr.scene.RemainTime, hourText, minuText, secondText);
+ }
+ }
+ }, ShowErrorMode.NO);
+ return;
+ }
+
//璇诲彇鍏ㄩ儴鐨勫欢鏃舵椂闂�
var result = await Scene.CatDelaySceneAsync();
if (result == null || result.catDelaySceneResponseData == null ||
@@ -606,10 +786,6 @@
//鍑洪敊涓嶉笩瀹�
return;
}
-
- string hourText = Language.StringByID(R.MyInternationalizationString.Hour);
- string minuText = Language.StringByID(R.MyInternationalizationString.Minute);
- string secondText = Language.StringByID(R.MyInternationalizationString.Second);
foreach (var data in result.catDelaySceneResponseData.DelayScenesList)
{
@@ -626,61 +802,46 @@
{
continue;
}
- HdlThreadLogic.Current.RunThread(() =>
- {
- //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
- HdlSceneLogic.Current.StartDelayTimeThread(seceneContr.scene);
- while (remainTime > 0 && this.Parent != null)
- {
- System.Threading.Thread.Sleep(1000);
- Application.RunOnMainThread(() =>
- {
- seceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText));
- });
- remainTime--;
- }
- Application.RunOnMainThread(() =>
- {
- if (listview.Parent != null)
- {
- seceneContr.SetTimeImage();
- //寮�鍚疞oading鐗规晥
- seceneContr.StartLoadingApreal();
- }
- });
- });
+ //寮�鍚満鏅欢鏃剁壒鏁�
+ this.StartSceneDelayApeal(seceneContr, listview, remainTime, hourText, minuText, secondText);
}
}
/// <summary>
- /// 鏄剧ず娌℃湁鍦烘櫙
+ /// 寮�鍚満鏅欢鏃剁壒鏁�
/// </summary>
- private void ShowNoSceneTip()
+ /// <param name="sceneContr"></param>
+ /// <param name="remainTime"></param>
+ /// <param name="hourText"></param>
+ /// <param name="minuText"></param>
+ /// <param name="secondText"></param>
+ private void StartSceneDelayApeal(SceneCategoryView sceneContr, ViewGroup listview, int remainTime,
+ string hourText, string minuText, string secondText)
{
- var noFunction = new Button()
+ HdlThreadLogic.Current.RunThread(() =>
{
- Y = Application.GetRealHeight(320),
- Width = Application.GetMinRealAverage(757),
- Height = Application.GetMinRealAverage(435),
- UnSelectedImagePath = "Item/NoFunction.png",
- Gravity = Gravity.CenterHorizontal
- };
- functionSceneBodyView.AddChidren(noFunction);
-
- var noScenceTip = new Button()
- {
- Y = noFunction.Bottom + Application.GetRealHeight(32),
- Height = Application.GetRealHeight(200),
- Width = Application.GetRealWidth(700),
- Gravity = Gravity.CenterHorizontal,
- Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}", "\r\n"),
- TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
- TextAlignment = TextAlignment.Center,
- IsMoreLines = true
- };
- functionSceneBodyView.AddChidren(noScenceTip);
+ //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+ HdlSceneLogic.Current.StartDelayTimeThread(sceneContr.scene);
+ while (remainTime > 0 && this.Parent != null)
+ {
+ System.Threading.Thread.Sleep(1000);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ sceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText));
+ }, ShowErrorMode.NO);
+ remainTime--;
+ }
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ if (listview.Parent != null)
+ {
+ sceneContr.SetTimeImage();
+ //寮�鍚疞oading鐗规晥
+ sceneContr.StartLoadingApreal();
+ }
+ }, ShowErrorMode.NO);
+ });
}
-
#endregion
@@ -692,23 +853,45 @@
private void AddNormalDeviceReportEvent()
{
//璁惧灞炴�т笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
- HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) =>
+ HdlGatewayReceiveLogic.Current.AddAttributeEvent("CategoryMainFormDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) =>
{
HdlThreadLogic.Current.RunMain(() =>
{
//澶勭悊涓�鑸澶囩殑涓婃姤鏁版嵁
string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+ //鏅捐。鏋朵笂鎶ラ渶瑕佺壒娈婂鐞嗭紝鍏朵粬涓婃姤鐨勫洖璺粺涓�杞负绔偣1
+ var tempList = LocalDevice.Current.GetDevicesByMac(report.DeviceAddr);
+ if (tempList.Count > 0)
+ {
+ var tempDeviceEnum = LocalDevice.Current.GetMyDeviceEnumInfo(tempList);
+ if (tempDeviceEnum.ConcreteType == Common.DeviceConcreteType.Airer)
+ {
+ mainKeys = report.DeviceAddr + "_" + 1;
+ }
+ }
if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
{
//鍒锋柊鍗$墖淇℃伅
var locadevice = LocalDevice.Current.GetDevice(mainKeys);
- this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
+ //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉 2020.05.09:鍒犻櫎Ack涓婚
+ this.dicDeviceRowControl[mainKeys].SetHadGetResponeResultStatu();
+ //鍒锋柊鎺т欢
+ if (locadevice.Type != DeviceType.IASZone)
+ {
+ //浼犳劅鍣ㄤ笉闇�瑕佸睘鎬т笂鎶�(浣嗘槸閭d釜鐞冨瀷浼犳劅鍣ㄥ眳鐒朵細灞炴�т笂鎶�)
+ this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
+ }
+ else if (report.DeviceStatusReport.CluterID == 1)
+ {
+ //杩欎釜鏄數閲忔帹閫�
+ this.dicDeviceRowControl[mainKeys].RefreshBatteryStatu();
+ }
}
}, ShowErrorMode.NO);
});
//璁惧鍦ㄧ嚎涓婃姤(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
- HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceOnline", ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤, (report) =>
+ HdlGatewayReceiveLogic.Current.AddAttributeEvent("CategoryMainFormDeviceOnline", ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤, (report) =>
{
HdlThreadLogic.Current.RunMain(() =>
{
@@ -716,25 +899,9 @@
if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
{
//鍒锋柊鍗$墖鐘舵��
- this.dicDeviceRowControl[mainKeys].SetRowOnlineStatu(report.IsOnline == 1);
+ bool bolOnline = LocalDevice.Current.CheckDeviceIsOnline(report);
+ this.dicDeviceRowControl[mainKeys].SetRowOnlineStatu(bolOnline);
return;
- }
-
- }, ShowErrorMode.NO);
- });
-
- //璁惧鎺у埗鍙嶉涓婃姤
- HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceRespone", ReceiveComandDiv.A鑺傜偣鎺у埗鍙嶉, (report) =>
- {
- HdlThreadLogic.Current.RunMain(() =>
- {
- string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
- if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
- {
- //璁惧鍗$墖
- var deviceCardContr = this.dicDeviceRowControl[mainKeys];
- //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
- deviceCardContr.SetHadGetResponeResultStatu();
}
}, ShowErrorMode.NO);
@@ -751,7 +918,7 @@
private void AddSensorDeviceReportEvent()
{
//浼犳劅鍣ㄤ笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
- HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) =>
+ HdlGatewayReceiveLogic.Current.AddAttributeEvent("CategoryMainFormSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) =>
{
HdlThreadLogic.Current.RunMain(() =>
{
@@ -759,13 +926,50 @@
string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
{
- //鏈湴璁惧瀵硅薄
- var locadevice = LocalDevice.Current.GetDevice(mainKeys);
- //鍒锋柊鍗$墖淇℃伅
- this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
+ //寮�鍚闂儊鐗规晥
+ this.dicDeviceRowControl[mainKeys].StartRowLightAppeal();
}
}, ShowErrorMode.NO);
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 浼犳劅鍣ㄧ姸鎬佽繕鍘焈____________________
+
+ /// <summary>
+ /// 寮�鍚紶鎰熷櫒鐘舵�佽繕鍘熺殑绾跨▼
+ /// </summary>
+ private void StartRecoverSenorStatuThread()
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ while (this.Parent != null)
+ {
+ try
+ {
+ var dicControl = this.dicDeviceRowControl;
+ foreach (var contr in dicControl.Values)
+ {
+ //濡傛灉鏄紶鎰熷櫒,鍒欏埛鏂扮姸鎬�
+ if (contr.device.Type == DeviceType.IASZone && contr.Parent != null
+ && ((IASZone)contr.device).iASInfo == null)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //璁惧鐘舵�佸繀椤诲埛鏂�
+ string statuText = HdlDeviceOtherLogic.Current.GetDeviceStatu(contr.device);
+ contr.SetDeviceStatuText(statuText);
+ //浼犳劅鍣ㄥ垏鎹负鐏拌壊鐘舵��
+ contr.SwitchRowStatuAppeal(false);
+ }, ShowErrorMode.NO);
+ }
+ }
+ System.Threading.Thread.Sleep(8000);
+ }
+ catch { System.Threading.Thread.Sleep(3000); }
+ }
});
}
@@ -777,29 +981,40 @@
/// 鑾峰彇鍒嗙粍鍚庣殑璁惧
/// </summary>
/// <returns></returns>
- private Dictionary<int, DeviceRowInfo> GetAllGroupDevice(Common.Room room)
+ private Dictionary<string, DeviceRowInfo> GetAllGroupDevice(Common.Room room)
{
//鍏ㄩ儴鐨勮澶�
- var listDevice = HdlRoomLogic.Current.GetRoomListDevice(room);
+ var listDeviceTemp = HdlRoomLogic.Current.GetRoomListDevice(room);
+ var listDevice = new List<CommonDevice>();
+ foreach (var device in listDeviceTemp)
+ {
+ //鍒ゆ柇璇ヨ澶囪兘鍚︽樉绀哄湪鍒嗙被
+ if (LocalDevice.Current.CanShowInHomeHomeMainPage(device) == false)
+ {
+ continue;
+ }
+ listDevice.Add(device);
+ }
+
//鏍规嵁璁惧鎵�灞炵被鍨嬫帓搴�
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].Text = typeInfo.BeloneText;
}
- dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
+ dic[typeInfo.BeloneText].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
}
return dic;
}
@@ -815,6 +1030,9 @@
{
//鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
instance = null;
+ HdlGatewayReceiveLogic.Current.RemoveEvent("CategoryMainFormDeviceStatus");
+ HdlGatewayReceiveLogic.Current.RemoveEvent("CategoryMainFormDeviceOnline");
+ HdlGatewayReceiveLogic.Current.RemoveEvent("CategoryMainFormSensor");
base.CloseFormBefore();
}
@@ -852,37 +1070,6 @@
return timeStr;
}
- /// <summary>
- /// 娣诲姞鍦烘櫙(閮洩鍩庣殑浠g爜)
- /// </summary>
- private void Add_Scene()
- {
- var scene = new Device.Category.CategoryAddScene();
- UserView.HomePage.Instance.AddChidren(scene);
- UserView.HomePage.Instance.PageIndex += 1;
- scene.Show();
- scene.AddAction = () =>
- {
- //鍒锋柊bodyView
- this.RefreshBodyView();
- };
- }
-
- /// <summary>
- /// 娣诲姞鑷姩鍖�(閮洩鍩庣殑浠g爜)
- /// </summary>
- private void Add_Automation()
- {
- //new涓�涓柊閫昏緫瀵硅薄锛�
- Common.Logic.CurrentLogic = new Common.Logic();
- Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
- Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
- var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage();
- UserView.HomePage.Instance.AddChidren(addLogicPage);
- UserView.HomePage.Instance.PageIndex += 1;
- addLogicPage.Show();
- }
-
#endregion
#region 鈻� 缁撴瀯浣揰____________________________
@@ -893,9 +1080,9 @@
private class DeviceRowInfo
{
/// <summary>
- /// 鏂囨湰ID,鐩墠鐢ㄦ潵鍋氫富閿�
+ /// 鏂囨湰,鐩墠鐢ㄦ潵鍋氫富閿�
/// </summary>
- public int TextId = 0;
+ public string Text = string.Empty;
/// <summary>
/// 鍥炬爣
/// </summary>
@@ -908,562 +1095,6 @@
/// 璁惧鍥炶矾涓婚敭
/// </summary>
public List<string> listDeviceKeys = new List<string>();
- }
-
- #endregion
-
- #region 鈼� 鑷姩鍖朹_________________________
-
- /// <summary>
- /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
- /// </summary>
- private void ShowAutotion()
- {
- // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
- #region ---鎺ㄨ崘妯℃澘鐨勭粍浠�
- //鎺ㄨ崘妯℃澘鑳屾櫙鎺т欢
- var bjFrameLayout = new FrameLayout
- {
- Width = Application.GetRealWidth(1080 - 58),
- Height = Application.GetRealHeight(170),
- BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
- X = Application.GetRealWidth(58),
- //Radius = (uint)Application.GetRealHeight(50),
- Y = Application.GetRealHeight(30),
-
- };
- functionSceneAutoBodyView.AddChidren(bjFrameLayout);
- bjFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
- //鍥炬爣鎺т欢
- var sigBtn = new Button
- {
- Width = Application.GetMinRealAverage(84),
- Height = Application.GetMinRealAverage(84),
- UnSelectedImagePath = "ZigeeLogic/sign.png",
- X = Application.GetRealWidth(58),
- Gravity = Gravity.CenterVertical,
- };
- bjFrameLayout.AddChidren(sigBtn);
- //鎺ㄨ崘妯℃澘鏂囨湰鎺т欢
- var recommendtextBtn = new Button
- {
- Width = Application.GetMinRealAverage(300),
- Height = Application.GetMinRealAverage(84),
- X = sigBtn.Right + Application.GetRealWidth(35),
- TextAlignment = TextAlignment.CenterLeft,
- //Text = "鎺ㄨ崘妯℃澘",
- TextID = MyInternationalizationString.logictemplate,
- Gravity = Gravity.CenterVertical,
- TextColor = ZigbeeColor.Current.LogicBtnSelectedColor,
- TextSize = 15,
- };
- bjFrameLayout.AddChidren(recommendtextBtn);
- //鎺ㄨ崘妯℃澘寮�鍏虫帶浠�
- var recommendswitchBtn = new Button
- {
- Width = Application.GetRealWidth(104),
- Height = Application.GetRealHeight(63),
- UnSelectedImagePath = "ZigeeLogic/logicclose.png",
- SelectedImagePath = "ZigeeLogic/logicopen.png",
- X = bjFrameLayout.Width - Application.GetRealWidth(104 + 58),
- Gravity = Gravity.CenterVertical,
- };
- bjFrameLayout.AddChidren(recommendswitchBtn);
- #endregion
- //榛樿鎺ㄨ崘妯℃澘宸﹀彸鍙粦鎺т欢
- var scenehorizontalScrol = new HorizontalScrolViewLayout
- {
- Width = Application.GetRealWidth(1080 - 58),
- X = Application.GetRealWidth(58),
- Y = bjFrameLayout.Bottom + Application.GetRealHeight(30),
- Height = Application.GetRealHeight(0),
- };
- functionSceneAutoBodyView.AddChidren(scenehorizontalScrol);
- //鏄剧ず鑷姩鍖栧垪琛ㄤ笂涓嬪彲婊戞帶浠�
- var logicScrolView = new VerticalRefreshLayout//VerticalScrolViewLayout
- {
- Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
- //BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,/
- X = Application.GetRealWidth(58),
- Y = scenehorizontalScrol.Bottom,
- };
- functionSceneAutoBodyView.AddChidren(logicScrolView);
- logicScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
- bool no = false;
- //鏄剧ず榛樿妯℃澘鐨勭晫闈簨浠�
- recommendswitchBtn.MouseUpEventHandler += (sender, e) =>
- {
- int Yheight = 0;
- recommendswitchBtn.IsSelected = !recommendswitchBtn.IsSelected;
- scenehorizontalScrol.RemoveAll();
- if (recommendswitchBtn.IsSelected)
- {
- no = true;
- scenehorizontalScrol.Height = Application.GetRealHeight(246);
- Yheight = 20;
- for (int i = 1; i < 4; i++)
- {
-
- var frameLayout = new FrameLayout
- {
- Width = Application.GetMinRealAverage(369 + 46),
- Height = Application.GetMinRealAverage(246),
- };
- scenehorizontalScrol.AddChidren(frameLayout);
- var logiciocnBtn = new Button
- {
- Width = Application.GetMinRealAverage(369),
- Height = Application.GetMinRealAverage(246),
- UnSelectedImagePath = "ZigeeLogic/" + i + ".png",
- Tag = i,
- };
- frameLayout.AddChidren(logiciocnBtn);
-
- var logicnameBtn = new Button
- {
- Width = Application.GetMinRealAverage(250),
- Height = Application.GetMinRealAverage(80),
- X = Application.GetRealWidth(23),
- Y = Application.GetRealHeight(246 - 23 - 80),
- TextAlignment = TextAlignment.CenterLeft,
- TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
- TextSize = 14,
- };
- frameLayout.AddChidren(logicnameBtn);
-
- if (i == 1)
- {
- logicnameBtn.Text = Language.StringByID(MyInternationalizationString.onlight);
- }
- else if (i == 2)
- {
- logicnameBtn.Text = Language.StringByID(MyInternationalizationString.offlight);
- }
- else if (i == 3)
- {
- logicnameBtn.Text = Language.StringByID(MyInternationalizationString.automation1);
- }
-
-
- EventHandler<MouseEventArgs> iconclick = (sender1, e1) =>
- {
- Common.Logic.CurrentLogic = new Common.Logic();
- Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
- if (logiciocnBtn.Tag.ToString() == "3")
- {
- Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
- //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext);
- var addLogicPage = new Device.Logic.AddLogicPage();
- HomePage.Instance.AddChidren(addLogicPage);
- HomePage.Instance.PageIndex += 1;
- addLogicPage.Show();
- }
- else
- {
-
- Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
- //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext);
- Device.Logic.TemplatePage templatePage = new Device.Logic.TemplatePage();
- Device.Logic.TemplatePage.s = logiciocnBtn.Tag.ToString();
- HomePage.Instance.AddChidren(templatePage);
- HomePage.Instance.PageIndex += 1;
- templatePage.Show();
- }
- };
- logiciocnBtn.MouseUpEventHandler += iconclick;
- logicnameBtn.MouseUpEventHandler += iconclick;
- }
- }
- else
- {
- no = false;
- scenehorizontalScrol.Height = Application.GetRealHeight(0);
- Yheight = 0;
- }
- logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight;
- logicScrolView.Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight;
- Automationview(logicScrolView, no);
- };
- //涓嬫媺鍒锋柊鑷姩鍖栧垪琛ㄧ殑浜嬩欢
- logicScrolView.BeginHeaderRefreshingAction += () =>
- {
- //閲嶆柊鍒锋柊logic鍒楄〃
- Common.Logic.LogicList.Clear();
- Read(logicScrolView, no);
- //鍏抽棴鍒锋柊View锛�
- logicScrolView.EndHeaderRefreshing();
- };
-
- Read(logicScrolView, no);
-
- }
- /// <summary>
- /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱
- /// </summary>
- /// <param name="logicScrolView"></param>
- private async void Read(VerticalRefreshLayout logicScrolView, bool no)
- {
- CommonPage.Loading.Start();
- if (Common.Logic.LogicList.Count == 0)
- {
- var Idlist = await Device.Logic.Send.GetLogicId(0);
- if (Idlist.Count != 0)
- {
- var listlogic = await Device.Logic.Send.ReadList(Idlist.Count, 0);
- //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆�
- for (int j = 0; j < listlogic.Count; j++)
- {
- var logic = listlogic[j];
- if (logic.LogicType != 0)
- {
- continue;
- }
- Common.Logic.LogicList.Add(logic);
- }
- }
- }
- //鑷姩鍖�
- Automationview(logicScrolView, no);
- CommonPage.Loading.Hide();
- }
- /// <summary>
- /// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈�
- /// </summary>
- /// <param name="refresview">Refresview.</param>
- private async void Automationview(VerticalRefreshLayout refresview, bool no)
- {
- refresview.RemoveAll();
- if (Common.Logic.LogicList.Count == 0 && no == false)
- {
- //灏辨槸涓轰簡鏄剧ず寮曞娣诲姞鍥炬爣;
- refresview.BackgroundColor = 0x00000000;
- var noFrameLayout = new FrameLayout
- {
- Height = Application.GetRealHeight(434 + 200 + 32 + 160),
- //BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
- };
- refresview.AddChidren(noFrameLayout);
-
-
- var noIconBtn = new Button
- {
- Y = Application.GetRealHeight(160),
- Width = Application.GetMinRealAverage(756),
- Height = Application.GetMinRealAverage(434),
- UnSelectedImagePath = "Item/NoFunction.png",
- X = Application.GetRealWidth(104),
- };
- noFrameLayout.AddChidren(noIconBtn);
-
- var noTextBtn = new Button()
- {
- Y = noIconBtn.Bottom,
- Height = Application.GetRealHeight(200) + Application.GetRealHeight(32),
- Width = Application.GetRealWidth(700),
- //Gravity = Gravity.CenterHorizontal,
- Text = Language.StringByID(MyInternationalizationString.automationaddtext).Replace("{\\r\\n}", "\r\n"),
- TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
- TextAlignment = TextAlignment.Center,
- IsMoreLines = true,
- X = Application.GetRealWidth(190 - 58),
- };
- noFrameLayout.AddChidren(noTextBtn);
-
- }
- else
- {
-
- if (Common.Logic.LogicList.Count == 0 && no == true)
- {
- ///鏀瑰彉婊戝姩view鐨勯鑹诧紱
- refresview.BackgroundColor = 0x00000000;
- }
- else
- {
- refresview.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
- }
- }
- foreach (var logic in Common.Logic.LogicList)
- {
-
-
- var logicRowlayout = new RowLayout
- {
- Height = Application.GetRealHeight(190 + 30),
- Width = Application.GetRealWidth(1080 - 58),
- LineColor = ZigbeeColor.Current.LogicBackgroundColor,
- BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
- SubViewWidth = Application.GetRealWidth(184),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
-
- };
- refresview.AddChidren(logicRowlayout);
-
-
-
- var logicnameBtn = new Button
- {
- Height = Application.GetRealHeight(58),
- Width = Application.GetRealWidth(350),
- Text = logic.LogicName,
- X = Application.GetRealWidth(12 + 46),
- Y = Application.GetRealHeight(30),
- TextAlignment = TextAlignment.CenterLeft,
- TextColor = ZigbeeColor.Current.LogicTextBlackColor,
- TextSize = 14,
- };
- logicRowlayout.AddChidren(logicnameBtn);
-
-
- var logicswitchBtn = new Button
- {
- Width = Application.GetRealWidth(104),
- Height = Application.GetRealHeight(63),
- UnSelectedImagePath = "ZigeeLogic/logicclose.png",
- SelectedImagePath = "ZigeeLogic/logicopen.png",
- X = logicRowlayout.Width - Application.GetRealWidth(104 + 58),
- Y = Application.GetRealHeight(58 + 30 + 9 + 30),
-
- };
- logicRowlayout.AddChidren(logicswitchBtn);
-
-
-
- logicswitchBtn.MouseUpEventHandler += (sender1, e1) =>
- {
- logicswitchBtn.IsSelected = !logicswitchBtn.IsSelected;
- if (logicswitchBtn.IsSelected)
- {
- //閫昏緫寮�
- logic.IsEnable = 1;
- StatusColor(logic, logicRowlayout, 1);
- }
- else
- {
- //閫昏緫鍏�
- logic.IsEnable = 0;
- StatusColor(logic, logicRowlayout, 0);
- }
- Device.Logic.Send.LogicControlSwitch(logic);
- //Logic.Send.AddModifyLogic(logic);
- };
- if (logic.IsEnable == 1)
- {
- logicswitchBtn.IsSelected = true;
- StatusColor(logic, logicRowlayout, 1);
- }
- else if (logic.IsEnable == 0)
- {
- logicswitchBtn.IsSelected = false;
- StatusColor(logic, logicRowlayout, 0);
- }
- ///缂栬緫
- var edit = new Button
- {
- BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
- Text = Language.StringByID(MyInternationalizationString.edit),
- TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
- };
- logicRowlayout.AddRightView(edit);
- edit.MouseUpEventHandler += (sender, e) =>
- {
- Common.Logic.CurrentLogic = logic;
- var logicCommunalPage = new Device.Logic.LogicCommunalPage();
- HomePage.Instance.AddChidren(logicCommunalPage);
- HomePage.Instance.PageIndex += 1;
- logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); });
-
- };
-
-
- ///鍒犻櫎
- var del = new Button
- {
- BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
- Text = Language.StringByID(MyInternationalizationString.del),
- TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
- };
- logicRowlayout.AddRightView(del);
- del.MouseUpEventHandler += (sender, e) =>
- {
- var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
- Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
- alert.ResultEventHandler += (sender1, e1) =>
- {
- if (e1)
- {
- Common.Logic.LogicList.Remove(logic);
- Automationview(refresview, no);
- Device.Logic.Send.DelLogic(logic.LogicId);
- }
- };
- alert.Show();
-
- };
- var line = new Button
- {
- Y = Application.GetRealHeight(215),
- Height = Application.GetRealHeight(5),
- Width = Application.GetRealWidth(1080 - 58),
- BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
- X = Application.GetRealWidth(58),
- };
- logicRowlayout.AddChidren(line);
- }
-
- }
- /// <summary>
- /// 鏄剧ず鑷姩鍖栬緭鍑哄姛鑳芥ā鍧楀浘鏍囩殑棰滆壊
- /// </summary>
- /// <param name="logic"></param>
- /// <param name="logicRowlayout"></param>
- /// <param name="intvalue"></param>
- private void StatusColor(Common.Logic logic, RowLayout logicRowlayout, int intvalue)
- {
-
- var logictimeBtn = new Button
- {
- Height = Application.GetRealHeight(58),
- Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350),
- Y = Application.GetRealHeight(30),
- X = Application.GetRealWidth(365),
- TextAlignment = TextAlignment.CenterRight,
- TextColor = ZigbeeColor.Current.LogicListWeekTextColor,
- };
- logicRowlayout.AddChidren(logictimeBtn);
-
- ///鏄剧ず鎵ц鍛ㄦ湡
- Device.Logic.Method.UpdateWeek(logictimeBtn, logic);
-
-
- List<string> indexlist = new List<string>();
- List<string> iconIndexlist = new List<string>();
- for (int i = 0; i < logic.Actions.Count; i++)
- {
- var linkType = logic.Actions[i]["LinkType"].ToString();
- var d = indexlist.Find((value) => { return value == linkType; });
- if (d == null)
- {
- indexlist.Add(linkType);
- }
- }
- if (indexlist.Contains("0"))
- {
- iconIndexlist.Add("0");
- }
- if (indexlist.Contains("2"))
- {
- iconIndexlist.Add("2");
- }
- if (indexlist.Contains("6"))
- {
- iconIndexlist.Add("6");
- }
- if (indexlist.Contains("7"))
- {
- iconIndexlist.Add("7");
- }
- for (int i = 0; i < iconIndexlist.Count; i++)
- {
- var iconindex = iconIndexlist[i];
- var typebjBtn = new FrameLayout
- {
- Width = Application.GetMinRealAverage(82),
- Height = Application.GetMinRealAverage(82),
- X = Application.GetRealWidth(58) + Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i),
- Y = Application.GetRealHeight(58 + 30 + 30),
- Radius = (uint)Application.GetRealHeight(41),
- BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
- };
- logicRowlayout.AddChidren(typebjBtn);
-
- var typeIconBtn = new Button
- {
- Width = Application.GetMinRealAverage(58),
- Height = Application.GetMinRealAverage(58),
- Gravity = Gravity.Center,
-
- };
- typebjBtn.AddChidren(typeIconBtn);
-
- var connectIconBtn = new Button
- {
- Y = typebjBtn.Y + Application.GetRealHeight(35),
- X = Application.GetRealWidth(58) + Application.GetRealWidth((12 + 82 + 12) + (12 + 45 + 82 + 12) * i),
- Width = Application.GetRealWidth(48),
- Height = Application.GetRealHeight(15),
- UnSelectedImagePath = "ZigeeLogic/connect.png",
- };
- logicRowlayout.AddChidren(connectIconBtn);
- if (iconIndexlist.Count - 1 == i)
- {
- connectIconBtn.Visible = false;
- }
- switch (iconindex)
- {
- case "0":
- {
- if (intvalue == 1)
- {
- typeIconBtn.UnSelectedImagePath = "ZigeeLogic/function1.png";
- typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicFunction1Color;
- }
- else
- {
- typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png";
- typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
- }
- }
- break;
- case "2":
- {
-
- if (intvalue == 1)
- {
- typeIconBtn.UnSelectedImagePath = "ZigeeLogic/scene1.png";
- typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicScene1Color;
- }
- else
- {
- typeIconBtn.UnSelectedImagePath = "ZigeeLogic/noscene.png";
- typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
- }
-
- }
- break;
- case "6":
- {
- if (intvalue == 1)
- {
- typeIconBtn.UnSelectedImagePath = "ZigeeLogic/security1.png";
- typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicSecurity1Color;
-
- }
- else
- {
- typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nosecurity.png";
- typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
- }
-
- }
- break;
- case "7":
- {
- if (intvalue == 1)
- {
- typeIconBtn.UnSelectedImagePath = "ZigeeLogic/delay1.png";
- typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicDelay1Color;
- }
- else
- {
- typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nodelay.png";
- typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
- }
-
- }
- break;
-
- }
- }
}
#endregion
--
Gitblit v1.8.0