From 790d1cadf03164aecd0fccd2874f7da7997e34d4 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 18 五月 2020 13:48:35 +0800
Subject: [PATCH] 2020-05-18-2
---
ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs | 835 +++++++++++++----------------------------------------------
1 files changed, 191 insertions(+), 644 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
index fa0c778..d4b37b1 100755
--- a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
@@ -107,12 +107,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);
}
};
}
@@ -149,7 +155,7 @@
frameSwitchBack.AddChidren(btnFloorName);
btnFloorName.ButtonClickEvent += (sender, e) =>
{
- var floors = new Device.Category.SelectFloor();
+ var floors = new SelectFloorForm();
AddChidren(floors);
floors.Init(580, 330, Direction.Right);
floors.changeFloor = true;
@@ -164,7 +170,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) =>
@@ -198,6 +204,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 +248,8 @@
//鑷姩鍖�
else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
{
- this.ShowAutotion();
+ //鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
+ Device.Logic.SkipView.ShowAutotionView(functionSceneAutoBodyView);
//闅愯棌妤煎眰
floorVisible = false;
//鏄剧ず鍙充笂瑙掔殑鍔犲彿
@@ -395,7 +410,7 @@
HdlThreadLogic.Current.RunMainInThread(() =>
{
//鍒濆鍖栬澶囧垪琛ㄦ帶浠�
- this.InitListDeviceControls(listDeviceView, rowInfo);
+ this.InitListDeviceControls(listDeviceView, rowInfo, room);
});
}
};
@@ -412,7 +427,7 @@
if (nowSelectDeviceInfo != null)
{
//鍒濆鍖栭粯璁ょ殑璁惧鍒楄〃鎺т欢
- this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo);
+ this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo, room);
}
}
@@ -424,8 +439,8 @@
var noFunction = new Button()
{
Y = Application.GetRealHeight(320),
- Width = Application.GetMinRealAverage(757),
- Height = Application.GetMinRealAverage(435),
+ Width = this.GetPictrueRealSize(757),
+ Height = this.GetPictrueRealSize(435),
UnSelectedImagePath = "Item/NoFunction.png",
Gravity = Gravity.CenterHorizontal
};
@@ -454,18 +469,32 @@
/// </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();
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,51 +507,56 @@
//绐楀笜
if (device.Type == DeviceType.WindowCoveringDevice)
{
- cardContr = new Controls.DeviceCurtainRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceCurtainRowControl();
}
//缁х數鍣�
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();
}
//褰╃伅(璋冨厜鍣�)
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);
+ cardContr = new Controls.DeviceSensorRowControl();
}
//娓╂箍搴�
else if (device.Type == DeviceType.TemperatureSensor)
{
- cardContr = new Controls.DeviceTemperatureRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceTemperatureRowControl();
}
//闂ㄩ攣
else if (device.Type == DeviceType.DoorLock)
{
- cardContr = new Controls.DeviceDoorLockRowControl(listView.rowSpace / 2);
+ cardContr = new Controls.DeviceDoorLockRowControl();
}
//鏃犳硶璇嗗埆
else
{
- 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);
@@ -530,6 +564,24 @@
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(() =>
{
@@ -539,7 +591,7 @@
{
return;
}
- System.Threading.Thread.Sleep(20);
+ System.Threading.Thread.Sleep(200);
//鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
listContr[i].SendStatuComand();
}
@@ -574,30 +626,74 @@
}
var dicSceneContr = new Dictionary<int, SceneCategoryView>();
- var listview = new VerticalListControl();
- functionSceneBodyView.AddChidren(listview);
+ //涓讳汉锛岀鐞嗗憳涓撶敤鍒锋柊鎺т欢
+ VerticalListRefreshControl listview1 = null;
+ //鎴愬憳涓撶敤涓嶈兘鍒锋柊鐨勬帶浠�
+ VerticalListControl listview2 = null;
+ //if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+ //{
+ // listview1 = new VerticalListRefreshControl();
+ // functionSceneBodyView.AddChidren(listview1);
+ //}
+ //else
+ {
+ listview2 = new VerticalListControl();
+ functionSceneBodyView.AddChidren(listview2);
+ }
+
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 +702,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,30 +718,45 @@
{
continue;
}
- HdlThreadLogic.Current.RunThread(() =>
+ //寮�鍚満鏅欢鏃剁壒鏁�
+ this.StartSceneDelayApeal(seceneContr, listview, remainTime, hourText, minuText, secondText);
+ }
+ }
+
+ /// <summary>
+ /// 寮�鍚満鏅欢鏃剁壒鏁�
+ /// </summary>
+ /// <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)
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+ HdlSceneLogic.Current.StartDelayTimeThread(sceneContr.scene);
+ while (remainTime > 0 && this.Parent != null)
{
- //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
- 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--;
- }
+ System.Threading.Thread.Sleep(1000);
Application.RunOnMainThread(() =>
{
- if (listview.Parent != null)
- {
- seceneContr.SetTimeImage();
- //寮�鍚疞oading鐗规晥
- seceneContr.StartLoadingApreal();
- }
+ sceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText));
});
+ remainTime--;
+ }
+ Application.RunOnMainThread(() =>
+ {
+ if (listview.Parent != null)
+ {
+ sceneContr.SetTimeImage();
+ //寮�鍚疞oading鐗规晥
+ sceneContr.StartLoadingApreal();
+ }
});
- }
+ });
}
/// <summary>
@@ -660,8 +767,8 @@
var noFunction = new Button()
{
Y = Application.GetRealHeight(320),
- Width = Application.GetMinRealAverage(757),
- Height = Application.GetMinRealAverage(435),
+ Width = this.GetPictrueRealSize(757),
+ Height = this.GetPictrueRealSize(435),
UnSelectedImagePath = "Item/NoFunction.png",
Gravity = Gravity.CenterHorizontal
};
@@ -702,6 +809,16 @@
{
//鍒锋柊鍗$墖淇℃伅
var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+ if (report.DeviceStatusReport.CluterID == 513 && report.DeviceStatusReport.AttriBute[0].AttributeId == 28)
+ {
+ //绌鸿皟鏄壒娈婄殑,瀹冪殑寮�鍏虫槸灞炴�т笂鎶ユ潵鐫�.宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+ this.dicDeviceRowControl[mainKeys].SetHadGetResponeResultStatu();
+ }
+ if (report.DeviceStatusReport.CluterID == 514 && report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+ {
+ //鏂伴鏄壒娈婄殑,瀹冪殑寮�鍏虫槸灞炴�т笂鎶ユ潵鐫�.宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+ this.dicDeviceRowControl[mainKeys].SetHadGetResponeResultStatu();
+ }
this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
}
}, ShowErrorMode.NO);
@@ -716,7 +833,8 @@
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;
}
@@ -780,7 +898,18 @@
private Dictionary<int, 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>();
@@ -797,6 +926,11 @@
LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
dic[typeInfo.BeloneTextId].IconPath = path1;
dic[typeInfo.BeloneTextId].IconPathSelected = path2;
+ if (device.Type == DeviceType.FreshAir)
+ {
+ dic[typeInfo.BeloneTextId].IconPath = "Device/FreshAirEpoint.png";
+ dic[typeInfo.BeloneTextId].IconPathSelected = "Device/FreshAirEpointSelected.png";
+ }
dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
}
dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
@@ -852,37 +986,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 鈻� 缁撴瀯浣揰____________________________
@@ -908,562 +1011,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