From 274c9e174b3b4df8ff27cf73568076dcaf99f12a Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期一, 30 十二月 2019 13:59:48 +0800
Subject: [PATCH] 2019.12.30
---
ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 186 +++++++++++++++++++++++++++++----------------
1 files changed, 119 insertions(+), 67 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index 9ebea2a..a061d26 100644
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -195,7 +195,7 @@
light.DeviceStatusReport = common.DeviceStatusReport;
light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(light.OnOffStatus == 1);
+ row.IsSelected = light.OnOffStatus == 1;
row.SetStatuText(deviceUI.GetDeviceStatu());
light.LastDateTime = DateTime.Now;
}
@@ -203,8 +203,6 @@
{
deviceUI.CommonDevice.IsOnline = 1;
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
- var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(true);
}
break;
@@ -216,7 +214,7 @@
airSwitch.DeviceStatusReport = common.DeviceStatusReport;
airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(airSwitch.OnOffStatus == 1);
+ row.IsSelected = airSwitch.OnOffStatus == 1;
row.SetStatuText(deviceUI.GetDeviceStatu());
airSwitch.LastDateTime = DateTime.Now;
}
@@ -224,8 +222,6 @@
{
deviceUI.CommonDevice.IsOnline = 1;
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
- var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(true);
}
break;
case DeviceType.WindowCoveringDevice:
@@ -248,6 +244,7 @@
rollerShade.DeviceStatusReport = common.DeviceStatusReport;
rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData;
row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}");
+ row.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0;
rollerShade.LastDateTime = DateTime.Now;
}
}
@@ -255,8 +252,6 @@
{
deviceUI.CommonDevice.IsOnline = 1;
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
- var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow;
- row.SetStatu(true);
}
break;
@@ -307,7 +302,7 @@
}
}
var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(ac.currentSystemMode != 0);
+ row.IsSelected = ac.currentSystemMode != 0;
row.SetStatuText(deviceUI.GetDeviceStatu());
}
@@ -331,7 +326,7 @@
}
}
var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(ac.currentSystemMode != 0);
+ row.IsSelected = ac.currentSystemMode != 0;
row.SetStatuText(deviceUI.GetDeviceStatu());
}
@@ -340,8 +335,6 @@
var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
ac.IsOnline = 1;
ac.LastDateTime = DateTime.Now;
- var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(true);
}
break;
case DeviceType.DimmableLight:
@@ -352,7 +345,7 @@
dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(dimmableLight.OnOffStatus == 1);
+ row.IsSelected = dimmableLight.OnOffStatus == 1;
row.SetStatuText(deviceUI.GetDeviceStatu());
dimmableLight.LastDateTime = DateTime.Now;
}
@@ -362,7 +355,7 @@
dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(dimmableLight.OnOffStatus == 1);
+ row.IsSelected = dimmableLight.OnOffStatus == 1;
row.SetStatuText(deviceUI.GetDeviceStatu());
dimmableLight.LastDateTime = DateTime.Now;
}
@@ -370,8 +363,6 @@
{
deviceUI.CommonDevice.IsOnline = 1;
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
- var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(true);
}
break;
}
@@ -405,37 +396,66 @@
{
case DeviceType.OnOffOutput:
deviceUI.CommonDevice.IsOnline = common.IsOnline;
- var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
break;
case DeviceType.AirSwitch:
deviceUI.CommonDevice.IsOnline = common.IsOnline;
- var row1 = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row1.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
break;
case DeviceType.WindowCoveringDevice:
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
deviceUI.CommonDevice.IsOnline = common.IsOnline;
- var row2 = rowLayout.GetChildren(0) as CategoryFunctionForWinRow;
- row2.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
break;
case DeviceType.DimmableLight:
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
deviceUI.CommonDevice.IsOnline = common.IsOnline;
- var row3 = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row3.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
break;
case DeviceType.Thermostat:
deviceUI.CommonDevice.LastDateTime = DateTime.Now;
deviceUI.CommonDevice.IsOnline = common.IsOnline;
- var row5 = rowLayout.GetChildren(0) as CategoryFunctionRow;
- row5.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
+ break;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ System.Console.WriteLine($"鍒嗙被璁惧鐘舵��-Error:{ex.Message}");
+ }
+ });
+ }
+ else if (typeTag == "IASInfoReport")
+ {
+ Application.RunOnMainThread(() =>
+ {
+ try
+ {
+ for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++)
+ {
+ var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout;
+ var deviceUI = rowLayout.Tag as DeviceUI;
+ if (deviceUI == null || deviceUI.CommonDevice == null)
+ {
+ continue;
+ }
+ if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint)
+ {
+ continue;
+ }
+ switch (deviceUI.CommonDevice.Type)
+ {
+ case DeviceType.IASZone:
+ //寮�鍏冲姛鑳�
+ var ias = common as IASZone;
+ var iAS = deviceUI.CommonDevice as ZigBee.Device.IASZone;
+ iAS.iASInfo = ias.iASInfo;
+ var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
+ row.IsSelected = iAS.iASInfo?.Alarm1 == 1;
+ row.SetStatuText(deviceUI.GetDeviceStatu());
+ iAS.LastDateTime = DateTime.Now;
break;
}
}
@@ -986,13 +1006,22 @@
{
if (e2)
{
- Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
- deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
- sameTypeList.Remove(deviceUI);
- if (sameTypeList.Count == 0)
+ if(curRoom.IsLove)
{
- RefreshBodyView();
+ Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName);
+ deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
+ sameTypeList.Remove(deviceUI);
}
+ else
+ {
+ Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
+ deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
+ sameTypeList.Remove(deviceUI);
+ }
+ //if (sameTypeList.Count == 0)
+ //{
+ // RefreshBodyView();
+ //}
}
};
};
@@ -1043,9 +1072,9 @@
var deviceRow = new CategoryFunctionRow(0, 35);
deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetOnLineStatu(light.IsOnline == 1);
+ //deviceRow.SetOnLineStatu(light.IsOnline == 1);
deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
- deviceRow.SetStatu(light.OnOffStatus == 1);
+ deviceRow.IsSelected = light.OnOffStatus == 1;
deviceTypeRowLayout.AddChidren(deviceRow);
deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1164,8 +1193,8 @@
var deviceRow = new CategoryFunctionRow(0, 35);
deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1);
- deviceRow.SetStatu(airSwitch.OnOffStatus == 1);
+ //deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1);
+ deviceRow.IsSelected = airSwitch.OnOffStatus == 1;
deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1175,8 +1204,8 @@
sendedControlCommand = false;
zbGateway.ReportAction += UpdateDeviceControllStatu;
AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
(send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+ deviceRow.IsSelected = (send2 as Button).IsSelected;
if ((send2 as Button).IsSelected)
{
airSwitch.SwitchControl(1);
@@ -1267,9 +1296,9 @@
var deviceRow = new CategoryFunctionRow(0, 35);
deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
+ //deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
- deviceRow.SetStatu(dimmableLight.OnOffStatus == 1);
+ deviceRow.IsSelected = dimmableLight.OnOffStatus == 1;
deviceTypeRowLayout.AddChidren(deviceRow);
deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1278,8 +1307,8 @@
sendedControlCommand = false;
zbGateway.ReportAction += UpdateDeviceControllStatu;
AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
(send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+ deviceRow.IsSelected = (send2 as Button).IsSelected;
if ((send2 as Button).IsSelected)
{
dimmableLight.SwitchControl(1);
@@ -1372,9 +1401,9 @@
var deviceRow = new CategoryFunctionRow(0, 35);
deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetOnLineStatu(ac.IsOnline == 1);
+ //deviceRow.SetOnLineStatu(ac.IsOnline == 1);
deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
- deviceRow.SetStatu(ac.currentSystemMode != 1);
+ deviceRow.IsSelected = ac.currentSystemMode != 1;
deviceTypeRowLayout.AddChidren(deviceRow);
deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1385,6 +1414,7 @@
AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
(send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+ deviceRow.IsSelected = (send2 as Button).IsSelected;
if ((send2 as Button).IsSelected)
{
ac.Open();
@@ -1476,9 +1506,9 @@
var deviceRow = new CategoryFunctionForWinRow(0, 35);
deviceRow.Init(deviceUI);
deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
+ //deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
- deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0);
+ deviceRow.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0;
deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1541,7 +1571,7 @@
var deviceRow = new CategoryFunctionRow(0, 35);
deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
+ //deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
deviceRow.HideSwitchBtn(true);
deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1553,6 +1583,40 @@
HomePage.Instance.PageIndex += 1;
userDoorLockPage.Show();
};
+
+ var editBtn = new CommonForm.RowLayoutEditButton()
+ {
+ Tag = deviceUI
+ };
+ var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+ {
+ Tag = deviceUI
+ };
+ if (curRoom.IsSharedRoom == false)
+ {
+ deviceTypeRowLayout.AddRightView(editBtn);
+ editBtn.MouseUpEventHandler += deviceDetailHandler;
+ deviceTypeRowLayout.AddRightView(delBtn);
+ delBtn.MouseUpEventHandler += delEvent;
+ }
+ }
+ else if (deviceUI.CommonDevice.Type == DeviceType.IASZone)
+ {
+ var deviceTypeRowLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(129 + 35),
+ LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+ Tag = deviceUI
+ };
+ deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+ var deviceRow = new CategoryFunctionRow(0, 35);
+ deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+ deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+ deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+ deviceRow.IsSelected = (deviceUI.CommonDevice as IASZone).iASInfo?.Alarm1 == 1;
+ deviceRow.HideSwitchBtn(true);
+ deviceTypeRowLayout.AddChidren(deviceRow);
var editBtn = new CommonForm.RowLayoutEditButton()
{
@@ -1583,7 +1647,7 @@
var deviceRow = new CategoryFunctionRow(0, 35);
deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
+ //deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
deviceRow.HideSwitchBtn(true);
deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1638,32 +1702,21 @@
};
functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
- Button curBtn = new Button();
+ RoomButton curBtn = new RoomButton(0,0);
foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom())
{
var row = new FrameLayout()
{
- Width = Application.GetRealWidth(187 + 50),
+ Width = Application.GetRealWidth(255),
Height = Application.GetRealHeight(167)
};
roomFL.AddChidren(row);
- var roomBtn = new Button()
- {
- Width = Application.GetRealWidth(187),
- Height = Application.GetRealHeight(78),
- Radius = (uint)Application.GetRealHeight(78 / 2),
- Gravity = Gravity.Center,
- Text = room.Name,
- TextColor = ZigbeeColor.Current.GXCTextGrayColor,
- SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
- BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor3,
- SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor,
- BorderColor = ZigbeeColor.Current.GXCBorderUnSelectedColor,
- BorderWidth = 1
- };
+ RoomButton roomBtn = new RoomButton(0, 0);
+ roomBtn.Gravity = Gravity.Center;
+ roomBtn.Init();
+ roomBtn.SetTitle(room.Name);
row.AddChidren(roomBtn);
- roomBtn.SetViewShadow(true,5);
if (room.IsLove)
{
@@ -1678,17 +1731,16 @@
{
RefreshFunction(room);
}
-
}
- roomBtn.MouseUpEventHandler += (sender, e) =>
+ roomBtn.ButtonClickEvent += (sender, e) =>
{
- if ((sender as Button) == curBtn)
+ if (sender == curBtn)
{
return;
}
- (sender as Button).IsSelected = true;
+ sender.IsSelected = true;
curBtn.IsSelected = false;
- curBtn = sender as Button;
+ curBtn = sender;
this.curRoom = room;
if (sceneBtn.IsSelected)
{
--
Gitblit v1.8.0